.arch armv8-a .file "chall_4.c" .text .align 2 .global func1 .type func1, %function func1: stp x29, x30, [sp, -32]! add x29, sp, 0 str w0, [x29, 28] ldr w0, [x29, 28] cmp w0, 100 bls .L2 ldr w0, [x29, 28] add w0, w0, 100 bl func2 b .L3 .L2: ldr w0, [x29, 28] bl func3 .L3: ldp x29, x30, [sp], 32 ret .size func1, .-func1 .align 2 .global func2 .type func2, %function func2: stp x29, x30, [sp, -32]! add x29, sp, 0 str w0, [x29, 28] ldr w0, [x29, 28] cmp w0, 499 bhi .L5 ldr w0, [x29, 28] sub w0, w0, #86 bl func4 b .L6 .L5: ldr w0, [x29, 28] add w0, w0, 13 bl func5 .L6: ldp x29, x30, [sp], 32 ret .size func2, .-func2 .align 2 .global func3 .type func3, %function func3: stp x29, x30, [sp, -32]! add x29, sp, 0 str w0, [x29, 28] ldr w0, [x29, 28] bl func7 ldp x29, x30, [sp], 32 ret .size func3, .-func3 .align 2 .global func4 .type func4, %function func4: stp x29, x30, [sp, -48]! add x29, sp, 0 str w0, [x29, 28] mov w0, 17 str w0, [x29, 44] ldr w0, [x29, 44] bl func1 str w0, [x29, 44] ldr w0, [x29, 28] ldp x29, x30, [sp], 48 ret .size func4, .-func4 .align 2 .global func5 .type func5, %function func5: stp x29, x30, [sp, -32]! add x29, sp, 0 str w0, [x29, 28] ldr w0, [x29, 28] bl func8 str w0, [x29, 28] ldr w0, [x29, 28] ldp x29, x30, [sp], 32 ret .size func5, .-func5 .align 2 .global func6 .type func6, %function func6: sub sp, sp, #32 str w0, [sp, 12] mov w0, 314 str w0, [sp, 24] mov w0, 1932 str w0, [sp, 28] str wzr, [sp, 20] str wzr, [sp, 20] b .L14 .L15: ldr w1, [sp, 28] mov w0, 800 mul w0, w1, w0 ldr w1, [sp, 24] udiv w2, w0, w1 ldr w1, [sp, 24] mul w1, w2, w1 sub w0, w0, w1 str w0, [sp, 12] ldr w0, [sp, 20] add w0, w0, 1 str w0, [sp, 20] .L14: ldr w0, [sp, 20] cmp w0, 899 bls .L15 ldr w0, [sp, 12] add sp, sp, 32 ret .size func6, .-func6 .align 2 .global func7 .type func7, %function func7: sub sp, sp, #16 str w0, [sp, 12] ldr w0, [sp, 12] cmp w0, 100 bls .L18 ldr w0, [sp, 12] b .L19 .L18: mov w0, 7 .L19: add sp, sp, 16 ret .size func7, .-func7 .align 2 .global func8 .type func8, %function func8: sub sp, sp, #16 str w0, [sp, 12] ldr w0, [sp, 12] add w0, w0, 2 add sp, sp, 16 ret .size func8, .-func8 .section .rodata .align 3 .LC0: .string "Result: %ld\n" .text .align 2 .global main .type main, %function main: stp x29, x30, [sp, -48]! add x29, sp, 0 str w0, [x29, 28] str x1, [x29, 16] ldr x0, [x29, 16] add x0, x0, 8 ldr x0, [x0] bl atoi str w0, [x29, 44] ldr w0, [x29, 44] bl func1 mov w1, w0 adrp x0, .LC0 add x0, x0, :lo12:.LC0 bl printf nop ldp x29, x30, [sp], 48 ret .size main, .-main .ident "GCC: (Ubuntu/Linaro 7.5.0-3ubuntu1~18.04) 7.5.0" .section .note.GNU-stack,"",@progbits