Function at 0x14031e760
Capabilities:
Write file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xf8
mov rsi, rcx
mov rax, qword [0x140b74de8]
xor rax, rsp
mov qword [rsp + 0xf0], rax
lea rax, [rcx + 0x80]
mov qword [rsp + 0x98], rax
lea rax, [rcx + 0x74]
mov qword [rsp + 0x90], rax
lea rax, [rcx + 0x71]
mov qword [rsp + 0x88], rax
lea rax, [rcx + 0x68]
mov qword [rsp + 0x80], rax
mov eax, 0x85214c7
mov r13d, 0xd0e74c49
mov r15d, 0xcb274405
jmp 0x14031e80d
mov eax, r12d
and al, 1
mov byte [rsp + 0x33], al
mov rax, qword [rsp + 0x78]
mov rax, qword [rsp + 0x70]
mov eax, dword [0x140b7e578]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
mov eax, 0x6a3eebaa
mov ecx, 0xb330b186
nop word [rax + rax]
cmove eax, ecx
cmp dword [0x140b7e57c], 0xa
cmovl eax, ecx
cmp eax, 0xe89f4f46
jg 0x14031e870
cmp eax, 0xb65d998b
jg 0x14031e960
cmp eax, 0xa7c3acd2
jg 0x14031ea05
cmp eax, 0x90046c3c
jg 0x14031eb05
cmp eax, 0x8d2e7e8c
jg 0x14031ed3f
cmp eax, 0x873204f5
je 0x14031f062
cmp eax, 0x8b4089f7
jne 0x14031e80d
mov eax, dword [0x140b7e578]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
mov eax, 0xab93f856
mov ecx, 0xc3dc2ac7
jmp 0x14031e800
cmp eax, 0x2acdf9f9
jle 0x14031e9b0
cmp eax, 0x5a762d64
jg 0x14031ea4f
cmp eax, 0x3f117b4d
jg 0x14031eb33
cmp eax, 0x3931aa5c
jg 0x14031ed71
cmp eax, 0x2acdf9fa
je 0x14031f074
cmp eax, 0x2d842bea
jne 0x14031e80d
lea rax, [rsp + 0xcc]
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x60]
mov eax, dword [0x140b7e348]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
sete byte [rsp + 0x2b]
mov ecx, dword [0x140b7e34c]
mov eax, 0x4a13f20
cmove eax, r13d
cmp ecx, 0xa
setl byte [rsp + 0x2c]
cmovl eax, r13d
mov ecx, 0x7f38bfea
nop dword [rax + rax]
cmp ecx, 0x4a13f1f
jg 0x14031e920
cmp ecx, 0xcb274405
je 0x14031e94b
cmp ecx, 0xd0e74c49
jne 0x14031e900
jmp 0x14031f092
cmp ecx, 0x4a13f20
je 0x14031e94f
cmp ecx, 0x7f38bfea
jne 0x14031e900
movzx edx, byte [rsp + 0x2b]
cmp byte [rsp + 0x2c], 0
mov ecx, 0x4a13f20
cmovne ecx, r15d
test dl, dl
cmovne ecx, r15d
jmp 0x14031e900
mov ecx, eax
jmp 0x14031e900
mov ecx, 0xcb274405
jmp 0x14031e900
cmp eax, 0xd617a259
jg 0x14031ea85
cmp eax, 0xc4947392
jg 0x14031eb5e
cmp eax, 0xb8bd79f2
jg 0x14031edb9
cmp eax, 0xb65d998c
je 0x14031f0b0
cmp eax, 0xb8880c6b
jne 0x14031e80d
cmp dword [rsp + 0x34], 0
mov eax, 0xd123908c
mov ecx, 0x873204f5
cmove eax, ecx
jmp 0x14031e80d
cmp eax, 0x37bf2c9
jg 0x14031eacc
cmp eax, 0xf6a402f3
jg 0x14031ec26
cmp eax, 0xf34a9080
jg 0x14031eded
cmp eax, 0xe89f4f47
je 0x14031f0bf
cmp eax, 0xe962e5ff
jne 0x14031e80d
mov eax, dword [0x140b7e578]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
mov eax, 0xdd6286f6
mov ecx, 0xf40d46e1
jmp 0x14031e800
cmp eax, 0xad5417de
jg 0x14031ec5e
cmp eax, 0xa9b8a8a1
jg 0x14031ee31
cmp eax, 0xa7c3acd3
je 0x14031f0ce
cmp eax, 0xa7cc1ea4
jne 0x14031e80d
mov eax, dword [0x140b7e578]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
mov eax, 0x3931aa5d
mov ecx, 0xc53eb904
jmp 0x14031e800
cmp eax, 0x6a3eeba9
jg 0x14031ec9d
cmp eax, 0x64df6ab5
jg 0x14031ee51
cmp eax, 0x5a762d65
je 0x14031e7ce
cmp eax, 0x5f79be7d
jne 0x14031e80d
mov eax, 0x8fe53c83
jmp 0x14031e80d
cmp eax, 0xe1ef5f64
jg 0x14031ecc8
cmp eax, 0xdd6286f5
jg 0x14031ee98
cmp eax, 0xd617a25a
je 0x14031f0db
cmp eax, 0xdc526b5c
jne 0x14031e80d
cmp qword [rsp + 0xa0], 0
mov eax, 0xf9c7ca52
mov ecx, 0x8b4089f7
cmove eax, ecx
jmp 0x14031e80d
cmp eax, 0x85214c6
jle 0x14031ed07
cmp eax, 0x1aa37b9f
jg 0x14031eeb8
cmp eax, 0x85214c7
je 0x14031f0f2
cmp eax, 0x9feda55
jne 0x14031e80d
mov eax, 0x37bf2ca
xor r14d, r14d
jmp 0x14031e80d
cmp eax, 0x9f15b9a6
jg 0x14031eee7
cmp eax, 0x90046c3d
je 0x14031f119
cmp eax, 0x92a57c4c
jne 0x14031e80d
mov eax, 0x5a762d65
mov r12b, 1
jmp 0x14031e80d
cmp eax, 0x4f599f6d
jg 0x14031ef1b
cmp eax, 0x3f117b4e
je 0x14031f12c
cmp eax, 0x4b668394
jne 0x14031e80d
mov eax, 0x2acdf9fa
jmp 0x14031e80d
cmp eax, 0xd123908b
jg 0x14031ef3b
cmp eax, 0xc4947393
je 0x14031f136
cmp eax, 0xc53eb904
jne 0x14031e80d
mov edx, dword [rsp + 0x44]
mov rax, qword [rsp + 0x68]
mov rcx, rsi
call rax
mov ecx, dword [0x140b7e348]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
sete byte [rsp + 0x2b]
mov edx, dword [0x140b7e34c]
mov ecx, 0x4a13f20
cmove ecx, r13d
cmp edx, 0xa
setl byte [rsp + 0x2c]
mov dword [rsp + 0xcc], eax
cmovl ecx, r13d
mov edx, 0x7f38bfea
nop dword [rax + rax]
cmp edx, 0x4a13f1f
jg 0x14031ebf0
cmp edx, 0xcb274405
je 0x14031ec1b
cmp edx, 0xd0e74c49
jne 0x14031ebd0
jmp 0x14031f154
cmp edx, 0x4a13f20
je 0x14031ec1f
cmp edx, 0x7f38bfea
jne 0x14031ebd0
movzx ebx, byte [rsp + 0x2b]
cmp byte [rsp + 0x2c], 0
mov edx, 0x4a13f20
cmovne edx, r15d
test bl, bl
cmovne edx, r15d
jmp 0x14031ebd0
mov edx, ecx
jmp 0x14031ebd0
mov edx, 0xcb274405
jmp 0x14031ebd0
cmp eax, 0xffb203af
jg 0x14031ef6a
cmp eax, 0xf6a402f4
je 0x14031f20c
cmp eax, 0xf9c7ca52
jne 0x14031e80d
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0x38], rax
mov eax, 0x4ae40e7
jmp 0x14031e80d
cmp eax, 0xb0335d7e
jg 0x14031ef9e
cmp eax, 0xad5417df
je 0x14031f216
cmp eax, 0xaff8fd68
jne 0x14031e80d
mov eax, dword [0x140b7e578]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
mov eax, 0x1aa37ba0
mov ecx, 0xc4947393
jmp 0x14031e800
cmp eax, 0x724847cf
jg 0x14031efd2
cmp eax, 0x6a3eebaa
je 0x14031f22d
cmp eax, 0x6abf42ff
jne 0x14031e80d
mov eax, 0xe1ef5f65
jmp 0x14031e80d
cmp eax, 0xe31cfcfd
jg 0x14031f011
cmp eax, 0xe1ef5f65
je 0x14031f237
cmp eax, 0xe31809d7
jne 0x14031e80d
mov eax, dword [0x140b7e578]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
mov eax, 0x6abf42ff
mov ecx, 0xe1ef5f65
jmp 0x14031e800
cmp eax, 0x4b536f6
jle 0x14031f039
cmp eax, 0x4b536f7
je 0x14031f265
cmp eax, 0x6199f08
jne 0x14031e80d
cmp byte [rsp + 0x30], 0
mov eax, 0x8b4089f7
mov ecx, 0x2d842bea
cmovne eax, ecx
jmp 0x14031e80d
cmp eax, 0x8d2e7e8d
je 0x14031f290
cmp eax, 0x8fe53c83
jne 0x14031e80d
mov rax, qword [rsp + 0x60]
cmp byte [rsp + 0x31], 0
mov eax, 0xad5417df
mov ecx, 0xa6a08f94
cmovne eax, ecx
jmp 0x14031e80d
cmp eax, 0x3931aa5d
je 0x14031f2dc
cmp eax, 0x3ec7580f
jne 0x14031e80d
mov rax, qword [rsp + 0xb8]
mov r9, qword [rax]
mov rcx, qword [rsp + 0x48]
mov r8, qword [rsp + 0x50]
mov edx, 1
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
mov rcx, qword [rsp + 0x50]
cmp rcx, rax
mov eax, 0xaff8fd68
jmp 0x14031f423
cmp eax, 0xb8bd79f3
je 0x14031f386
cmp eax, 0xc3dc2ac7
jne 0x14031e80d
mov eax, dword [0x140b7e578]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
mov eax, 0xab93f856
mov ecx, 0xb8bd79f3
jmp 0x14031e800
cmp eax, 0xf34a9081
je 0x14031f393
cmp eax, 0xf40d46e1
jne 0x14031e80d
mov rax, qword [rsp + 0xc0]
mov qword [rsp + 0xb0], rax
mov eax, dword [0x140b7e578]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
mov eax, 0xdd6286f6
mov ecx, 0x52a5cdb0
jmp 0x14031e800
cmp eax, 0xa9b8a8a2
je 0x14031f39d
cmp eax, 0xab93f856
jne 0x14031e80d
mov eax, 0xc3dc2ac7
jmp 0x14031e80d
cmp eax, 0x64df6ab6
je 0x14031f3aa
cmp eax, 0x66be3fd1
jne 0x14031e80d
mov rax, qword [rsp + 0x70]
lea rax, [rsp + 0xc0]
mov qword [rsp + 0x78], rax
mov rax, qword [rsp + 0x78]
mov rax, qword [rsp + 0x58]
mov rax, qword [rax]
mov qword [rsp + 0xa8], rax
mov eax, 0x8d2e7e8d
jmp 0x14031e80d
cmp eax, 0xdd6286f6
je 0x14031f3b4
cmp eax, 0xe05613db
jne 0x14031e80d
mov eax, 0x724847d0
jmp 0x14031e80d
cmp eax, 0x1aa37ba0
je 0x14031f3be
cmp eax, 0x25691329
jne 0x14031e80d
mov eax, dword [rsp + 0x34]
cmp eax, 1
mov eax, 0xd123908c
mov ecx, 0xe962e5ff
cmove eax, ecx
jmp 0x14031e80d
cmp eax, 0x9f15b9a7
je 0x14031f3c8
cmp eax, 0xa6a08f94
jne 0x14031e80d
mov eax, dword [0x140b7e578]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
mov eax, 0x4b668394
mov ecx, 0x2acdf9fa
jmp 0x14031e800
cmp eax, 0x4f599f6e
je 0x14031f3d7
cmp eax, 0x52a5cdb0
jne 0x14031e80d
mov eax, 0xb0335d7f
jmp 0x14031e80d
cmp eax, 0xd123908c
je 0x14031f3e3
cmp eax, 0xd150467d
jne 0x14031e80d
mov eax, dword [rsp + 0x34]
cmp eax, 3
mov eax, 0xffb203b0
mov ecx, 0x25691329
cmovl eax, ecx
jmp 0x14031e80d
cmp eax, 0xffb203b0
je 0x14031f3ed
cmp eax, 0x9899aa
jne 0x14031e80d
mov eax, dword [0x140b7e578]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
mov eax, 0xe89f4f47
mov ecx, 0x7fb74fe9
jmp 0x14031e800
cmp eax, 0xb0335d7f
je 0x14031f406
cmp eax, 0xb330b186
jne 0x14031e80d
mov eax, dword [0x140b7e578]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
mov eax, 0x6a3eebaa
mov ecx, 0x9f15b9a7
jmp 0x14031e800
cmp eax, 0x724847d0
je 0x14031f430
cmp eax, 0x7fb74fe9
jne 0x14031e80d
mov rax, qword [rsp + 0x38]
mov al, byte [rax]
mov byte [rsp + 0x32], al
mov eax, dword [0x140b7e578]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
mov eax, 0xe89f4f47
mov ecx, 0x3f117b4e
jmp 0x14031e800
cmp eax, 0xe31cfcfe
je 0x14031f44e
cmp eax, 0xe777be2b
jne 0x14031e80d
mov rax, qword [rsp + 0x38]
mov byte [rax], 0
mov eax, 0x92a57c4c
jmp 0x14031e80d
cmp eax, 0x4ae40e7
jne 0x14031f551
mov eax, dword [0x140b7e578]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
mov eax, 0xb65d998c
mov ecx, 0x4b536f7
jmp 0x14031e800
mov rax, qword [rsp + 0x38]
mov byte [rax], 0
mov eax, 0xf6a402f4
jmp 0x14031e80d
mov eax, dword [0x140b7e578]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
mov eax, 0x4b668394
mov ecx, 0x9feda55
jmp 0x14031e800
mov dword [rsp + 0x44], 0xffffffff
mov rax, qword [rsi]
mov rax, qword [rax + 0x18]
mov qword [rsp + 0x68], rax
mov eax, 0xa7cc1ea4
jmp 0x14031e80d
mov rax, qword [rsp + 0x38]
mov eax, 0x4b536f7
jmp 0x14031e80d
mov rax, qword [rsp + 0x38]
mov eax, 0x7fb74fe9
jmp 0x14031e80d
mov eax, 0x5a762d65
mov r12d, ebp
jmp 0x14031e80d
cmp dword [rsp + 0x34], 0
mov eax, 0xd150467d
mov ecx, 0xb8880c6b
cmovle eax, ecx
jmp 0x14031e80d
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x58]
mov rax, qword [rax]
mov qword [rsp + 0xa0], rax
mov eax, 0xdc526b5c
jmp 0x14031e80d
test byte [rsp + 0x32], 1
sete bpl
mov eax, 0xa7c3acd3
jmp 0x14031e80d
mov eax, 0x90046c3d
jmp 0x14031e80d
mov eax, dword [0x140b7e578]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
mov eax, 0x1aa37ba0
mov ecx, 0x4f599f6e
jmp 0x14031e800
mov ecx, dword [0x140b7ea80]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
sete cl
cmp dword [0x140b7ea84], 0xa
setl dl
or dl, cl
mov edi, 0x98cdd7d2
mov ecx, 0x393470d4
cmovne edi, ecx
mov edx, 0x98cdd7d2
mov ecx, 0x4ad7377e
cmovne edx, ecx
mov ecx, 0x658a4d6d
nop word cs:[rax + rax]
nop dword [rax + rax]
cmp ecx, 0x393470d3
jle 0x14031f1e0
cmp ecx, 0x393470d4
je 0x14031f46c
cmp ecx, 0x4ad7377e
je 0x14031f1fb
cmp ecx, 0x658a4d6d
jne 0x14031f1a0
mov dword [rsp + 0x2c], 0xffffffff
mov ecx, 0x937ddc67
jmp 0x14031f1a0
cmp ecx, 0x937ddc67
je 0x14031f208
cmp ecx, 0x98cdd7d2
jne 0x14031f1a0
mov ecx, dword [rsp + 0x2c]
mov ecx, 0x4ad7377e
jmp 0x14031f1a0
mov ecx, dword [rsp + 0x2c]
cmp ecx, eax
sete bl
mov ecx, edi
jmp 0x14031f1a0
mov ecx, edx
jmp 0x14031f1a0
mov eax, 0xe962e5ff
jmp 0x14031e80d
lea rax, [rsp + 0xd0]
mov qword [rsp + 0x70], rax
mov eax, 0x66be3fd1
jmp 0x14031e80d
mov eax, 0xb330b186
jmp 0x14031e80d
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0xb8], rax
mov eax, dword [0x140b7e578]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
mov eax, 0x6abf42ff
mov ecx, 0xf34a9081
jmp 0x14031e800
mov rax, qword [rsp + 0x38]
cmp byte [rax], 0
setne byte [rsp + 0x30]
mov eax, dword [0x140b7e578]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
mov eax, 0xb65d998c
mov ecx, 0x64df6ab6
jmp 0x14031e800
lea rax, [rsp + 0xd0]
mov qword [rsp + 0x48], rax
mov r9, qword [rsp + 0x48]
add r9, 0x20
mov rcx, qword [rsp + 0xa8]
mov r8, qword [rsp + 0x48]
mov rax, qword [rcx]
lea rdx, [rsp + 0xc0]
mov qword [rsp + 0x20], rdx
mov rdx, qword [rsp + 0x90]
call qword [rax + 0x40]
mov dword [rsp + 0x34], eax
mov eax, 0xd617a25a
jmp 0x14031e80d
mov edx, dword [rsp + 0x44]
mov rax, qword [rsp + 0x68]
mov rcx, rsi
call rax
mov ecx, dword [0x140b7e348]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
sete byte [rsp + 0x2b]
mov edx, dword [0x140b7e34c]
mov ecx, 0x4a13f20
cmove ecx, r13d
cmp edx, 0xa
setl byte [rsp + 0x2c]
mov dword [rsp + 0xcc], eax
cmovl ecx, r13d
mov edx, 0x7f38bfea
nop word cs:[rax + rax]
nop
cmp edx, 0x4a13f1f
jg 0x14031f350
cmp edx, 0xcb274405
je 0x14031f37b
cmp edx, 0xd0e74c49
jne 0x14031f330
jmp 0x14031f499
cmp edx, 0x4a13f20
je 0x14031f37f
cmp edx, 0x7f38bfea
jne 0x14031f330
movzx ebx, byte [rsp + 0x2b]
cmp byte [rsp + 0x2c], 0
mov edx, 0x4a13f20
cmovne edx, r15d
test bl, bl
cmovne edx, r15d
jmp 0x14031f330
mov edx, ecx
jmp 0x14031f330
mov edx, 0xcb274405
jmp 0x14031f330
mov eax, 0x37bf2ca
mov r14b, 1
jmp 0x14031e80d
mov eax, 0x3ec7580f
jmp 0x14031e80d
mov eax, 0x5a762d65
xor r12d, r12d
jmp 0x14031e80d
mov eax, 0x6199f08
jmp 0x14031e80d
mov eax, 0xf40d46e1
jmp 0x14031e80d
mov eax, 0xc4947393
jmp 0x14031e80d
mov eax, 0x37bf2ca
mov r14b, byte [rsp + 0x33]
jmp 0x14031e80d
mov eax, 0xa7c3acd3
xor ebp, ebp
jmp 0x14031e80d
mov eax, 0xe31cfcfe
jmp 0x14031e80d
mov eax, dword [rsp + 0x34]
cmp eax, 3
mov eax, 0xd123908c
mov ecx, 0xe777be2b
cmove eax, ecx
jmp 0x14031e80d
mov rax, qword [rsp + 0xb0]
sub rax, qword [rsp + 0x48]
mov qword [rsp + 0x50], rax
cmp qword [rsp + 0x50], 0
mov eax, 0xe31809d7
mov ecx, 0x9899aa
cmove eax, ecx
jmp 0x14031e80d
mov eax, dword [0x140b7e578]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
mov eax, 0xe05613db
mov ecx, 0xa9b8a8a2
jmp 0x14031e800
mov eax, dword [0x140b7e578]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
mov eax, 0xe05613db
mov ecx, 0x724847d0
jmp 0x14031e800
and bl, 1
mov byte [rsp + 0x2b], bl
mov al, byte [rsp + 0x2b]
mov byte [rsp + 0x31], al
mov eax, dword [0x140b7e578]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
mov eax, 0x3931aa5d
mov ecx, 0x5f79be7d
jmp 0x14031e800
mov ecx, dword [0x140b7ea80]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
sete cl
cmp dword [0x140b7ea84], 0xa
setl dl
or dl, cl
mov edi, 0x98cdd7d2
mov ecx, 0x393470d4
cmovne edi, ecx
mov edx, 0x98cdd7d2
mov ecx, 0x4ad7377e
cmovne edx, ecx
mov ecx, 0x658a4d6d
nop word cs:[rax + rax]
cmp ecx, 0x393470d3
jle 0x14031f510
cmp ecx, 0x393470d4
je 0x14031f53c
cmp ecx, 0x4ad7377e
je 0x14031f52b
cmp ecx, 0x658a4d6d
jne 0x14031f4e0
mov dword [rsp + 0x2c], 0xffffffff
mov ecx, 0x937ddc67
jmp 0x14031f4e0
cmp ecx, 0x937ddc67
je 0x14031f538
cmp ecx, 0x98cdd7d2
jne 0x14031f4e0
mov ecx, dword [rsp + 0x2c]
mov ecx, 0x4ad7377e
jmp 0x14031f4e0
mov ecx, dword [rsp + 0x2c]
cmp ecx, eax
sete bl
mov ecx, edi
jmp 0x14031f4e0
mov ecx, edx
jmp 0x14031f4e0
and bl, 1
mov byte [rsp + 0x2b], bl
mov al, byte [rsp + 0x2b]
mov eax, 0xc53eb904
jmp 0x14031e80d
cmp eax, 0x37bf2ca
jne 0x14031e80d
and r14b, 1
mov rcx, qword [rsp + 0xf0]
xor rcx, rsp
call fcn.1406ad9c0
mov eax, r14d
add rsp, 0xf8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret