Function at 0x1400b87e0
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 0x1400b938d
mov r12, qword [rsp + 0x90]
dec edi
mov r15, qword [r12]
mov edx, dword [r15 + 0x10]
test edx, edx
je 0x1400b8862
sub edx, 1
je 0x1400b8845
sub edx, 1
je 0x1400b8845
sub edx, 2
je 0x1400b884e
cmp edx, 1
je 0x1400b8862
lea r15, [0x1400da7a4]
jmp 0x1400b8865
mov rcx, qword [r15]
xor r8d, r8d
lea edx, [r8 + 1]
call fcn.1400017c0
mov r15, rax
jmp 0x1400b8865
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 0x1400b88b5
cmp word [r15 + 8], bp
lea rcx, [r15 + 8]
jne 0x1400b8892
lea r14d, [rbp + 1]
jmp 0x1400b8a20
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 0x1400b8a20
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 0x1400b8900
cmp word [r15 + 0xa], bp
lea rcx, [r15 + 0xa]
jne 0x1400b88e3
lea r14d, [rax + 2]
jmp 0x1400b8a20
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 0x1400b8a20
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 0x1400b891d
lea r14d, [rax + 6]
jmp 0x1400b8a20
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 0x1400b893a
lea r14d, [rax + 6]
jmp 0x1400b8a20
lea rdx, [0x1400f2990]
mov rcx, r15
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
test eax, eax
je 0x1400b8a1a
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 0x1400b896f
lea r14d, [rax + 9]
jmp 0x1400b8a20
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 0x1400b898c
lea r14d, [rax + 0xa]
jmp 0x1400b8a20
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 0x1400b89a6
lea r14d, [rax + 0xb]
jmp 0x1400b8a20
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 0x1400b89c0
lea r14d, [rax + 0xc]
jmp 0x1400b8a20
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 0x1400b89da
lea r14d, [rax + 0xd]
jmp 0x1400b8a20
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 0x1400b8a1a
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 0x1400b8a1a
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 0x1400b938d
mov r14d, 8
mov eax, dword [rsp + 0x88]
test al, 2
jne 0x1400b8a40
cmp r14d, 7
jb 0x1400b8d75
and eax, 1
cmp edi, eax
jne 0x1400b8d75
lea eax, [r14 - 1]
mov dword [rsi + 0x10], 1
cmp eax, 0xc
ja case.0x1400b8aec.69
cdqe
lea rcx, [0x140000000]
mov eax, dword [rcx + rax*4 + 0xb93b0]
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.140016470
cmp ax, 0x55
jne 0x1400b8ab7
add r15, 2
mov qword [rsp + 0x38], r15
mov r15d, ebp
jmp 0x1400b8abd
mov r15d, 1
mov rax, qword [rsp + 0x38]
movzx ecx, word [rax]
call fcn.140016470
movzx eax, ax
add eax, 0xffffffbd
cmp eax, 0x10
ja case.0x1400b8aec.69
lea rcx, [0x140000000]
cdqe
mov edx, dword [rcx + rax*4 + 0xb93e4]
add rdx, rcx
jmp rdx
mov rcx, qword [rsp + 0x38]
mov dx, getservbyname
call qword [sym.imp.VCRUNTIME140.dll_wcschr]
test rax, rax
mov eax, 8
cmovne ebx, eax
jmp 0x1400b8b2a
mov ebx, 2
jmp 0x1400b8b2a
mov ebx, 1
jmp 0x1400b8b2a
mov ebx, 8
jmp 0x1400b8b2a
mov ebx, 8
mov r14d, 1
cmp byte [rsp + 0x98], bpl
je 0x1400b8bf5
lea rcx, [r13 + 0x10]
mov qword [rsp + 0x30], rbp
mov r8d, ebx
lea rdx, [rsp + 0x30]
call fcn.1400b80f0
test eax, eax
je case.0x1400b8aec.69
test r14d, r14d
je 0x1400b8b99
cmp ebx, 4
jne 0x1400b8b7d
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 0x1400b938f
movsd xmm0, qword [rsp + 0x30]
mov eax, 2
mov dword [rsi + 0x10], eax
mov eax, 1
movsd qword [rsi], xmm0
jmp 0x1400b938f
test r15d, r15d
je 0x1400b8be3
sub ebx, 1
je 0x1400b8bd0
sub ebx, 1
je 0x1400b8bbd
cmp ebx, 2
jne 0x1400b8be3
movsxd rax, dword [rsp + 0x30]
mov qword [rsi], rax
lea eax, [rbx - 1]
jmp 0x1400b938f
movsx rax, word [rsp + 0x30]
mov qword [rsi], rax
mov eax, 1
jmp 0x1400b938f
movsx rax, byte [rsp + 0x30]
mov qword [rsi], rax
mov eax, 1
jmp 0x1400b938f
mov rax, qword [rsp + 0x30]
mov qword [rsi], rax
mov eax, 1
jmp 0x1400b938f
cmp edi, 1
jne case.0x1400b8aec.69
mov r9, qword [r12 + 8]
test r14d, r14d
je 0x1400b8c3a
xor r8d, r8d
mov edx, edi
mov rcx, r9
call fcn.140083c20
movsd qword [rsp + 0x30], xmm0
lea rdi, [0x1400da7a4]
cmp ebx, 4
jne 0x1400b8cc6
cvtsd2ss xmm0, xmm0
movss dword [rsp + 0x30], xmm0
jmp 0x1400b8cc6
cmp ebx, 8
jne 0x1400b8cb0
test r15d, r15d
jne 0x1400b8cb0
mov ecx, dword [r9 + 0x10]
lea eax, [rcx - 1]
cmp eax, 1
jbe 0x1400b8cb0
test ecx, ecx
je 0x1400b8c9c
sub ecx, 1
je 0x1400b8c68
sub ecx, 1
je 0x1400b8c68
sub ecx, 2
je 0x1400b8c7c
cmp ecx, 1
je 0x1400b8c9c
lea rdi, [0x1400da7a4]
mov rax, rdi
mov rcx, rax
call fcn.140059440
jmp 0x1400b8cc1
mov rcx, qword [r9]
xor r8d, r8d
lea edx, [r8 + 1]
call fcn.1400017c0
mov rcx, rax
lea rdi, [0x1400da7a4]
call fcn.140059440
jmp 0x1400b8cc1
mov rax, qword [r9]
lea rdi, [0x1400da7a4]
mov rcx, rax
call fcn.140059440
jmp 0x1400b8cc1
xor edx, edx
mov rcx, r9
call fcn.140083b80
lea rdi, [0x1400da7a4]
mov qword [rsp + 0x30], rax
lea rcx, [r13 + 0x10]
mov r8d, ebx
lea rdx, [rsp + 0x30]
call fcn.1400b84a0
mov ecx, eax
test eax, eax
jne 0x1400b8cf1
mov rax, qword [0x1401101f0]
test byte [rax + 0x140], 1
jne 0x1400b90af
mov qword [rsi], rcx
mov eax, 1
jmp 0x1400b938f
cmp edi, 1
jg case.0x1400b8aec.69
test edi, edi
je 0x1400b8d1c
mov rcx, qword [r12 + 8]
xor edx, edx
call fcn.140083b80
mov rbx, rax
jmp 0x1400b8d35
lea rcx, [r13 + 0x10]
call fcn.1400b7af0
lea rcx, [r13 + 0x10]
mov rdi, rax
call fcn.1400b7b40
sub eax, edi
mov ebx, eax
cmp ebx, 0xffffffff
je case.0x1400b8aec.69
mov r8d, ebx
xor edx, edx
mov rcx, rsi
call fcn.1400841d0
test eax, eax
je case.0x1400b8aec.69
xor r9d, r9d
mov r8d, ebx
mov rdx, qword [rsi]
lea rcx, [r13 + 0x10]
call fcn.1400b7d40
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 0x1400b938f
test edi, edi
jne case.0x1400b8aec.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.0x1400b8aec.69
mov qword [rsi + 8], 0x10000
lea r9d, [rdi + 1]
mov qword [rsi], rax
mov r8d, 0xffff
mov word [rax + 0x20000], bp
jmp 0x1400b8d59
cmp edi, 1
jg case.0x1400b8aec.69
mov r15d, ebp
mov ebx, ebp
test edi, edi
je 0x1400b8e70
mov rdx, qword [rsi + 8]
mov rcx, qword [r12 + 8]
call fcn.140083ce0
mov rbx, qword [r12 + 8]
mov rdi, rax
cmp dword [rbx + 0x10], 4
jne 0x1400b8e44
mov rbx, qword [rbx]
movzx edx, byte [rbx + 0x23]
test dl, dl
jne 0x1400b8e04
mov rax, qword [rbx + 0x10]
movzx ecx, byte [rax + 0x21]
jmp 0x1400b8e08
movzx ecx, byte [rbx + 0x21]
test cl, 1
jne 0x1400b8e44
test dl, dl
jne 0x1400b8e15
mov rbx, qword [rbx + 0x10]
cmp byte [rbx + 0x23], 1
jne 0x1400b8e35
test byte [rbx + 0x21], 8
je 0x1400b8e29
mov rcx, rbx
call fcn.140001670
add rbx, 0x10
mov rbx, qword [rbx]
shr rbx, 1
jmp 0x1400b8e59
lea rbx, [0x1401195c0]
mov rbx, qword [rbx]
shr rbx, 1
jmp 0x1400b8e59
mov rbx, 0xffffffffffffffff
nop dword [rax + rax]
inc rbx
cmp word [rdi + rbx*2], bp
jne 0x1400b8e50
add r13, 0x10
mov r8d, ebx
mov rcx, r13
mov rdx, rdi
call fcn.1400b8240
mov r15d, eax
jmp 0x1400b8e74
add r13, 0x10
cmp r14d, 4
jne 0x1400b8e9d
test r15d, r15d
jne 0x1400b8e83
test ebx, ebx
jne 0x1400b8ea6
mov r8d, 1
lea rdx, [0x1400fb094]
mov rcx, r13
inc ebx
call fcn.1400b8240
add r15d, eax
test r15d, r15d
jne 0x1400b8eba
test ebx, ebx
je 0x1400b8eba
mov rax, qword [0x1401101f0]
test byte [rax + 0x140], 1
jne case.0x1400b8aec.69
mov eax, r15d
mov qword [rsi], rax
mov eax, 1
jmp 0x1400b938f
cmp edi, 2
jne case.0x1400b8aec.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.140083b80
cmp dword [rdi + 0x10], 4
mov rbx, rax
jne 0x1400b8f81
mov rcx, qword [rdi]
cmp byte [rcx + 0x23], bpl
jne 0x1400b8f11
mov rax, qword [rcx + 0x10]
jmp 0x1400b8f14
mov rax, rcx
cmp byte [rax + 0x23], 2
mov edx, dword [0x140117c60]
je 0x1400b8f24
mov rdx, qword [rax + 0x18]
mov eax, ebx
cmp rax, rdx
jbe 0x1400b8f70
test r14b, r14b
je 0x1400b8f4f
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.1400befb0
test eax, eax
jne 0x1400b8f70
mov rax, qword [0x1401101f0]
test byte [rax + 0x140], 1
jne case.0x1400b8aec.69
mov qword [rsi], rbp
mov eax, 1
jmp 0x1400b938f
mov rcx, qword [rdi]
xor r8d, r8d
lea edx, [r8 + 1]
call fcn.1400017c0
jmp 0x1400b8f8b
xor edx, edx
mov rcx, rdi
call fcn.140083b80
cmp rax, 0x10000
jae 0x1400b8f97
mov ecx, ebp
jmp 0x1400b8fb8
lea rcx, [r13 + 0x10]
mov r8d, ebx
mov rdx, rax
test r14b, r14b
je 0x1400b8fad
call fcn.1400b80f0
jmp 0x1400b8fb2
call fcn.1400b84a0
mov ecx, eax
test eax, eax
jne 0x1400b8fd0
test ebx, ebx
je 0x1400b8fd0
mov rax, qword [0x1401101f0]
test byte [rax + 0x140], 1
jne case.0x1400b8aec.69
mov eax, ecx
mov qword [rsi], rax
mov eax, 1
jmp 0x1400b938f
test edi, edi
jne 0x1400b8ff7
lea rcx, [r13 + 0x10]
call fcn.1400b7af0
mov qword [rsi], rax
lea eax, [rdi + 1]
jmp 0x1400b938f
cmp edi, 2
jg case.0x1400b8aec.69
mov rcx, qword [r12 + 8]
xor edx, edx
call fcn.140083b80
mov r14, rax
cmp edi, 2
jne 0x1400b9025
mov rcx, qword [r12 + 0x10]
xor edx, edx
call fcn.140083b80
mov rdi, rax
jmp 0x1400b9032
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 0x1400b905e
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 0x1400b9072
test r8d, r8d
je 0x1400b9076
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 0x1400b921c
mov rax, qword [0x1401101f0]
test byte [rax + 0x140], 1
je 0x1400b9221
lea rdi, [0x1400da7a4]
mov rax, qword [0x1401101f0]
mov dword [rsi + 0x10], ebp
test byte [rax + 0x140], 1
je 0x1400b8d75
mov rcx, qword [0x140117680]
lea r8, str.FileObject
mov r9, rdi
lea rdx, [0x1400f11dc]
call fcn.140056cc0
mov eax, 1
jmp 0x1400b938f
test edi, edi
jne 0x1400b9105
lea rcx, [r13 + 0x10]
call fcn.1400b7b40
mov qword [rsi], rax
lea eax, [rdi + 1]
jmp 0x1400b938f
cmp edi, 1
jne case.0x1400b8aec.69
mov rcx, qword [r12 + 8]
xor edx, edx
call fcn.140083b80
mov rdx, qword [r13 + 0x40]
mov r14, rax
mov r8d, dword [r13 + 0x1c]
test rdx, rdx
je 0x1400b9142
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 0x1400b9156
test r8d, r8d
je 0x1400b915a
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 0x1400b91b8
mov rcx, qword [r13 + 0x50]
call qword [sym.imp.KERNEL32.dll_SetEndOfFile]
test eax, eax
je 0x1400b91b8
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 + reloc.WSOCK32.dll_getservbyport]
mov rbx, rax
jmp 0x1400b91bf
mov rbx, 0xffffffffffffffff
mov qword [rsi], rbx
cmp rbx, 0xffffffffffffffff
jne 0x1400b8d75
lea rdi, [0x1400da7a4]
mov qword [rsi], rdi
jmp 0x1400b90af
test edi, edi
jne 0x1400b8d75
mov rcx, qword [r13 + 0x40]
test rcx, rcx
je 0x1400b91f9
mov eax, dword [r13 + 0x1c]
add rax, qword [r13 + 0x48]
cmp rcx, rax
jb 0x1400b9221
mov rax, qword [r13 + 0x10]
lea rcx, [r13 + 0x10]
call qword [rax + 0x30]
mov rdi, rax
test rax, rax
js 0x1400b921c
mov rax, qword [r13 + 0x10]
lea rcx, [r13 + 0x10]
call qword [rax + reloc.WSOCK32.dll_getservbyport]
cmp rdi, rax
jl 0x1400b9221
mov ebp, 1
mov qword [rsi], rbp
mov eax, 1
jmp 0x1400b938f
test edi, edi
jne 0x1400b8d75
mov rdx, qword [r13 + 0x40]
mov r8d, dword [r13 + 0x1c]
test rdx, rdx
je 0x1400b9260
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 0x1400b9274
test r8d, r8d
je 0x1400b9278
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 0x1400b938f
test edi, edi
jle 0x1400b9309
mov rcx, qword [r12 + 8]
call fcn.140083a50
mov r9, qword [r12 + 8]
test eax, eax
je 0x1400b92b1
xor edx, edx
mov rcx, r9
call fcn.140083b80
jmp 0x1400b92f5
mov ecx, dword [r9 + 0x10]
test ecx, ecx
je 0x1400b92ea
sub ecx, 1
je 0x1400b92cd
sub ecx, 1
je 0x1400b92cd
sub ecx, 2
je 0x1400b92d6
cmp ecx, 1
je 0x1400b92ea
lea rdi, [0x1400da7a4]
jmp 0x1400b92ed
mov rcx, qword [r9]
xor r8d, r8d
lea edx, [r8 + 1]
call fcn.1400017c0
mov rdi, rax
jmp 0x1400b92ed
mov rdi, qword [r9]
mov rcx, rdi
call fcn.140033b60
cmp eax, 0xffffffff
je 0x1400b9309
btr eax, 0x1f
lea rcx, [r13 + 0x10]
mov edx, eax
call fcn.1400057e0
mov ecx, dword [r13 + 0x24]
cmp ecx, 0x4b0
je 0x1400b9358
cmp ecx, 0xfde9
je 0x1400b9344
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 0x1400b938f
lea rbx, str.UTF_8
mov dword [rsi + 0x10], ebp
mov qword [rsi], rbx
mov eax, 1
jmp 0x1400b938f
lea rbx, str.UTF_16
mov dword [rsi + 0x10], ebp
mov qword [rsi], rbx
mov eax, 1
jmp 0x1400b938f
test edi, edi
jne 0x1400b9379
lea rcx, [r13 + 0x10]
call fcn.140005790
lea rdi, [0x1400da7a4]
mov dword [rsi + 0x10], ebp
mov qword [rsi], rdi
mov eax, 1
jmp 0x1400b938f
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