Function at 0x1400f0290
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], r8
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x118
mov rdi, qword [rcx + 0x28]
movaps xmmword [rax - 0x58], xmm6
movaps xmmword [rax - 0x68], xmm7
mov r10d, edx
xor edx, edx
mov rbp, r8
mov r8d, dword [rdi + 0xc]
mov qword [rsp + 0xd0], rdi
movaps xmmword [rax - 0x78], xmm8
imul r9, r10, 0x1640
mov rax, qword [rcx + 0x18]
mov rbx, qword [rax]
mov rax, qword [rdi + 0x70]
mov r14, qword [r9 + rax + 0x15e0]
mov r9, qword [rcx + 0x20]
mov rsi, qword [rbx + 0x18]
mov r11, qword [r9 + 0x18]
mov eax, r10d
mov qword [rsp + 0xc0], rbx
div dword [rdi + 0x20]
mov qword [rsp + 0x40], r14
mov qword [rsp + 0x50], rsi
mov r10d, eax
mov qword [rsp + 0x58], r11
imul r8d, edx
add r8d, dword [rdi + 4]
mov edx, dword [r9]
cmp r8d, edx
mov eax, r8d
cmova edx, r8d
mov dword [rbx], edx
mov r8d, dword [r9 + 8]
mov ecx, dword [rdi + 0xc]
add rcx, rax
mov rax, rcx
shr rax, 0x20
neg eax
or eax, ecx
cmp eax, r8d
cmovb r8d, eax
mov dword [rbx + 8], r8d
test edx, edx
js 0x1400f0e78
cmp r8d, edx
jle 0x1400f0e78
mov eax, dword [rdi + 0x10]
mov edx, dword [r9 + 4]
imul eax, r10d
add eax, dword [rdi + 8]
cmp eax, edx
cmova edx, eax
mov dword [rbx + 4], edx
mov r8d, dword [r9 + 0xc]
mov ecx, dword [rdi + 0x10]
add rcx, rax
mov rax, rcx
shr rax, 0x20
neg eax
or eax, ecx
cmp eax, r8d
cmovb r8d, eax
mov dword [rbx + 0xc], r8d
test edx, edx
js 0x1400f0e6f
cmp r8d, edx
jle 0x1400f0e6f
cmp dword [r14 + 4], 0
jne 0x1400f03b7
lea r8, str.tiles_require_at_least_one_resolution_n
jmp 0x1400f0e7f
xor r15d, r15d
mov r8d, r15d
mov dword [rsp + 0x34], r15d
cmp dword [rbx + 0x10], r15d
jbe 0x1400f0e67
movsd xmm6, qword [0x140161c98]
movsd xmm7, qword [0x1401a2ec8]
movsd xmm8, qword [0x140161178]
lea r12, [0x1400f98c0]
movsxd rcx, dword [r11]
mov dword [r11 + 0x24], r15d
movsxd rax, dword [rbx]
dec rax
movabs r9, 0x3fffffffffffffff
add rax, rcx
cqo
idiv rcx
mov dword [rsi], eax
movsxd rcx, dword [r11 + 4]
movsxd rax, dword [rbx + 4]
dec rax
add rax, rcx
cqo
idiv rcx
mov dword [rsi + 4], eax
movsxd rcx, dword [r11]
movsxd rax, dword [rbx + 8]
dec rax
add rax, rcx
cqo
idiv rcx
mov dword [rsi + 8], eax
movsxd rcx, dword [r11 + 4]
movsxd rax, dword [rbx + 0xc]
dec rax
mov dword [rsi + 0x10], r8d
add rax, rcx
cqo
idiv rcx
mov dword [rsi + 0xc], eax
mov eax, dword [r14 + 4]
mov dword [rsi + 0x14], eax
mov eax, dword [r14 + 4]
mov ecx, dword [rdi + 0x78]
cmp eax, ecx
jae 0x1400f046d
mov dword [rsi + 0x18], 1
jmp 0x1400f0472
sub eax, ecx
mov dword [rsi + 0x18], eax
mov eax, dword [rsi + 8]
sub eax, dword [rsi]
movsxd r8, eax
mov eax, dword [rsi + 0xc]
sub eax, dword [rsi + 4]
movsxd rcx, eax
je 0x1400f0497
xor edx, edx
or rax, 0xffffffffffffffff
div rcx
cmp r8, rax
ja 0x1400f0d9d
imul rcx, r8
cmp rcx, r9
ja 0x1400f0d9d
lea rax, [rcx*4]
mov rcx, qword [rsi + 0x50]
mov qword [rsi + 0x40], rax
mov eax, dword [rsi + 0x14]
lea ebx, [rax + rax*2]
shl ebx, 6
call fcn.1400d7780
mov rcx, qword [rsi + 0x20]
mov qword [rsi + 0x50], r15
mov qword [rsi + 0x58], 0
mov qword [rsi + 0x60], 0
test rcx, rcx
jne 0x1400f0507
mov ecx, ebx
mov edi, ebx
call fcn.1400d9100
mov qword [rsi + 0x20], rax
test rax, rax
je 0x1400f0e8f
mov r8d, edi
xor edx, edx
mov rcx, rax
mov dword [rsi + 0x28], ebx
call sub.msvcrt.dll_memset
jmp 0x1400f0536
cmp ebx, dword [rsi + 0x28]
jbe 0x1400f0536
mov edx, ebx
call fcn.1400d9110
test rax, rax
je 0x1400f0db6
mov ecx, dword [rsi + 0x28]
mov r8d, ebx
xor edx, edx
sub r8d, ecx
add rcx, rax
mov qword [rsi + 0x20], rax
call sub.msvcrt.dll_memset
mov dword [rsi + 0x28], ebx
cmp dword [r14 + 0x14], 0
mov r13d, dword [rsi + 0x14]
mov rbx, qword [rsi + 0x20]
lea rax, [r14 + 0x1c]
mov edx, r15d
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x70], rax
lea rax, [0x1400f98a0]
mov dword [rsp + 0x178], edx
cmove rax, r12
mov qword [rsp + 0xb8], rax
test r13d, r13d
je 0x1400f0d4e
mov ecx, r13d
mov r8d, 1
rol r8, cl
nop dword [rax]
nop word [rax + rax]
ror r8, 1
movsxd r9, dword [rsi]
dec r13d
mov ecx, r13d
dec r9
mov qword [rsp + 0xb0], r8
add r9, r8
mov dword [rsp + 0x78], r13d
sar r9, cl
mov dword [rbx], r9d
movsxd r11, dword [rsi + 4]
dec r11
add r11, r8
sar r11, cl
mov dword [rbx + 4], r11d
movsxd r10, dword [rsi + 8]
dec r10
add r10, r8
sar r10, cl
mov dword [rbx + 8], r10d
movsxd rax, dword [rsi + 0xc]
dec rax
add r8, rax
mov eax, edx
mov edx, 1
sar r8, cl
mov dword [rbx + 0xc], r8d
mov r12d, dword [r14 + rax*4 + 0x32c]
mov eax, dword [r14 + rax*4 + 0x3b0]
mov dword [rsp + 0x168], eax
mov ecx, r12d
mov eax, r9d
sar eax, cl
mov r14d, r11d
movsxd rdi, r8d
shl eax, cl
mov ecx, dword [rsp + 0x168]
mov dword [rsp + 0x160], r12d
sar r14d, cl
shl rdx, cl
mov qword [rsp + 0x48], rax
dec rdx
shl r14d, cl
add rdi, rdx
mov qword [rsp + 0x88], r14
sar rdi, cl
shl edi, cl
cmp r9d, r10d
mov r9d, eax
jne 0x1400f0653
mov r8d, r15d
jmp 0x1400f067a
mov ecx, r12d
mov edx, 1
movsxd r8, r10d
dec r8
shl rdx, cl
add r8, rdx
sar r8, cl
shl r8d, cl
sub r8d, r9d
sar r8d, cl
mov ecx, dword [rsp + 0x168]
mov dword [rbx + 0x10], r8d
cmp r11d, dword [rbx + 0xc]
jne 0x1400f0689
mov edi, r15d
jmp 0x1400f068e
sub edi, r14d
sar edi, cl
mov dword [rbx + 0x14], edi
test r8d, r8d
je 0x1400f06a6
xor edx, edx
or eax, 0xffffffff
div r8d
cmp eax, edi
jb 0x1400f0d9d
imul edi, r8d
mov qword [rsp + 0xa0], rdi
cmp edi, 0x4924924
ja 0x1400f0d9d
mov r8d, dword [rsp + 0x178]
mov edx, dword [rsp + 0x160]
imul r12d, edi, 0x38
mov dword [rsp + 0x6c], r12d
test r8d, r8d
jne 0x1400f06e4
mov dword [rbx + 0x18], 1
jmp 0x1400f071c
movsxd r9, r9d
movsxd r14, r14d
mov dword [rbx + 0x18], 3
inc r9
inc r14
sar r9, 1
sar r14, 1
dec edx
dec ecx
mov qword [rsp + 0x48], r9
mov qword [rsp + 0x88], r14
mov dword [rsp + 0x168], ecx
mov dword [rsp + 0x160], edx
mov r9, qword [rsp + 0x40]
mov ecx, edx
lea r14, [rbx + 0x20]
cmp dword [r9 + 8], edx
mov eax, dword [r9 + 0xc]
mov qword [rsp + 0x98], r14
cmovb ecx, dword [r9 + 8]
mov dword [rsp + 0x38], r15d
mov dword [rsp + 0x20], ecx
mov ecx, dword [rsp + 0x168]
cmp eax, ecx
cmovb ecx, eax
cmp dword [rbx + 0x18], 0
mov dword [rsp + 0x24], ecx
jbe 0x1400f0d16
mov ecx, 1
mov dword [rsp + 0x30], ecx
test r8d, r8d
jne 0x1400f07bb
mov dword [r14 + 0x10], r15d
movsxd rdx, dword [rsi]
mov ecx, r13d
dec rdx
mov r8d, 1
shl r8, cl
add rdx, r8
sar rdx, cl
mov dword [r14], edx
movsxd rdx, dword [rsi + 4]
dec rdx
add rdx, r8
sar rdx, cl
mov dword [r14 + 4], edx
movsxd rdx, dword [rsi + 8]
dec rdx
add rdx, r8
sar rdx, cl
mov dword [r14 + 8], edx
movsxd rax, dword [rsi + 0xc]
lea rdx, [r8 - 1]
jmp 0x1400f0840
mov rbx, qword [rsp + 0x28]
mov dword [r14 + 0x10], ecx
movsxd rdx, dword [rsi]
mov eax, ecx
mov r9d, ecx
mov ecx, r13d
and eax, 1
shr r9d, 1
mov r11d, 1
movsxd r10, eax
shl r10, cl
lea ecx, [r13 + 1]
sub rdx, r10
shl r11, cl
lea ecx, [r13 + 1]
dec rdx
add rdx, r11
sar rdx, cl
mov ecx, r13d
mov dword [r14], edx
movsxd rdx, dword [rsi + 4]
shl r9, cl
sub rdx, r9
lea ecx, [r13 + 1]
dec rdx
add rdx, r11
sar rdx, cl
lea ecx, [r13 + 1]
mov dword [r14 + 4], edx
movsxd rdx, dword [rsi + 8]
sub rdx, r10
dec rdx
add rdx, r11
sar rdx, cl
lea ecx, [r13 + 1]
mov dword [r14 + 8], edx
movsxd rax, dword [rsi + 0xc]
lea rdx, [r11 - 1]
sub rax, r9
add rdx, rax
mov eax, dword [r14 + 8]
sar rdx, cl
mov dword [r14 + 0xc], edx
cmp eax, dword [r14]
je 0x1400f0cdf
mov eax, edx
cmp edx, dword [r14 + 4]
je 0x1400f0cdf
mov ecx, dword [r14 + 0x10]
call qword [rsp + 0xb8]
mov rcx, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x70]
movaps xmm0, xmm6
mov ecx, dword [rcx + 0x18]
sub ecx, dword [rbx]
add ecx, eax
movd xmm1, ecx
cvtdq2pd xmm1, xmm1
call sub.msvcrt.dll_pow
movd xmm1, dword [rbx + 4]
mov rax, qword [rsp + 0x40]
cvtdq2pd xmm1, xmm1
mulsd xmm1, xmm7
addsd xmm1, xmm8
mulsd xmm0, xmm1
cvtsd2ss xmm0, xmm0
movss dword [r14 + 0x28], xmm0
mov ecx, dword [rax + 0x324]
dec ecx
add ecx, dword [rbx]
mov dword [r14 + 0x24], ecx
mov rcx, qword [r14 + 0x18]
test rcx, rcx
jne 0x1400f08ef
test edi, edi
je 0x1400f08ef
mov ecx, r12d
mov ebx, r12d
call fcn.1400d9100
mov qword [r14 + 0x18], rax
test rax, rax
je 0x1400f0de0
mov r8d, ebx
mov rcx, rax
jmp 0x1400f0917
cmp dword [r14 + 0x20], r12d
jae 0x1400f0922
mov edx, r12d
call fcn.1400d9110
test rax, rax
je 0x1400f0df9
mov ecx, dword [r14 + 0x20]
mov r8d, r12d
mov qword [r14 + 0x18], rax
sub r8d, ecx
add rcx, rax
xor edx, edx
call sub.msvcrt.dll_memset
mov dword [r14 + 0x20], r12d
mov rsi, qword [r14 + 0x18]
mov eax, r15d
mov dword [rsp + 0x3c], eax
test edi, edi
je 0x1400f0cd5
mov ecx, dword [rsp + 0x160]
mov r10d, dword [rsp + 0x20]
mov r11d, dword [rsp + 0x24]
mov r8d, 1
mov r9d, 1
mov ebx, 1
shl r8d, cl
mov ecx, dword [rsp + 0x168]
mov edx, 1
shl r9d, cl
mov ecx, r10d
mov dword [rsp + 0x84], r8d
shl rbx, cl
mov ecx, r11d
mov dword [rsp + 0x64], r9d
shl rdx, cl
mov qword [rsp + 0xa8], rbx
mov qword [rsp + 0xc8], rdx
nop dword [rax]
nop word [rax + rax]
mov r12d, dword [r14]
mov rcx, qword [rsp + 0x28]
mov rdi, qword [rsp + 0xc8]
xor edx, edx
div dword [rcx + 0x10]
imul edx, r8d
imul eax, r9d
add edx, dword [rsp + 0x48]
add eax, dword [rsp + 0x88]
cmp edx, r12d
lea ecx, [r8 + rdx]
lea r8d, [r9 + rax]
cmovg r12d, edx
mov dword [rsi], r12d
mov r13d, dword [r14 + 4]
cmp eax, r13d
cmovg r13d, eax
mov dword [rsi + 4], r13d
mov eax, dword [r14 + 8]
cmp ecx, eax
cmovl eax, ecx
mov ecx, r10d
mov dword [rsi + 8], eax
mov r9d, dword [r14 + 0xc]
movsxd rdx, eax
cmp r8d, r9d
cmovl r9d, r8d
dec rdi
dec rdx
sar r12d, cl
add rdx, rbx
movsxd rax, r9d
shl r12d, cl
add rdi, rax
mov ecx, r11d
sar r13d, cl
mov dword [rsi + 0xc], r9d
mov dword [rsp + 0x7c], r12d
shl r13d, cl
mov ecx, r10d
sar rdx, cl
mov dword [rsp + 0x60], r13d
shl edx, cl
sub edx, r12d
sar edx, cl
mov ecx, r11d
sar rdi, cl
mov dword [rsi + 0x10], edx
shl edi, cl
sub edi, r13d
sar edi, cl
mov dword [rsi + 0x14], edi
imul edi, edx
mov qword [rsp + 0x90], rdi
cmp edi, 0x3ffffff
ja 0x1400f0e51
mov rcx, qword [rsi + 0x18]
mov ebx, edi
shl ebx, 6
test rcx, rcx
jne 0x1400f0aa8
test edi, edi
je 0x1400f0aa8
mov ecx, ebx
mov edi, ebx
call fcn.1400d9100
mov qword [rsi + 0x18], rax
test rax, rax
je 0x1400f0e8f
mov r8d, edi
xor edx, edx
mov rcx, rax
call sub.msvcrt.dll_memset
mov rdi, qword [rsp + 0x90]
jmp 0x1400f0ad4
cmp ebx, dword [rsi + 0x20]
jbe 0x1400f0ad7
mov edx, ebx
call fcn.1400d9110
test rax, rax
je 0x1400f0e20
mov ecx, dword [rsi + 0x20]
mov r8d, ebx
xor edx, edx
sub r8d, ecx
add rcx, rax
mov qword [rsi + 0x18], rax
call sub.msvcrt.dll_memset
mov dword [rsi + 0x20], ebx
mov rcx, qword [rsi + 0x28]
test rcx, rcx
jne 0x1400f0af0
mov edx, dword [rsi + 0x14]
mov ecx, dword [rsi + 0x10]
mov r8, rbp
call fcn.1400fda10
jmp 0x1400f0aff
mov r8d, dword [rsi + 0x14]
mov edx, dword [rsi + 0x10]
mov r9, rbp
call fcn.1400fddf0
mov rcx, qword [rsi + 0x30]
mov qword [rsi + 0x28], rax
test rcx, rcx
jne 0x1400f0b1c
mov edx, dword [rsi + 0x14]
mov ecx, dword [rsi + 0x10]
mov r8, rbp
call fcn.1400fda10
jmp 0x1400f0b2b
mov r8d, dword [rsi + 0x14]
mov edx, dword [rsi + 0x10]
mov r9, rbp
call fcn.1400fddf0
mov qword [rsi + 0x30], rax
test edi, edi
je 0x1400f0c88
mov ecx, dword [rsp + 0x20]
mov r8d, 1
mov r9d, 1
shl r8d, cl
mov ecx, dword [rsp + 0x24]
shl r9d, cl
mov dword [rsp + 0x80], r8d
xor ebx, ebx
mov dword [rsp + 0x68], r9d
mov rdi, qword [rsi + 0x18]
xor edx, edx
mov eax, r15d
div dword [rsi + 0x10]
mov ebp, edx
mov r14d, eax
imul ebp, r8d
imul r14d, r9d
add ebp, r12d
add r14d, r13d
cmp qword [rbx + rdi + 8], 0
lea r12d, [r8 + rbp]
lea r13d, [r9 + r14]
jne 0x1400f0baa
mov edx, 0x18
lea ecx, [rdx + 0x4c]
call fcn.1400d90d0
mov qword [rbx + rdi + 8], rax
test rax, rax
je 0x1400f0e8c
cmp qword [rbx + rdi + 0x10], 0
jne 0x1400f0bcd
mov edx, 0x18
lea ecx, [rdx + 0x4c]
call fcn.1400d90d0
mov qword [rbx + rdi + 0x10], rax
test rax, rax
je 0x1400f0e8c
mov r8d, dword [rsi]
cmp ebp, r8d
cmovg r8d, ebp
mov dword [rbx + rdi + 0x18], r8d
mov edx, dword [rsi + 4]
cmp r14d, edx
cmovg edx, r14d
mov dword [rbx + rdi + 0x1c], edx
mov ecx, dword [rsi + 8]
cmp r12d, ecx
cmovl ecx, r12d
mov dword [rbx + rdi + 0x20], ecx
mov eax, dword [rsi + 0xc]
cmp r13d, eax
cmovl eax, r13d
sub ecx, r8d
mov dword [rbx + rdi + 0x24], eax
sub eax, edx
imul eax, ecx
lea ebp, [rax*4 + 2]
cmp ebp, dword [rbx + rdi + 0x30]
jbe 0x1400f0c4c
mov rcx, qword [rbx + rdi]
test rcx, rcx
je 0x1400f0c2c
dec rcx
call fcn.1400d90f0
lea ecx, [rbp + 1]
call fcn.1400d9100
mov qword [rbx + rdi], rax
test rax, rax
je 0x1400f0e47
mov dword [rbx + rdi + 0x30], ebp
mov byte [rax], 0
inc qword [rbx + rdi]
mov r8d, dword [rsp + 0x80]
mov r9d, dword [rsp + 0x68]
mov r12d, dword [rsp + 0x7c]
mov r13d, dword [rsp + 0x60]
inc r15d
add rbx, 0x40
cmp r15d, dword [rsp + 0x90]
jb 0x1400f0b60
mov r14, qword [rsp + 0x98]
mov rbp, qword [rsp + 0x170]
mov eax, dword [rsp + 0x3c]
mov rdi, qword [rsp + 0xa0]
mov r10d, dword [rsp + 0x20]
mov r11d, dword [rsp + 0x24]
mov r8d, dword [rsp + 0x84]
mov r9d, dword [rsp + 0x64]
mov rbx, qword [rsp + 0xa8]
inc eax
add rsi, 0x38
mov dword [rsp + 0x3c], eax
mov r15d, 0
cmp eax, edi
jb 0x1400f09a0
mov r13d, dword [rsp + 0x78]
mov r12d, dword [rsp + 0x6c]
mov rbx, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x50]
mov eax, dword [rsp + 0x38]
mov ecx, dword [rsp + 0x30]
add qword [rsp + 0x70], 8
mov r8d, dword [rsp + 0x178]
inc eax
inc ecx
add r14, 0x30
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x30], ecx
mov qword [rsp + 0x98], r14
cmp eax, dword [rbx + 0x18]
jb 0x1400f0768
mov r14, qword [rsp + 0x40]
inc r8d
add rbx, 0xc0
cmp r8d, dword [rsi + 0x14]
mov dword [rsp + 0x178], r8d
mov edx, r8d
mov r8, qword [rsp + 0xb0]
mov qword [rsp + 0x28], rbx
jb 0x1400f0590
lea r12, [0x1400f98c0]
mov r8d, dword [rsp + 0x34]
mov r11, qword [rsp + 0x58]
mov rbx, qword [rsp + 0xc0]
inc r8d
add r14, 0x438
add rsi, 0x70
add r11, 0x40
mov qword [rsp + 0x40], r14
mov qword [rsp + 0x50], rsi
mov dword [rsp + 0x34], r8d
mov qword [rsp + 0x58], r11
cmp r8d, dword [rbx + 0x10]
jae 0x1400f0e67
mov rdi, qword [rsp + 0xd0]
jmp 0x1400f03ec
lea r8, str.Size_of_tile_data_exceeds_system_limits_n
mov edx, 1
mov rcx, rbp
call fcn.1400ead70
jmp 0x1400f0e8f
lea r8, str.Not_enough_memory_for_tile_resolutions_n
mov edx, 1
mov rcx, rbp
call fcn.1400ead70
mov rcx, qword [rsi + 0x20]
call fcn.1400d90f0
mov qword [rsi + 0x20], r15
mov dword [rsi + 0x28], r15d
jmp 0x1400f0e8f
lea r8, str.Not_enough_memory_to_handle_band_precints_n
mov edx, 1
mov rcx, rbp
call fcn.1400ead70
jmp 0x1400f0e8f
lea r8, str.Not_enough_memory_to_handle_band_precints_n
mov edx, 1
mov rcx, rbp
call fcn.1400ead70
mov rcx, qword [r14 + 0x18]
call fcn.1400d90f0
mov qword [r14 + 0x18], r15
mov dword [r14 + 0x20], r15d
jmp 0x1400f0e8f
mov rcx, qword [rsi + 0x18]
call fcn.1400d90f0
lea r8, str.Not_enough_memory_for_current_precinct_codeblock_element_n
mov edx, 1
mov rcx, rbp
mov qword [rsi + 0x18], r15
mov dword [rsi + 0x20], r15d
call fcn.1400ead70
jmp 0x1400f0e8f
xor r15d, r15d
mov dword [rbx + rdi + 0x30], r15d
jmp 0x1400f0e8f
lea r8, str.Size_of_code_block_data_exceeds_system_limits_n
mov edx, 1
mov rcx, rbp
call fcn.1400ead70
jmp 0x1400f0e8f
mov r15d, 1
jmp 0x1400f0e8f
lea r8, str.Tile_Y_coordinates_are_not_supported_n
jmp 0x1400f0e7f
lea r8, str.Tile_X_coordinates_are_not_supported_n
mov edx, 1
mov rcx, rbp
call fcn.1400ead70
xor r15d, r15d
lea r11, [rsp + 0x118]
mov eax, r15d
movaps xmm6, xmmword [r11 - 0x18]
movaps xmm7, xmmword [r11 - 0x28]
movaps xmm8, xmmword [r11 - 0x38]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret