Function at 0x14007c0a0
Capabilities:
Get geographical location

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x408]
sub rsp, 0x4d0
movaps xmmword [rax - 0x48], xmm6
movaps xmmword [rax - 0x58], xmm7
mov rax, qword [0x140155040]
xor rax, rsp
mov qword [rbp + 0x3a0], rax
mov edi, 0x1e
mov esi, edx
mov rdx, qword [0x140159180]
cmp r8, rdi
mov r12, rcx
cmovae rdi, r8
mov qword [rsp + 0x40], rdi
lea rcx, [rdi + 0x12]
call fcn.1400601a0
mov r11, rax
mov qword [rsp + 0x30], rax
xor ecx, ecx
mov qword [rax], rdi
add rax, 0x10
mov qword [r11 + 8], rax
mov word [rdi + rax], cx
mov rbx, qword [r11 + 8]
xor r11d, r11d
test byte [0x140156ef0], 1
mov r15d, r11d
mov qword [rsp + 0x38], r11
jne 0x14007c1ff
lock bts qword [0x140156ef0], 0x1f
setb al
test al, al
jne 0x14007c1e7
mov r9d, 4
lea r8, [rbp - 0x70]
mov edx, 0xe
mov ecx, 0x400
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
test eax, eax
je 0x14007c181
mov rax, qword [rbp - 0x70]
test ax, ax
je 0x14007c181
cmp word [rbp - 0x6e], r15w
jne 0x14007c181
mov word [0x140155ea4], ax
mov r9d, 4
lea r8, [rbp - 0x70]
mov edx, 0xf
mov ecx, 0x400
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
test eax, eax
je 0x14007c1b6
mov rax, qword [rbp - 0x70]
test ax, ax
je 0x14007c1b6
cmp word [rbp - 0x6e], r15w
jne 0x14007c1b6
mov word [0x140155f38], ax
cmp word [0x140155ea4], 0x2e
nop
je 0x14007c1d7
lea rdx, [0x14010fd1c]
xor ecx, ecx
call fcn.1400d2be8
mov qword [0x140159ab8], rax
lea rcx, [0x140156ef0]
nop
call fcn.140094940
jmp 0x14007c1fc
test byte [0x140156ef0], 1
jne 0x14007c1ff
lea rcx, [0x140156ef0]
call fcn.1400949c0
xor r11d, r11d
movsd xmm6, qword [0x1401445c0]
lea r8, [0x140000000]
movsd xmm7, qword [0x1401445b0]
mov edx, 1
mov r9d, 0xa2
mov r10d, 2
jmp 0x14007c233
xor r11d, r11d
mov r14, r12
mov qword [rsp + 0x58], r12
add r12, 0x20
mov qword [rbp - 0x80], r15
dec esi
mov qword [rbp - 0x78], r12
mov dword [rsp + 0x6c], esi
mov r12d, r11d
mov r13d, dword [r14]
mov eax, r13d
and eax, 0x3f
cmp eax, 0xd
ja case.default.0x14007c274
mov ecx, dword [r8 + rax*4 + 0x7d944]
add rcx, r8
jmp rcx
lea rsi, [r15 + 2]
cmp rdi, rsi
jae 0x14007c2fa
mov rdx, qword [0x140159180]
lea rax, ds:[rdi + rdi]
cmp rax, rsi
mov rbx, rsi
cmovae rbx, rax
mov qword [rsp + 0x40], rbx
lea rcx, [rbx + 0x12]
call fcn.1400601a0
mov rdi, rax
mov r8, r15
mov qword [rax], rbx
lea rcx, [rax + 0x10]
mov qword [rax + 8], rcx
xor eax, eax
mov word [rbx + rcx], ax
mov rbx, qword [rsp + 0x30]
mov rcx, qword [rdi + 8]
mov rdx, qword [rbx + 8]
call fcn.1400e6ce0
lea rcx, ds:[rbx - 0x10]
mov edx, 0xffffffff
lock xadd dword [rcx + 8], edx
cmp edx, 1
jne 0x14007c2ea
call fcn.1400602c0
mov rax, qword [rdi + 8]
shr r15, 1
mov qword [rsp + 0x30], rdi
lea rbx, [rax + r15*2]
movzx eax, word [r14 + 0x10]
mov r15, rsi
mov word [rbx], ax
add rbx, 2
mov qword [rsp + 0x38], rsi
jmp case.default.0x14007c274
mov rcx, qword [r14 + 0x10]
add rcx, r15
cmp rdi, rcx
jae 0x14007c39d
mov rdx, qword [0x140159180]
lea rax, ds:[rdi + rdi]
cmp rax, rcx
mov rbx, rcx
cmovae rbx, rax
mov qword [rsp + 0x40], rbx
lea rcx, [rbx + 0x12]
call fcn.1400601a0
mov rdi, rax
mov r8, r15
mov qword [rax], rbx
lea rcx, [rax + 0x10]
mov qword [rax + 8], rcx
xor eax, eax
mov word [rbx + rcx], ax
mov rbx, qword [rsp + 0x30]
mov rcx, qword [rdi + 8]
mov rdx, qword [rbx + 8]
call fcn.1400e6ce0
lea rcx, ds:[rbx - 0x10]
mov edx, 0xffffffff
lock xadd dword [rcx + 8], edx
cmp edx, 1
jne 0x14007c38a
call fcn.1400602c0
mov rax, qword [rdi + 8]
mov rcx, r15
shr rcx, 1
mov qword [rsp + 0x30], rdi
lea rbx, [rax + rcx*2]
mov r8, qword [r14 + 0x10]
mov rcx, rbx
mov rdx, qword [r14 + 0x18]
call fcn.1400e6ce0
mov rax, qword [r14 + 0x10]
shr rax, 1
add r15, qword [r14 + 0x10]
jmp 0x14007d796
mov rdi, qword [r14 + 0x10]
xorps xmm1, xmm1
mov rdx, rdi
mov ecx, edi
and rdx, 0xfffffffffffffff1
and ecx, 0xf
je 0x14007c3f4
movdqu xmm0, xmmword [rdx]
pcmpeqw xmm0, xmm1
pmovmskb eax, xmm0
shr eax, cl
bsf ecx, eax
mov dword [rsp + 0x48], ecx
je 0x14007c3f0
mov edx, ecx
shr rdx, 1
jmp 0x14007c438
add rdx, 0x10
movdqu xmm0, xmmword [rdx]
pcmpeqw xmm0, xmm1
pmovmskb eax, xmm0
bsf ecx, eax
mov dword [rsp + 0x48], ecx
jne 0x14007c42a
nop dword [rax]
movdqu xmm0, xmmword [rdx + 0x10]
add rdx, 0x10
pcmpeqw xmm0, xmm1
pmovmskb eax, xmm0
bsf ecx, eax
mov dword [rsp + 0x48], ecx
je 0x14007c410
sub rdx, rdi
mov eax, ecx
sar rdx, 1
shr rax, 1
add rdx, rax
mov r8, qword [rsp + 0x40]
lea rdi, [rdx + rdx]
lea rsi, [rdi + r15]
cmp r8, rsi
jae 0x14007c4c2
mov rdx, qword [0x140159180]
lea rax, [r8 + r8]
cmp rax, rsi
mov r12, rsi
cmovae r12, rax
mov qword [rsp + 0x40], r12
lea rcx, [r12 + 0x12]
call fcn.1400601a0
mov rbx, rax
mov r8, r15
mov qword [rax], r12
lea rcx, [rax + 0x10]
mov qword [rax + 8], rcx
xor eax, eax
mov word [r12 + rcx], ax
mov r12, qword [rsp + 0x30]
mov rcx, qword [rbx + 8]
mov rdx, qword [r12 + 8]
call fcn.1400e6ce0
lea rcx, [r12 - 0x10]
mov edx, 0xffffffff
lock xadd dword [rcx + 8], edx
cmp edx, 1
jne 0x14007c4b2
call fcn.1400602c0
mov rax, qword [rbx + 8]
shr r15, 1
mov qword [rsp + 0x30], rbx
lea rbx, [rax + r15*2]
mov rdx, qword [r14 + 0x10]
mov r8, rdi
mov rcx, rbx
call fcn.1400e6ce0
shr rdi, 1
mov r15, rsi
mov qword [rsp + 0x38], rsi
lea rbx, [rbx + rdi*2]
jmp case.default.0x14007c274
cmp r13d, 3
jne 0x14007c4f5
mov rsi, qword [r14 + 0x18]
mov rdi, qword [r14 + 0x10]
jmp 0x14007c509
mov rsi, qword [r14 + 0x10]
mov rdi, 0xffffffffffffffff
inc rdi
cmp byte [rsi + rdi], 0
jne 0x14007c500
mov r8d, edi
lea rcx, [rsp + 0x60]
mov rdx, rsi
call qword [sym.imp.ntdll.dll_RtlMultiByteToUnicodeSize]
nop word [rax + rax]
test eax, eax
js case.default.0x14007c274
lfence
mov edx, dword [rsp + 0x60]
mov r8, qword [rsp + 0x40]
lea rcx, [r15 + rdx]
cmp r8, rcx
jae 0x14007c5c8
mov rdx, qword [0x140159180]
lea rax, [r8 + r8]
cmp rax, rcx
mov r12, rcx
cmovae r12, rax
mov qword [rsp + 0x40], r12
lea rcx, [r12 + 0x12]
call fcn.1400601a0
mov rbx, rax
mov r8, r15
mov qword [rax], r12
lea rcx, [rax + 0x10]
mov qword [rax + 8], rcx
xor eax, eax
mov word [r12 + rcx], ax
mov r12, qword [rsp + 0x30]
mov rcx, qword [rbx + 8]
mov rdx, qword [r12 + 8]
call fcn.1400e6ce0
lea rcx, [r12 - 0x10]
mov edx, 0xffffffff
lock xadd dword [rcx + 8], edx
cmp edx, 1
jne 0x14007c5b1
call fcn.1400602c0
mov rax, qword [rbx + 8]
mov rcx, r15
mov edx, dword [rsp + 0x60]
shr rcx, 1
mov qword [rsp + 0x30], rbx
lea rbx, [rax + rcx*2]
mov r9, rsi
mov dword [rsp + 0x20], edi
xor r8d, r8d
mov rcx, rbx
call qword [sym.imp.ntdll.dll_RtlMultiByteToUnicodeN]
nop dword [rax + rax]
test eax, eax
js case.default.0x14007c274
mov ecx, dword [rsp + 0x60]
mov eax, ecx
shr rax, 1
add r15, rcx
jmp 0x14007d796
mov eax, dword [r14 + 0x10]
mov r12d, eax
mov r8d, eax
shr r12d, 0x1f
neg r8d
test eax, eax
cmovns r8d, eax
jmp 0x14007c616
mov r8d, dword [r14 + 0x10]
mov r10d, 0xa
bt r13d, 8
jae 0x14007c633
movzx eax, byte [r14 + 0xa]
cmp al, 2
jb 0x14007c633
cmp al, 0x45
ja 0x14007c633
mov r10d, eax
bt r13d, 0x1d
lea r9, str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_________._:_________
lea rax, str.0123456789abcdefghijklmnopqrstuvwxyz_________._:_________
mov r14d, r11d
cmovae r9, rax
lea rsi, [rbp + 0x39e]
test r8d, r8d
je 0x14007c6e2
bt r13d, 0x10
jae 0x14007c6c0
mov edi, r11d
nop word [rax + rax]
xor edx, edx
mov eax, r8d
div r10d
inc r14d
inc edi
mov r8d, eax
movsx ecx, byte [rdx + r9]
mov word [rsi], cx
sub rsi, 2
cmp edi, 3
jne 0x14007c6a8
test eax, eax
je 0x14007c6ac
movzx eax, word [0x140155f38]
mov word [rsi], ax
sub rsi, 2
inc r14d
jmp 0x14007c664
test eax, eax
jne 0x14007c670
mov rdi, qword [rsp + 0x40]
mov edx, 1
test r12d, r12d
je 0x14007c6fa
mov ecx, edx
jmp 0x14007c705
xor edx, edx
mov eax, r8d
div r10d
inc r14d
mov r8d, eax
movsx ecx, byte [rdx + r9]
mov word [rsi], cx
sub rsi, 2
test eax, eax
jne 0x14007c6c0
nop
jmp 0x14007c6b1
mov eax, 0x30
lea rsi, [rbp + 0x39c]
mov word [rbp + 0x39e], ax
mov r14d, edx
jmp 0x14007c6b6
bt r13d, 0x11
mov ecx, r11d
cmovb ecx, edx
and r13d, 0x50000
cmp r13d, 0x40000
mov r13, qword [rsp + 0x58]
jne 0x14007c738
movzx edx, word [r13 + 6]
lea eax, [rcx + r14]
cmp eax, edx
jae 0x14007c738
mov eax, edx
or r12d, 4
sub eax, ecx
sub eax, r14d
mov dword [rsp + 0x64], eax
add ecx, eax
lea eax, [rcx + r14]
lea r15, [r15 + rax*2]
cmp rdi, r15
jae 0x14007c7c3
mov rdx, qword [0x140159180]
lea rax, [rdi + rdi]
cmp rax, r15
mov rbx, r15
cmovae rbx, rax
mov qword [rsp + 0x40], rbx
lea rcx, [rbx + 0x12]
call fcn.1400601a0
mov rdx, qword [rsp + 0x30]
mov rdi, rax
mov qword [rax], rbx
lea rcx, [rax + 0x10]
mov qword [rax + 8], rcx
xor eax, eax
mov word [rcx + rbx], ax
mov rbx, qword [rsp + 0x38]
mov rdx, qword [rdx + 8]
mov r8, rbx
mov rcx, qword [rdi + 8]
call fcn.1400e6ce0
mov rcx, qword [rsp + 0x30]
mov edx, 0xffffffff
add rcx, 0xfffffffffffffff0
lock xadd dword [rcx + 8], edx
cmp edx, 1
jne 0x14007c7b3
call fcn.1400602c0
mov rax, qword [rdi + 8]
shr rbx, 1
mov qword [rsp + 0x30], rdi
lea rbx, [rax + rbx*2]
test r12b, 1
je 0x14007c7d0
mov word [rbx], 0x2d
jmp 0x14007c7df
test dword [r13], 0x20000
je 0x14007c7e3
mov word [rbx], 0x2b
add rbx, 2
test r12b, 4
je 0x14007c807
mov edx, dword [rsp + 0x64]
test rdx, rdx
je 0x14007c803
mov eax, 0x30
mov rdi, rbx
movzx eax, ax
mov rcx, rdx
rep stosw word [rdi], ax
lea rbx, [rbx + rdx*2]
mov edi, r14d
lea rdx, [rsi + 2]
add rdi, rdi
mov rcx, rbx
mov r8, rdi
call fcn.1400e6ce0
mov r14, qword [rsp + 0x58]
add rbx, rdi
jmp 0x14007d79a
mov ecx, 0x10
mov rax, r14
mov rax, qword [rax + rcx]
mov r12, rax
mov rdi, rax
shr r12, 0x3f
neg rdi
cmovs rdi, rax
jmp 0x14007c84c
mov rdi, qword [r14 + 0x10]
mov r9d, 0xa
bt r13d, 8
jae 0x14007c86b
movzx eax, byte ds:[r14 + 0xa]
cmp al, 2
jb 0x14007c86b
cmp al, 0x45
ja 0x14007c86b
mov r9d, eax
bt r13d, 0x1d
lea r10, str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_________._:_________
lea rax, str.0123456789abcdefghijklmnopqrstuvwxyz_________._:_________
mov r14d, r11d
cmovae r10, rax
lea rsi, [rbp + 0x39e]
test rdi, rdi
je 0x14007c92e
bt r13d, 0x10
jae 0x14007c900
mov r8d, r11d
nop
xor edx, edx
mov rax, rdi
div r9
mov rax, rdi
inc r14d
mov rcx, rdx
inc r8d
xor edx, edx
div r9
mov rdi, rax
mov eax, ecx
movsx ecx, byte [rax + r10]
mov word [rsi], cx
sub rsi, 2
cmp r8d, 3
jne 0x14007c8e8
test rdi, rdi
je 0x14007c8ed
movzx eax, word [0x140155f38]
mov word [rsi], ax
sub rsi, 2
inc r14d
jmp 0x14007c89c
test rdi, rdi
jne 0x14007c8a0
mov edx, 1
test r12d, r12d
je 0x14007c946
mov ecx, edx
jmp 0x14007c951
xor edx, edx
mov rax, rdi
div r9
mov rax, rdi
inc r14d
mov rcx, rdx
xor edx, edx
div r9
mov rdi, rax
mov eax, ecx
movsx ecx, byte [rax + r10]
mov word [rsi], cx
sub rsi, 2
test rdi, rdi
jne 0x14007c900
jmp 0x14007c8ed
mov eax, 0x30
lea rsi, [rbp + 0x39c]
mov word [rbp + 0x39e], ax
mov r14d, edx
jmp 0x14007c8f2
bt r13d, 0x11
mov ecx, r11d
cmovb ecx, edx
and r13d, 0x50000
cmp r13d, 0x40000
mov r13, qword [rsp + 0x58]
jne 0x14007c984
movzx edx, word [r13 + 6]
lea eax, [rcx + r14]
cmp eax, edx
jae 0x14007c984
mov eax, edx
or r12d, 4
sub eax, ecx
sub eax, r14d
mov dword [rsp + 0x68], eax
add ecx, eax
mov r8, qword [rsp + 0x40]
lea eax, [rcx + r14]
lea r15, [r15 + rax*2]
cmp r8, r15
jae 0x14007ca15
mov rdx, qword [0x140159180]
lea rax, [r8 + r8]
cmp rax, r15
mov rbx, r15
cmovae rbx, rax
mov qword [rsp + 0x40], rbx
lea rcx, [rbx + 0x12]
call fcn.1400601a0
mov rdi, rax
mov qword [rax], rbx
lea rcx, [rax + 0x10]
mov qword [rax + 8], rcx
xor eax, eax
mov word [rbx + rcx], ax
mov rax, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x38]
mov rcx, qword [rdi + 8]
mov r8, rbx
mov rdx, qword [rax + 8]
call fcn.1400e6ce0
mov rcx, qword [rsp + 0x30]
mov edx, 0xffffffff
add rcx, 0xfffffffffffffff0
lock xadd dword [rcx + 8], edx
cmp edx, 1
jne 0x14007ca05
nop
call fcn.1400602c0
mov rax, qword [rdi + 8]
shr rbx, 1
mov qword [rsp + 0x30], rdi
lea rbx, [rax + rbx*2]
test r12b, 1
je 0x14007ca22
mov word [rbx], 0x2d
jmp 0x14007ca31
test dword [r13], 0x20000
je 0x14007ca35
mov word [rbx], 0x2b
add rbx, 2
test r12b, 4
je 0x14007c807
mov edx, dword [rsp + 0x68]
jmp 0x14007c7ed
test r13b, 0x40
je 0x14007ca5d
movzx r8d, word [r14 + 4]
cmp r8d, r9d
jbe 0x14007ca63
mov r8d, r9d
jmp 0x14007ca63
mov r8d, 6
movss xmm0, dword [r14 + 0x10]
lea r9, [rbp - 0x5f]
mov edx, r13d
lea r15, [rbp - 0x5f]
call fcn.1400b9440
test al, al
jne 0x14007ca82
mov byte [rbp - 0x5f], al
jmp 0x14007cad7
mov rdx, qword [0x140159ab8]
test rdx, rdx
je 0x14007caba
movzx eax, byte [rbp - 0x5f]
lea rcx, [rbp - 0x5f]
test al, al
je 0x14007caba
nop word [rax + rax]
cmp al, 0x2e
je 0x14007cab1
movzx eax, byte [rcx + 1]
inc rcx
test al, al
jne 0x14007caa0
jmp 0x14007caba
movzx eax, byte [0x140155ea4]
mov byte [rcx], al
bt r13d, 0x1d
jae 0x14007cad7
lea rcx, [rbp - 0x5f]
test rdx, rdx
je 0x14007cad2
call fcn.1400d221c
jmp 0x14007cad7
call fcn.1400d21bc
mov r9d, dword ds:[r14]
bt r9d, 0xf
jae 0x14007cb71
movzx eax, byte [rbp - 0x5f]
lea rcx, [rbp - 0x5f]
movzx r8d, byte [0x140155ea4]
test al, al
je 0x14007cb10
nop word [rax + rax]
cmp al, r8b
je 0x14007cb10
movzx eax, byte [rcx + 1]
inc rcx
test al, al
jne 0x14007cb00
movzx eax, byte [rcx]
inc rcx
test al, al
je 0x14007cb71
movzx eax, byte ds:[rcx]
test al, al
je 0x14007cb35
sub al, 0x45
test al, 0xdf
je 0x14007cb35
movzx eax, byte [rcx + 1]
inc rcx
test al, al
jne 0x14007cb24
movzx eax, byte ds:[rcx - 1]
mov rdi, rcx
dec rcx
cmp al, 0x30
jne 0x14007cb4f
movzx eax, byte [rcx - 1]
dec rcx
cmp al, 0x30
je 0x14007cb44
cmp al, r8b
lea rdx, [rcx - 1]
cmovne rdx, rcx
nop word [rax + rax]
movzx eax, byte [rdi]
lea rdx, [rdx + 1]
mov byte [rdx], al
lea rdi, [rdi + 1]
test al, al
jne 0x14007cb60
lea rax, [rbp - 0x5f]
mov r14, 0xffffffffffffffff
nop dword [rax]
inc r14
cmp byte [rax + r14], 0
jne 0x14007cb80
cmp byte [rbp - 0x5f], 0x2d
jne 0x14007cba2
dec r14d
lea r15, [rbp - 0x5e]
xor ecx, ecx
mov r12d, 1
jmp 0x14007cbb8
mov ecx, 0
bt r9d, 0x11
mov r12d, ecx
mov eax, 2
cmovb r12d, eax
mov eax, r9d
and eax, 0x13000
cmp eax, 0x10000
jne 0x14007cd7f
movzx eax, byte [r15]
mov rsi, r15
sub al, 0x30
mov qword [rsp + 0x50], r15
cmp al, 0xa
jae 0x14007cbed
nop dword [rax]
movzx eax, byte [rsi + 1]
inc rsi
sub al, 0x30
cmp al, 0xa
jb 0x14007cbe0
mov r13d, esi
sub r13d, r15d
lea edi, [r13 + 2]
je 0x14007cc0b
mov eax, 0xaaaaaaab
mul edi
mov r10d, edx
shr r10d, 1
dec r10d
jmp 0x14007cc0e
mov r10d, ecx
mov r8, qword [rsp + 0x40]
lea ecx, [r10 + r14]
add ecx, ecx
mov dword [rsp + 0x48], r10d
test r12d, r12d
lea eax, [rcx + 2]
cmove eax, ecx
mov rcx, qword [rsp + 0x38]
add rcx, rax
cmp r8, rcx
jae 0x14007ccc4
lea rax, [r8 + r8]
mov rdx, rcx
cmp rax, rcx
cmovae rdx, rax
mov qword [rsp + 0x40], rdx
lea rcx, [rdx + 0x12]
mov rdx, qword [0x140159180]
call fcn.1400601a0
mov r8, qword [rsp + 0x40]
mov rbx, rax
mov qword [rax], r8
lea rcx, [rax + 0x10]
mov qword [rax + 8], rcx
xor eax, eax
mov word [r8 + rcx], ax
mov rax, qword [rsp + 0x30]
mov r8, qword [rsp + 0x38]
mov rcx, qword [rbx + 8]
mov rdx, qword [rax + 8]
call fcn.1400e6ce0
mov rcx, qword ds:[rsp + 0x30]
mov edx, 0xffffffff
add rcx, 0xfffffffffffffff0
lock xadd dword [rcx + 8], edx
cmp edx, 1
jne 0x14007ccaa
call fcn.1400602c0
mov rcx, qword [rsp + 0x38]
mov rax, qword [rbx + 8]
mov r10d, dword [rsp + 0x48]
shr rcx, 1
mov qword [rsp + 0x30], rbx
lea rbx, [rax + rcx*2]
mov eax, 0xaaaaaaab
mov ecx, r13d
mul edi
shr edx, 1
lea eax, [rdx + rdx*2]
sub edi, eax
test r12b, 1
je 0x14007cce2
mov word [rbx], 0x2d
jmp 0x14007cced
test r12b, 2
je 0x14007ccf1
mov word [rbx], 0x2b
add rbx, 2
test r13d, r13d
je 0x14007cd44
nop word [rax + rax]
movsx eax, byte [r15]
dec ecx
mov word [rbx], ax
inc r15
mov eax, edi
add rbx, 2
dec edi
test eax, eax
jne 0x14007cd3c
test ecx, ecx
je 0x14007cd44
movzx eax, word [0x140155f38]
dec ecx
mov word [rbx], ax
mov edi, 1
movsx eax, byte [r15]
mov word [rbx + 2], ax
add rbx, 4
inc r15
nop dword [rax]
test ecx, ecx
jne 0x14007cd00
mov r15, qword [rsp + 0x38]
test r12d, r12d
je 0x14007cd52
add r15, 2
sub r14d, r13d
mov r8, rbx
mov edx, r14d
mov rcx, rsi
mov edi, r14d
call fcn.140062120
lea ecx, [r10 + r13]
add rcx, rdi
lea rbx, [rbx + r14*2]
mov r14, qword [rsp + 0x58]
lea r15, [r15 + rcx*2]
jmp 0x14007d79a
test r12d, r12d
mov rdx, rcx
setne dl
mov rcx, rdx
bt r9d, 0x12
jae 0x14007cdbd
mov r13, qword [rsp + 0x58]
mov edi, r14d
movzx r8d, word [r13 + 6]
lea rax, [rdx + rdi]
cmp rax, r8
jae 0x14007cdbd
mov ecx, r8d
or r12d, 4
sub rcx, rdi
mov rax, rcx
sub rax, rdx
mov qword [rsp + 0x70], rax
mov r13, qword [rsp + 0x38]
mov r8, qword [rsp + 0x40]
mov r14d, r14d
lea rax, [r14 + rcx]
lea rsi, [rax*2]
add rsi, r13
cmp r8, rsi
jae 0x14007ce5a
mov rdx, qword [0x140159180]
lea rax, ds:[r8 + r8]
cmp rax, rsi
mov rbx, rsi
cmovae rbx, rax
mov qword [rsp + 0x40], rbx
lea rcx, [rbx + 0x12]
call fcn.1400601a0
mov rdi, rax
mov r8, r13
mov qword [rax], rbx
lea rcx, [rax + 0x10]
mov qword [rax + 8], rcx
xor eax, eax
mov word [rbx + rcx], ax
mov rbx, qword [rsp + 0x30]
mov rcx, qword [rdi + 8]
mov rdx, qword [rbx + 8]
call fcn.1400e6ce0
lea rcx, ds:[rbx - 0x10]
mov edx, 0xffffffff
lock xadd dword [rcx + 8], edx
cmp edx, 1
jne 0x14007ce4a
call fcn.1400602c0
mov rax, qword [rdi + 8]
shr r13, 1
mov qword [rsp + 0x30], rdi
lea rbx, [rax + r13*2]
nop word [rax + rax]
test r12b, 1
je 0x14007ce6d
mov word [rbx], 0x2d
jmp 0x14007ce78
test r12b, 2
je 0x14007ce7c
mov word [rbx], 0x2b
add rbx, 2
nop dword [rax]
test r12b, 4
je 0x14007cea5
mov rdx, qword [rsp + 0x70]
test rdx, rdx
je 0x14007cea1
mov eax, 0x30
mov rdi, rbx
movzx eax, ax
mov rcx, rdx
rep stosw word [rdi], ax
lea rbx, [rbx + rdx*2]
mov r8, rbx
mov rdx, r14
mov rcx, r15
call fcn.140062120
lea rbx, [rbx + r14*2]
mov qword [rsp + 0x38], rsi
mov r14, qword [rsp + 0x58]
mov r15, rsi
jmp case.default.0x14007c274
test r13b, 0x40
je 0x14007cede
movzx r8d, word [r14 + 4]
cmp r8d, r9d
jbe 0x14007cee4
mov r8d, r9d
jmp 0x14007cee4
mov r8d, 6
movsd xmm0, qword [r14 + 0x10]
lea r9, [rbp - 0x5f]
mov edx, r13d
lea r15, [rbp - 0x5f]
call fcn.1400b96c0
test al, al
jne 0x14007cf03
mov byte [rbp - 0x5f], al
jmp 0x14007cf57
mov rdx, qword [0x140159ab8]
test rdx, rdx
je 0x14007cf3a
movzx eax, byte [rbp - 0x5f]
lea rcx, [rbp - 0x5f]
test al, al
je 0x14007cf3a
nop dword [rax + rax]
cmp al, 0x2e
je 0x14007cf31
movzx eax, byte [rcx + 1]
inc rcx
test al, al
jne 0x14007cf20
jmp 0x14007cf3a
movzx eax, byte [0x140155ea4]
mov byte [rcx], al
bt r13d, 0x1d
jae 0x14007cf57
lea rcx, [rbp - 0x5f]
test rdx, rdx
je 0x14007cf52
call fcn.1400d221c
jmp 0x14007cf57
call fcn.1400d21bc
mov r9d, dword ds:[r14]
bt r9d, 0xf
jae 0x14007cff1
movzx eax, byte [rbp - 0x5f]
lea rcx, [rbp - 0x5f]
movzx r8d, byte [0x140155ea4]
test al, al
je 0x14007cf90
nop word [rax + rax]
cmp al, r8b
je 0x14007cf90
movzx eax, byte [rcx + 1]
inc rcx
test al, al
jne 0x14007cf80
movzx eax, byte [rcx]
inc rcx
test al, al
je 0x14007cff1
movzx eax, byte ds:[rcx]
test al, al
je 0x14007cfb5
sub al, 0x45
test al, 0xdf
je 0x14007cfb5
movzx eax, byte [rcx + 1]
inc rcx
test al, al
jne 0x14007cfa4
movzx eax, byte ds:[rcx - 1]
mov rdi, rcx
dec rcx
cmp al, 0x30
jne 0x14007cfcf
movzx eax, byte [rcx - 1]
dec rcx
cmp al, 0x30
je 0x14007cfc4
cmp al, r8b
lea rdx, [rcx - 1]
cmovne rdx, rcx
nop word [rax + rax]
movzx eax, byte [rdi]
lea rdx, [rdx + 1]
mov byte [rdx], al
lea rdi, [rdi + 1]
test al, al
jne 0x14007cfe0
lea rax, [rbp - 0x5f]
mov r14, 0xffffffffffffffff
nop dword [rax]
inc r14
cmp byte [rax + r14], 0
jne 0x14007d000
cmp byte [rbp - 0x5f], 0x2d
jne 0x14007d022
dec r14d
lea r15, [rbp - 0x5e]
xor ecx, ecx
mov r12d, 1
jmp 0x14007d038
mov ecx, 0
bt r9d, 0x11
mov r12d, ecx
mov eax, 2
cmovb r12d, eax
mov eax, r9d
and eax, 0x13000
cmp eax, 0x10000
jne 0x14007d1d1
movzx eax, byte [r15]
mov rsi, r15
sub al, 0x30
mov qword [rsp + 0x50], r15
cmp al, 0xa
jae 0x14007d06d
nop dword [rax]
movzx eax, byte [rsi + 1]
inc rsi
sub al, 0x30
cmp al, 0xa
jb 0x14007d060
mov r13d, esi
sub r13d, r15d
lea edi, [r13 + 2]
je 0x14007d08b
mov eax, 0xaaaaaaab
mul edi
mov r10d, edx
shr r10d, 1
dec r10d
jmp 0x14007d08e
mov r10d, ecx
mov r8, qword [rsp + 0x40]
lea ecx, [r10 + r14]
add ecx, ecx
mov dword [rsp + 0x48], r10d
test r12d, r12d
lea eax, [rcx + 2]
cmove eax, ecx
mov rcx, qword [rsp + 0x38]
add rcx, rax
cmp r8, rcx
jae 0x14007d144
lea rax, [r8 + r8]
mov rdx, rcx
cmp rax, rcx
cmovae rdx, rax
mov qword [rsp + 0x40], rdx
lea rcx, [rdx + 0x12]
mov rdx, qword [0x140159180]
call fcn.1400601a0
mov r8, qword [rsp + 0x40]
mov rbx, rax
mov qword [rax], r8
lea rcx, [rax + 0x10]
mov qword [rax + 8], rcx
xor eax, eax
mov word [r8 + rcx], ax
mov rax, qword [rsp + 0x30]
mov r8, qword [rsp + 0x38]
mov rcx, qword [rbx + 8]
mov rdx, qword [rax + 8]
call fcn.1400e6ce0
mov rcx, qword ds:[rsp + 0x30]
mov edx, 0xffffffff
add rcx, 0xfffffffffffffff0
lock xadd dword [rcx + 8], edx
cmp edx, 1
jne 0x14007d12a
call fcn.1400602c0
mov rcx, qword [rsp + 0x38]
mov rax, qword [rbx + 8]
mov r10d, dword [rsp + 0x48]
shr rcx, 1
mov qword [rsp + 0x30], rbx
lea rbx, [rax + rcx*2]
mov eax, 0xaaaaaaab
mov ecx, r13d
mul edi
shr edx, 1
lea eax, [rdx + rdx*2]
sub edi, eax
test r12b, 1
je 0x14007d162
mov word [rbx], 0x2d
jmp 0x14007d16d
test r12b, 2
je 0x14007d171
mov word [rbx], 0x2b
add rbx, 2
test r13d, r13d
je 0x14007cd44
nop word [rax + rax]
movsx eax, byte [r15]
dec ecx
mov word [rbx], ax
inc r15
mov eax, edi
add rbx, 2
dec edi
test eax, eax
jne 0x14007d1c8
nop dword [rax + rax]
test ecx, ecx
je 0x14007cd44
movzx eax, word [0x140155f38]
dec ecx
mov word [rbx], ax
mov edi, 1
movsx eax, byte [r15]
mov word [rbx + 2], ax
add rbx, 4
inc r15
test ecx, ecx
jne 0x14007d180
jmp 0x14007cd44
test r12d, r12d
mov rdx, rcx
setne dl
mov rcx, rdx
bt r9d, 0x12
jae 0x14007d20f
mov r13, qword [rsp + 0x58]
mov edi, r14d
movzx r8d, word [r13 + 6]
lea rax, [rdi + rdx]
cmp rax, r8
jae 0x14007d20f
mov ecx, r8d
or r12d, 4
sub rcx, rdi
mov rax, rcx
sub rax, rdx
mov qword [rsp + 0x78], rax
mov r13, qword [rsp + 0x38]
mov r8, qword [rsp + 0x40]
mov r14d, r14d
lea rax, [r14 + rcx]
lea rsi, [rax*2]
add rsi, r13
cmp r8, rsi
jae 0x14007d2a4
mov rdx, qword [0x140159180]
lea rax, [r8 + r8]
cmp rax, rsi
mov rbx, rsi
cmovae rbx, rax
mov qword [rsp + 0x40], rbx
lea rcx, [rbx + 0x12]
call fcn.1400601a0
mov rdi, rax
mov r8, r13
mov qword [rax], rbx
lea rcx, [rax + 0x10]
mov qword [rax + 8], rcx
xor eax, eax
mov word [rcx + rbx], ax
mov rbx, qword [rsp + 0x30]
mov rcx, qword [rdi + 8]
mov rdx, qword [rbx + 8]
call fcn.1400e6ce0
lea rcx, [rbx - 0x10]
mov edx, 0xffffffff
lock xadd dword [rcx + 8], edx
cmp edx, 1
jne 0x14007d294
call fcn.1400602c0
mov rax, qword [rdi + 8]
shr r13, 1
mov qword [rsp + 0x30], rdi
lea rbx, [rax + r13*2]
test r12b, 1
je 0x14007d2b1
mov word [rbx], 0x2d
jmp 0x14007d2bc
test r12b, 2
je 0x14007d2c0
mov word [rbx], 0x2b
add rbx, 2
test r12b, 4
je 0x14007cea5
mov rdx, qword [rsp + 0x78]
jmp 0x14007ce8b
mov rdx, qword ds:[r14 + 0x10]
xorps xmm0, xmm0
test rdx, rdx
js 0x14007d2ec
cvtsi2sd xmm0, rdx
jmp 0x14007d304
mov rax, rdx
mov rcx, rdx
shr rcx, 1
and eax, 1
or rcx, rax
cvtsi2sd xmm0, rcx
addsd xmm0, xmm0
test rdx, rdx
jne 0x14007d3a5
lea rsi, [r15 + 2]
cmp rdi, rsi
jae 0x14007d38d
mov rdx, qword [0x140159180]
lea rax, [rdi + rdi]
cmp rax, rsi
mov rbx, rsi
cmovae rbx, rax
mov qword [rsp + 0x40], rbx
lea rcx, [rbx + 0x12]
call fcn.1400601a0
mov rdi, rax
mov r8, r15
mov qword [rax], rbx
lea rcx, [rax + 0x10]
mov qword [rax + 8], rcx
xor eax, eax
mov word [rbx + rcx], ax
mov rbx, qword [rsp + 0x30]
mov rcx, qword [rdi + 8]
mov rdx, qword [rbx + 8]
call fcn.1400e6ce0
lea rcx, [rbx - 0x10]
mov edx, 0xffffffff
lock xadd dword [rcx + 8], edx
cmp edx, 1
jne 0x14007d37d
call fcn.1400602c0
mov rax, qword [rdi + 8]
shr r15, 1
mov qword [rsp + 0x30], rdi
lea rbx, [rax + r15*2]
mov word ds:[rbx], 0x30
mov r15, rsi
add rbx, 2
mov qword [rsp + 0x38], rsi
jmp case.default.0x14007c274
bt r13d, 8
jae 0x14007d3b3
movzx eax, byte [r14 + 0xa]
jmp 0x14007d3b9
mov eax, dword [0x140157b3c]
comisd xmm0, xmm6
jb 0x14007d3d8
nop
cmp r12d, 7
jae 0x14007d3d8
cmp r12d, eax
jae 0x14007d3d8
mulsd xmm0, xmm7
inc r12d
comisd xmm0, xmm6
jae 0x14007d3c0
test r13b, 0x40
je 0x14007d3e5
movzx eax, word [r14 + 4]
jmp 0x14007d3e8
mov eax, r10d
movzx r8d, ax
lea r14, [rbp - 0x5f]
cmp r8d, r9d
mov dword [rsp + 0x48], r11d
mov edx, 0x1804c
cmova r8d, r9d
lea r9, [rbp - 0x5f]
call fcn.1400b96c0
movzx r8d, word [0x140155ea4]
test al, al
jne 0x14007d41d
xor dl, dl
mov byte [rbp - 0x5f], dl
jmp 0x14007d44e
cmp qword [0x140159ab8], 0
movzx edx, byte [rbp - 0x5f]
je 0x14007d44e
lea rcx, [rbp - 0x5f]
test dl, dl
je 0x14007d44e
movzx eax, dl
cmp al, 0x2e
je 0x14007d447
movzx eax, byte [rcx + 1]
inc rcx
test al, al
jne 0x14007d436
jmp 0x14007d44e
mov byte [rcx], r8b
movzx edx, byte [rbp - 0x5f]
lea rcx, [rbp - 0x5f]
test dl, dl
je 0x14007d470
movzx eax, dl
nop dword [rax]
cmp al, r8b
je 0x14007d470
movzx eax, byte [rcx + 1]
inc rcx
test al, al
jne 0x14007d460
movzx eax, byte [rcx]
inc rcx
test al, al
je 0x14007d4d5
movzx eax, byte ds:[rcx]
test al, al
je 0x14007d495
sub al, 0x45
test al, 0xdf
je 0x14007d495
movzx eax, byte [rcx + 1]
inc rcx
test al, al
jne 0x14007d484
movzx eax, byte ds:[rcx - 1]
mov rdi, rcx
dec rcx
cmp al, 0x30
jne 0x14007d4af
movzx eax, byte [rcx - 1]
dec rcx
cmp al, 0x30
je 0x14007d4a4
cmp al, r8b
lea rdx, [rcx - 1]
cmovne rdx, rcx
nop word [rax + rax]
movzx eax, byte [rdi]
lea rdx, [rdx + 1]
mov byte [rdx], al
lea rdi, [rdi + 1]
test al, al
jne 0x14007d4c0
movzx edx, byte [rbp - 0x5f]
lea rax, [rbp - 0x5f]
mov r15, 0xffffffffffffffff
inc r15
cmp byte [rax + r15], 0
jne 0x14007d4e0
cmp dl, 0x2d
jne 0x14007d503
mov r8d, 1
lea r14, [rbp - 0x5e]
mov dword [rsp + 0x48], r8d
dec r15d
jmp 0x14007d508
mov r8d, dword [rsp + 0x48]
movzx eax, byte [r14]
mov rsi, r14
sub al, 0x30
mov qword [rsp + 0x50], r14
cmp al, 0xa
jae 0x14007d52d
nop word [rax + rax]
movzx eax, byte [rsi + 1]
inc rsi
sub al, 0x30
cmp al, 0xa
jb 0x14007d520
mov r10d, esi
sub r10d, r14d
mov dword [rsp + 0x50], r10d
lea edi, [r10 + 2]
je 0x14007d550
mov eax, 0xaaaaaaab
mul edi
mov r13d, edx
shr r13d, 1
dec r13d
jmp 0x14007d555
xor eax, eax
mov r13d, eax
mov r11, qword [rsp + 0x38]
lea ecx, [r15 + r13]
add ecx, ecx
test r8d, r8d
lea eax, [rcx + 2]
cmove eax, ecx
mov ecx, eax
mov rax, qword [rsp + 0x40]
add rcx, r11
cmp rax, rcx
jae 0x14007d60d
add rax, rax
mov rdx, rcx
cmp rax, rcx
cmovae rdx, rax
mov qword [rsp + 0x40], rdx
lea rcx, [rdx + 0x12]
mov rdx, qword [0x140159180]
call fcn.1400601a0
mov r8, qword [rsp + 0x38]
mov rbx, rax
mov rax, qword [rsp + 0x40]
lea rcx, [rbx + 0x10]
xor edx, edx
mov qword [rbx], rax
mov qword [rbx + 8], rcx
mov word [rcx + rax], dx
mov rax, qword [rsp + 0x30]
mov rcx, qword [rbx + 8]
mov rdx, qword [rax + 8]
call fcn.1400e6ce0
mov rcx, qword [rsp + 0x30]
mov edx, 0xffffffff
add rcx, 0xfffffffffffffff0
lock xadd dword [rcx + 8], edx
cmp edx, 1
jne 0x14007d5eb
call fcn.1400602c0
mov r11, qword [rsp + 0x38]
mov rax, qword [rbx + 8]
mov rcx, r11
mov r10d, dword [rsp + 0x50]
mov r8d, dword [rsp + 0x48]
shr rcx, 1
mov qword [rsp + 0x30], rbx
lea rbx, [rax + rcx*2]
mov eax, 0xaaaaaaab
mov ecx, r10d
mul edi
shr edx, 1
lea eax, [rdx + rdx*2]
sub edi, eax
test r8d, r8d
je 0x14007d62e
mov word [rbx], 0x2d
add rbx, 2
test r10d, r10d
je 0x14007d684
nop dword [rax]
nop word [rax + rax]
movsx eax, byte [r14]
dec ecx
mov word [rbx], ax
inc r14
mov eax, edi
add rbx, 2
dec edi
test eax, eax
jne 0x14007d67c
test ecx, ecx
je 0x14007d684
movzx eax, word [0x140155f38]
dec ecx
mov word [rbx], ax
mov edi, 1
movsx eax, byte [r14]
mov word [rbx + 2], ax
add rbx, 4
inc r14
nop dword [rax]
test ecx, ecx
jne 0x14007d640
test r8d, r8d
je 0x14007d68d
add r11, 2
sub r15d, r10d
mov r8, rbx
mov edx, r15d
mov rcx, rsi
mov edi, r15d
call fcn.140062120
mov r8, qword [rsp + 0x40]
lea ecx, [r10 + r13]
add rcx, rdi
mov r14d, r12d
add r14, r14
lea rbx, [rbx + r15*2]
lea r15, [0x140000000]
lea rsi, [r11 + rcx*2]
mov rcx, qword [r15 + r14*8 + 0x156f00]
lea rax, [rsi + 2]
add rax, rcx
cmp r8, rax
jae 0x14007d75d
mov rdx, qword [0x140159180]
lea rbx, [rcx + 2]
lea rax, [r8 + r8]
add rbx, rsi
cmp rax, rbx
cmovae rbx, rax
mov qword [rsp + 0x40], rbx
lea rcx, [rbx + 0x12]
call fcn.1400601a0
mov rdi, rax
mov r8, rsi
mov qword [rax], rbx
lea rcx, [rax + 0x10]
mov qword [rax + 8], rcx
xor eax, eax
mov word [rcx + rbx], ax
mov rbx, qword [rsp + 0x30]
mov rcx, qword [rdi + 8]
mov rdx, qword [rbx + 8]
call fcn.1400e6ce0
lea rcx, ds:[rbx - 0x10]
mov edx, 0xffffffff
lock xadd dword [rcx + 8], edx
cmp edx, 1
jne 0x14007d74a
call fcn.1400602c0
mov rax, qword [rdi + 8]
mov rcx, rsi
shr rcx, 1
mov qword [rsp + 0x30], rdi
lea rbx, [rax + rcx*2]
mov word [rbx], 0x20
lea rcx, [rbx + 2]
mov r8, qword [r15 + r14*8 + 0x156f00]
mov rdx, qword [r15 + r14*8 + 0x156f08]
call fcn.1400e6ce0
mov rcx, qword [r15 + r14*8 + 0x156f00]
mov r14, qword [rsp + 0x58]
lea rax, [rcx + 2]
shr rax, 1
lea r15, [rcx + 2]
add r15, rsi
lea rbx, [rbx + rax*2]
mov qword [rsp + 0x38], r15
mov rdi, r15
sub rdi, qword [rbp - 0x80]
test dword [r14], 0xc0000000
je 0x14007d8ca
movzx esi, word ds:[r14 + 6]
add rsi, rsi
cmp rdi, rsi
jae 0x14007d8ca
mov r12, qword [rsp + 0x40]
sub rsi, rdi
lea r13, [rsi + r15]
cmp r12, r13
jae 0x14007d855
mov rdx, qword [0x140159180]
lea rax, [r12 + r12]
cmp rax, r13
mov r12, r13
cmovae r12, rax
mov qword [rsp + 0x40], r12
lea rcx, [r12 + 0x12]
call fcn.1400601a0
mov rbx, rax
mov r8, r15
mov qword [rax], r12
lea rcx, [rax + 0x10]
mov qword [rax + 8], rcx
xor eax, eax
mov word [r12 + rcx], ax
mov r12, qword [rsp + 0x30]
mov rcx, qword [rbx + 8]
mov rdx, qword [r12 + 8]
call fcn.1400e6ce0
lea rcx, [r12 - 0x10]
mov edx, 0xffffffff
lock xadd dword [rcx + 8], edx
cmp edx, 1
jne 0x14007d845
nop dword [rax]
call fcn.1400602c0
mov rax, qword [rbx + 8]
shr r15, 1
mov qword [rsp + 0x30], rbx
lea rbx, [rax + r15*2]
mov eax, dword [r14]
test al, al
jns 0x14007d863
movzx r12d, word [r14 + 8]
jmp 0x14007d869
mov r12d, 0x20
shr rsi, 1
test eax, eax
jns 0x14007d888
test rsi, rsi
je 0x14007d882
movzx eax, r12w
mov rdi, rbx
mov rcx, rsi
rep stosw word [rdi], ax
lea r14, [rsi + rsi]
jmp 0x14007d8bf
lfence
mov rax, rdi
lea r14, [rsi + rsi]
shr rax, 1
mov r15, rbx
add rax, rax
mov r8, rdi
sub r15, rax
mov rdx, r15
lea rcx, [r15 + r14]
call fcn.1400e6ce0
test rsi, rsi
je 0x14007d8bf
movzx eax, r12w
mov rdi, r15
mov rcx, rsi
rep stosw word [rdi], ax
add rbx, r14
mov qword [rsp + 0x38], r13
mov r15, r13
mov esi, dword [rsp + 0x6c]
lea r8, [0x140000000]
mov rdi, qword [rsp + 0x40]
mov edx, 1
mov r12, qword [rbp - 0x78]
mov r9d, 0xa2
mov r10d, 2
test esi, esi
jne 0x14007c230
mov rax, qword [rsp + 0x30]
mov rcx, qword [rax + 8]
mov qword [rax], r15
shr r15, 1
xor edx, edx
mov word [rcx + r15*2], dx
mov rcx, qword [rbp + 0x3a0]
xor rcx, rsp
call fcn.1400c6a20
lea r11, [rsp + 0x4d0]
mov rbx, qword [r11 + 0x48]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret