Function at 0x1400a97a0
Capabilities:
Clear file content
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov dword [rsp + 0x20], r9d
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
mov edi, dword [rsp + 0x98]
mov rsi, rdx
mov r13, rcx
mov ebx, 4
test edi, edi
je 0x1400aa34d
mov r12, qword [rsp + 0x90]
dec edi
mov r15, qword [r12]
mov edx, dword [r15 + 0x10]
test edx, edx
je 0x1400a9822
sub edx, 1
je 0x1400a9805
sub edx, 1
je 0x1400a9805
sub edx, 2
je 0x1400a980e
cmp edx, 1
je 0x1400a9822
lea r15, [0x1400cb664]
jmp 0x1400a9825
mov rcx, qword [r15]
xor r8d, r8d
lea edx, [r8 + 1]
call fcn.1400016b0
mov r15, rax
jmp 0x1400a9825
mov r15, qword [r15]
mov r8, rbx
lea rdx, str.Read
mov rcx, r15
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsnicmp]
xor ebp, ebp
test eax, eax
jne 0x1400a9875
cmp word [r15 + 8], bp
lea rcx, [r15 + 8]
jne 0x1400a9852
lea r14d, [rbp + 1]
jmp 0x1400a99e0
lea rdx, str.Line
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
mov ecx, 3
mov r14d, 5
test eax, eax
cmove r14d, ecx
jmp 0x1400a99e0
mov r8d, 5
lea rdx, str.Write
mov rcx, r15
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsnicmp]
test eax, eax
jne 0x1400a98c0
cmp word [r15 + 0xa], bp
lea rcx, [r15 + 0xa]
jne 0x1400a98a3
lea r14d, [rax + 2]
jmp 0x1400a99e0
lea rdx, str.Line
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
mov ecx, ebp
test eax, eax
setne cl
lea r14d, [rcx + 4]
jmp 0x1400a99e0
lea rdx, str.RawRead
mov rcx, r15
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
test eax, eax
jne 0x1400a98dd
lea r14d, [rax + 6]
jmp 0x1400a99e0
lea rdx, str.RawWrite
mov rcx, r15
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
test eax, eax
jne 0x1400a98fa
lea r14d, [rax + 6]
jmp 0x1400a99e0
lea rdx, [0x1400e7b08]
mov rcx, r15
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
test eax, eax
je 0x1400a99da
lea rdx, str.Length
mov rcx, r15
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
test eax, eax
jne 0x1400a992f
lea r14d, [rax + 9]
jmp 0x1400a99e0
lea rdx, str.AtEOF
mov rcx, r15
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
test eax, eax
jne 0x1400a994c
lea r14d, [rax + 0xa]
jmp 0x1400a99e0
lea rdx, str.__Handle
mov rcx, r15
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
test eax, eax
jne 0x1400a9966
lea r14d, [rax + 0xb]
jmp 0x1400a99e0
lea rdx, str.Encoding
mov rcx, r15
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
test eax, eax
jne 0x1400a9980
lea r14d, [rax + 0xc]
jmp 0x1400a99e0
lea rdx, str.Close
mov rcx, r15
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
test eax, eax
jne 0x1400a999a
lea r14d, [rax + 0xd]
jmp 0x1400a99e0
lea rdx, str.Position
mov rcx, r15
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
test eax, eax
je 0x1400a99da
lea rdx, str.Seek
mov rcx, r15
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
test eax, eax
je 0x1400a99da
lea rdx, str.Tell
mov rcx, r15
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
test eax, eax
jne 0x1400aa34d
mov r14d, 8
mov eax, dword [rsp + 0x88]
test al, 2
jne 0x1400a9a00
cmp r14d, 7
jb 0x1400a9d35
and eax, 1
cmp edi, eax
jne 0x1400a9d35
lea eax, [r14 - 1]
mov dword [rsi + 0x10], 1
cmp eax, 0xc
ja case.0x1400a9aac.69
cdqe
lea rcx, [0x140000000]
mov eax, dword [rcx + rax*4 + 0xaa370]
add rax, rcx
jmp rax
movzx eax, word [r15]
mov ecx, 0xffdf
sub ax, 0x52
mov r14d, ebp
test cx, ax
sete al
mov byte [rsp + 0x98], al
movzx eax, al
xor rax, 1
lea r15, [r15 + rax*2]
add r15, 8
mov qword [rsp + 0x38], r15
movzx ecx, word [r15]
call fcn.14000d150
cmp ax, 0x55
jne 0x1400a9a77
add r15, 2
mov qword [rsp + 0x38], r15
mov r15d, ebp
jmp 0x1400a9a7d
mov r15d, 1
mov rax, qword [rsp + 0x38]
movzx ecx, word [rax]
call fcn.14000d150
movzx eax, ax
add eax, 0xffffffbd
cmp eax, 0x10
ja case.0x1400a9aac.69
lea rcx, [0x140000000]
cdqe
mov edx, dword [rcx + rax*4 + 0xaa3a4]
add rdx, rcx
jmp rdx
mov rcx, qword [rsp + 0x38]
mov dx, gethostname
call qword [sym.imp.VCRUNTIME140.dll_wcschr]
test rax, rax
mov eax, 8
cmovne ebx, eax
jmp 0x1400a9aea
mov ebx, 2
jmp 0x1400a9aea
mov ebx, 1
jmp 0x1400a9aea
mov ebx, 8
jmp 0x1400a9aea
mov ebx, 8
mov r14d, 1
cmp byte [rsp + 0x98], bpl
je 0x1400a9bb5
lea rcx, [r13 + 0x10]
mov qword [rsp + 0x30], rbp
mov r8d, ebx
lea rdx, [rsp + 0x30]
call fcn.1400a90b0
test eax, eax
je case.0x1400a9aac.69
test r14d, r14d
je 0x1400a9b59
cmp ebx, 4
jne 0x1400a9b3d
movss xmm0, dword [rsp + 0x30]
mov eax, 2
cvtps2pd xmm0, xmm0
mov dword [rsi + 0x10], eax
lea eax, [rbx - 3]
movsd qword [rsi], xmm0
jmp 0x1400aa34f
movsd xmm0, qword [rsp + 0x30]
mov eax, 2
mov dword [rsi + 0x10], eax
mov eax, 1
movsd qword [rsi], xmm0
jmp 0x1400aa34f
test r15d, r15d
je 0x1400a9ba3
sub ebx, 1
je 0x1400a9b90
sub ebx, 1
je 0x1400a9b7d
cmp ebx, 2
jne 0x1400a9ba3
movsxd rax, dword [rsp + 0x30]
mov qword [rsi], rax
lea eax, [rbx - 1]
jmp 0x1400aa34f
movsx rax, word [rsp + 0x30]
mov qword [rsi], rax
mov eax, 1
jmp 0x1400aa34f
movsx rax, byte [rsp + 0x30]
mov qword [rsi], rax
mov eax, 1
jmp 0x1400aa34f
mov rax, qword [rsp + 0x30]
mov qword [rsi], rax
mov eax, 1
jmp 0x1400aa34f
cmp edi, 1
jne case.0x1400a9aac.69
mov r9, qword [r12 + 8]
test r14d, r14d
je 0x1400a9bfa
xor r8d, r8d
mov edx, edi
mov rcx, r9
call fcn.140073f20
movsd qword [rsp + 0x30], xmm0
lea rdi, [0x1400cb664]
cmp ebx, 4
jne 0x1400a9c86
cvtsd2ss xmm0, xmm0
movss dword [rsp + 0x30], xmm0
jmp 0x1400a9c86
cmp ebx, 8
jne 0x1400a9c70
test r15d, r15d
jne 0x1400a9c70
mov ecx, dword [r9 + 0x10]
lea eax, [rcx - 1]
cmp eax, 1
jbe 0x1400a9c70
test ecx, ecx
je 0x1400a9c5c
sub ecx, 1
je 0x1400a9c28
sub ecx, 1
je 0x1400a9c28
sub ecx, 2
je 0x1400a9c3c
cmp ecx, 1
je 0x1400a9c5c
lea rdi, [0x1400cb664]
mov rax, rdi
mov rcx, rax
call fcn.140048a40
jmp 0x1400a9c81
mov rcx, qword [r9]
xor r8d, r8d
lea edx, [r8 + 1]
call fcn.1400016b0
mov rcx, rax
lea rdi, [0x1400cb664]
call fcn.140048a40
jmp 0x1400a9c81
mov rax, qword [r9]
lea rdi, [0x1400cb664]
mov rcx, rax
call fcn.140048a40
jmp 0x1400a9c81
xor edx, edx
mov rcx, r9
call fcn.140073e80
lea rdi, [0x1400cb664]
mov qword [rsp + 0x30], rax
lea rcx, [r13 + 0x10]
mov r8d, ebx
lea rdx, [rsp + 0x30]
call fcn.1400a9460
mov ecx, eax
test eax, eax
jne 0x1400a9cb1
mov rax, qword [0x1400fe060]
test byte [rax + 0x140], 1
jne 0x1400aa06f
mov qword [rsi], rcx
mov eax, 1
jmp 0x1400aa34f
cmp edi, 1
jg case.0x1400a9aac.69
test edi, edi
je 0x1400a9cdc
mov rcx, qword [r12 + 8]
xor edx, edx
call fcn.140073e80
mov rbx, rax
jmp 0x1400a9cf5
lea rcx, [r13 + 0x10]
call fcn.1400a8ab0
lea rcx, [r13 + 0x10]
mov rdi, rax
call fcn.1400a8b00
sub eax, edi
mov ebx, eax
cmp ebx, 0xffffffff
je case.0x1400a9aac.69
mov r8d, ebx
xor edx, edx
mov rcx, rsi
call fcn.140074520
test eax, eax
je case.0x1400a9aac.69
xor r9d, r9d
mov r8d, ebx
mov rdx, qword [rsi]
lea rcx, [r13 + 0x10]
call fcn.1400a8d00
mov ecx, eax
mov rax, qword [rsi]
mov dword [rsi + 0x10], ebp
mov word [rax + rcx*2], bp
mov qword [rsi + 8], rcx
mov eax, 1
jmp 0x1400aa34f
test edi, edi
jne case.0x1400a9aac.69
mov ecx, 0x20002
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov qword [rsi + 0x18], rax
test rax, rax
je case.0x1400a9aac.69
mov qword [rsi + 8], 0x10000
lea r9d, [rdi + 1]
mov qword [rsi], rax
mov r8d, 0xffff
mov word [rax + 0x20000], bp
jmp 0x1400a9d19
cmp edi, 1
jg case.0x1400a9aac.69
mov r15d, ebp
mov ebx, ebp
test edi, edi
je 0x1400a9e30
mov rdx, qword [rsi + 8]
mov rcx, qword [r12 + 8]
call fcn.140073fe0
mov rbx, qword [r12 + 8]
mov rdi, rax
cmp dword [rbx + 0x10], 4
jne 0x1400a9e04
mov rbx, qword [rbx]
movzx edx, byte [rbx + 0x23]
test dl, dl
jne 0x1400a9dc4
mov rax, qword [rbx + 0x10]
movzx ecx, byte [rax + 0x21]
jmp 0x1400a9dc8
movzx ecx, byte [rbx + 0x21]
test cl, 1
jne 0x1400a9e04
test dl, dl
jne 0x1400a9dd5
mov rbx, qword [rbx + 0x10]
cmp byte [rbx + 0x23], 1
jne 0x1400a9df5
test byte [rbx + 0x21], 8
je 0x1400a9de9
mov rcx, rbx
call fcn.140001560
add rbx, 0x10
mov rbx, qword [rbx]
shr rbx, 1
jmp 0x1400a9e19
lea rbx, [0x140107728]
mov rbx, qword [rbx]
shr rbx, 1
jmp 0x1400a9e19
mov rbx, 0xffffffffffffffff
nop dword [rax + rax]
inc rbx
cmp word [rdi + rbx*2], bp
jne 0x1400a9e10
add r13, 0x10
mov r8d, ebx
mov rcx, r13
mov rdx, rdi
call fcn.1400a9200
mov r15d, eax
jmp 0x1400a9e34
add r13, 0x10
cmp r14d, 4
jne 0x1400a9e5d
test r15d, r15d
jne 0x1400a9e43
test ebx, ebx
jne 0x1400a9e66
mov r8d, 1
lea rdx, [0x1400e9324]
mov rcx, r13
inc ebx
call fcn.1400a9200
add r15d, eax
test r15d, r15d
jne 0x1400a9e7a
test ebx, ebx
je 0x1400a9e7a
mov rax, qword [0x1400fe060]
test byte [rax + 0x140], 1
jne case.0x1400a9aac.69
mov eax, r15d
mov qword [rsi], rax
mov eax, 1
jmp 0x1400aa34f
cmp edi, 2
jne case.0x1400a9aac.69
movzx eax, word [r15 + 6]
mov ecx, 0xffdf
mov rdi, qword [r12 + 8]
sub ax, 0x52
test cx, ax
mov rcx, qword [r12 + 0x10]
sete r14b
xor edx, edx
call fcn.140073e80
cmp dword [rdi + 0x10], 4
mov rbx, rax
jne 0x1400a9f41
mov rcx, qword [rdi]
cmp byte [rcx + 0x23], bpl
jne 0x1400a9ed1
mov rax, qword [rcx + 0x10]
jmp 0x1400a9ed4
mov rax, rcx
cmp byte [rax + 0x23], 2
mov edx, dword [0x140105de8]
je 0x1400a9ee4
mov rdx, qword [rax + 0x18]
mov eax, ebx
cmp rax, rdx
jbe 0x1400a9f30
test r14b, r14b
je 0x1400a9f0f
mov r8d, eax
mov byte [rsp + 0x20], bpl
shr r8, 1
and eax, 1
add r8, rax
xor r9d, r9d
xor edx, edx
call fcn.1400afca0
test eax, eax
jne 0x1400a9f30
mov rax, qword [0x1400fe060]
test byte [rax + 0x140], 1
jne case.0x1400a9aac.69
mov qword [rsi], rbp
mov eax, 1
jmp 0x1400aa34f
mov rcx, qword [rdi]
xor r8d, r8d
lea edx, [r8 + 1]
call fcn.1400016b0
jmp 0x1400a9f4b
xor edx, edx
mov rcx, rdi
call fcn.140073e80
cmp rax, 0x10000
jae 0x1400a9f57
mov ecx, ebp
jmp 0x1400a9f78
lea rcx, [r13 + 0x10]
mov r8d, ebx
mov rdx, rax
test r14b, r14b
je 0x1400a9f6d
call fcn.1400a90b0
jmp 0x1400a9f72
call fcn.1400a9460
mov ecx, eax
test eax, eax
jne 0x1400a9f90
test ebx, ebx
je 0x1400a9f90
mov rax, qword [0x1400fe060]
test byte [rax + 0x140], 1
jne case.0x1400a9aac.69
mov eax, ecx
mov qword [rsi], rax
mov eax, 1
jmp 0x1400aa34f
test edi, edi
jne 0x1400a9fb7
lea rcx, [r13 + 0x10]
call fcn.1400a8ab0
mov qword [rsi], rax
lea eax, [rdi + 1]
jmp 0x1400aa34f
cmp edi, 2
jg case.0x1400a9aac.69
mov rcx, qword [r12 + 8]
xor edx, edx
call fcn.140073e80
mov r14, rax
cmp edi, 2
jne 0x1400a9fe5
mov rcx, qword [r12 + 0x10]
xor edx, edx
call fcn.140073e80
mov rdi, rax
jmp 0x1400a9ff2
test r14, r14
mov edi, ebp
mov ecx, 2
cmovs edi, ecx
mov rdx, qword [r13 + 0x40]
mov r8d, dword [r13 + 0x1c]
test rdx, rdx
je 0x1400aa01e
sub rdx, qword [r13 + 0x48]
lea rcx, [r13 + 0x10]
mov r9, qword [r13 + 0x10]
sub rdx, r8
mov r8d, 1
call qword [r9 + 0x28]
mov qword [r13 + 0x40], rbp
jmp 0x1400aa032
test r8d, r8d
je 0x1400aa036
mov rax, qword [r13 + 0x10]
lea rcx, [r13 + 0x10]
mov rdx, qword [r13 + 0x48]
call qword [rax + 0x20]
mov dword [r13 + 0x1c], ebp
mov rax, qword [r13 + 0x10]
lea rcx, [r13 + 0x10]
mov r8d, edi
mov word [r13 + 0x3c], bp
mov rdx, r14
call qword [rax + 0x28]
test al, al
jne 0x1400aa1dc
mov rax, qword [0x1400fe060]
test byte [rax + 0x140], 1
je 0x1400aa1e1
lea rdi, [0x1400cb664]
mov rax, qword [0x1400fe060]
mov dword [rsi + 0x10], ebp
test byte [rax + 0x140], 1
je 0x1400a9d35
mov rcx, qword [0x140105810]
lea r8, str.FileObject
mov r9, rdi
lea rdx, [0x1400e0c2c]
call fcn.1400465b0
mov eax, 1
jmp 0x1400aa34f
test edi, edi
jne 0x1400aa0c5
lea rcx, [r13 + 0x10]
call fcn.1400a8b00
mov qword [rsi], rax
lea eax, [rdi + 1]
jmp 0x1400aa34f
cmp edi, 1
jne case.0x1400a9aac.69
mov rcx, qword [r12 + 8]
xor edx, edx
call fcn.140073e80
mov rdx, qword [r13 + 0x40]
mov r14, rax
mov r8d, dword [r13 + 0x1c]
test rdx, rdx
je 0x1400aa102
sub rdx, qword [r13 + 0x48]
lea rcx, [r13 + 0x10]
mov r9, qword [r13 + 0x10]
sub rdx, r8
mov r8d, edi
call qword [r9 + 0x28]
mov qword [r13 + 0x40], rbp
jmp 0x1400aa116
test r8d, r8d
je 0x1400aa11a
mov rax, qword [r13 + 0x10]
lea rcx, [r13 + 0x10]
mov rdx, qword [r13 + 0x48]
call qword [rax + 0x20]
mov dword [r13 + 0x1c], ebp
mov rax, qword [r13 + 0x10]
lea rcx, [r13 + 0x10]
mov word [r13 + 0x3c], bp
call qword [rax + 0x30]
xor r8d, r8d
lea rcx, [r13 + 0x10]
mov rdi, rax
mov rdx, r14
mov rax, qword [r13 + 0x10]
call qword [rax + 0x28]
test al, al
je 0x1400aa178
mov rcx, qword [r13 + 0x50]
call qword [sym.imp.KERNEL32.dll_SetEndOfFile]
test eax, eax
je 0x1400aa178
mov rax, qword [r13 + 0x10]
lea rcx, [r13 + 0x10]
cmp r14, rdi
cmovl rdi, r14
xor r8d, r8d
mov rdx, rdi
call qword [rax + 0x28]
mov rax, qword [r13 + 0x10]
lea rcx, [r13 + 0x10]
call qword [rax + gethostname]
mov rbx, rax
jmp 0x1400aa17f
mov rbx, 0xffffffffffffffff
mov qword [rsi], rbx
cmp rbx, 0xffffffffffffffff
jne 0x1400a9d35
lea rdi, [0x1400cb664]
mov qword [rsi], rdi
jmp 0x1400aa06f
test edi, edi
jne 0x1400a9d35
mov rcx, qword [r13 + 0x40]
test rcx, rcx
je 0x1400aa1b9
mov eax, dword [r13 + 0x1c]
add rax, qword [r13 + 0x48]
cmp rcx, rax
jb 0x1400aa1e1
mov rax, qword [r13 + 0x10]
lea rcx, [r13 + 0x10]
call qword [rax + 0x30]
mov rdi, rax
test rax, rax
js 0x1400aa1dc
mov rax, qword [r13 + 0x10]
lea rcx, [r13 + 0x10]
call qword [rax + gethostname]
cmp rdi, rax
jl 0x1400aa1e1
mov ebp, 1
mov qword [rsi], rbp
mov eax, 1
jmp 0x1400aa34f
test edi, edi
jne 0x1400a9d35
mov rdx, qword [r13 + 0x40]
mov r8d, dword [r13 + 0x1c]
test rdx, rdx
je 0x1400aa220
sub rdx, qword [r13 + 0x48]
lea rcx, [r13 + 0x10]
mov r9, qword [r13 + 0x10]
sub rdx, r8
lea r8d, [rdi + 1]
call qword [r9 + 0x28]
mov qword [r13 + 0x40], rbp
jmp 0x1400aa234
test r8d, r8d
je 0x1400aa238
mov rax, qword [r13 + 0x10]
lea rcx, [r13 + 0x10]
mov rdx, qword [r13 + 0x48]
call qword [rax + 0x20]
mov dword [r13 + 0x1c], ebp
mov rax, qword [r13 + 0x50]
mov word [r13 + 0x3c], bp
mov qword [rsi], rax
mov eax, 1
jmp 0x1400aa34f
test edi, edi
jle 0x1400aa2c9
mov rcx, qword [r12 + 8]
call fcn.140073d50
mov r9, qword [r12 + 8]
test eax, eax
je 0x1400aa271
xor edx, edx
mov rcx, r9
call fcn.140073e80
jmp 0x1400aa2b5
mov ecx, dword [r9 + 0x10]
test ecx, ecx
je 0x1400aa2aa
sub ecx, 1
je 0x1400aa28d
sub ecx, 1
je 0x1400aa28d
sub ecx, 2
je 0x1400aa296
cmp ecx, 1
je 0x1400aa2aa
lea rdi, [0x1400cb664]
jmp 0x1400aa2ad
mov rcx, qword [r9]
xor r8d, r8d
lea edx, [r8 + 1]
call fcn.1400016b0
mov rdi, rax
jmp 0x1400aa2ad
mov rdi, qword [r9]
mov rcx, rdi
call fcn.140027410
cmp eax, 0xffffffff
je 0x1400aa2c9
btr eax, 0x1f
lea rcx, [r13 + 0x10]
mov edx, eax
call fcn.140027670
mov ecx, dword [r13 + 0x24]
cmp ecx, 0x4b0
je 0x1400aa318
cmp ecx, 0xfde9
je 0x1400aa304
mov rbx, qword [rsi + 8]
mov r8d, 0xa
lea rdx, [rbx + 4]
mov dword [rbx], 0x500043
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__itow]
mov eax, 1
mov dword [rsi + 0x10], ebp
mov qword [rsi], rbx
jmp 0x1400aa34f
lea rbx, str.UTF_8
mov dword [rsi + 0x10], ebp
mov qword [rsi], rbx
mov eax, 1
jmp 0x1400aa34f
lea rbx, str.UTF_16
mov dword [rsi + 0x10], ebp
mov qword [rsi], rbx
mov eax, 1
jmp 0x1400aa34f
test edi, edi
jne 0x1400aa339
lea rcx, [r13 + 0x10]
call fcn.140027620
lea rdi, [0x1400cb664]
mov dword [rsi + 0x10], ebp
mov qword [rsi], rdi
mov eax, 1
jmp 0x1400aa34f
mov eax, ebx
mov rbx, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x80]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
ret