Function at 0x140004800
Capabilities:
Get geographical location

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], r8
mov dword [rax + 0x10], edx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x6d8]
sub rsp, 0x798
mov rdx, qword [0x1400a7878]
mov rbx, rcx
movaps xmmword [rax - 0x58], xmm6
mov edi, 7
movaps xmmword [rax - 0x68], xmm7
lea ecx, [rdi + 0x29]
call fcn.1400123e0
xor r9d, r9d
mov qword [rsp + 0x50], rax
mov r8, rax
mov qword [rsp + 0x58], r9
mov r13d, 0x1e
mov r15d, r9d
mov qword [rax], r13
add rax, 0x10
mov qword [rsp + 0x60], r13
mov qword [r8 + 8], rax
mov word [rax + 0x1e], r9w
test byte [0x1400a4c88], 1
mov rsi, qword [r8 + 8]
jne 0x14000499a
lock bts qword [0x1400a4c88], 0x1f
jb 0x14000497b
lea r9d, [rdi - 3]
mov ecx, 0x400
lea r8, [rsp + 0x78]
lea edx, [rdi + 7]
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
test eax, eax
je 0x1400048c6
mov rax, qword [rsp + 0x78]
test ax, ax
je 0x1400048c6
cmp word [rsp + 0x7a], r15w
jne 0x1400048c6
mov word [0x1400a4c98], ax
mov r9d, 4
lea r8, [rsp + 0x78]
mov ecx, 0x400
lea edx, [r9 + 0xb]
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
test eax, eax
je 0x1400048fd
mov rax, qword [rsp + 0x78]
test ax, ax
je 0x1400048fd
cmp word [rsp + 0x7a], r15w
jne 0x1400048fd
mov word [0x1400a4d10], ax
cmp word [0x1400a4c98], 0x2e
je 0x14000491c
lea rdx, [0x140090682]
xor ecx, ecx
call fcn.140056ae8
mov qword [0x1400a6b38], rax
lock bts qword [0x1400a4c88], 0
jb 0x140004997
mov rdi, qword [0x1400a4c90]
test rdi, rdi
je 0x14000493f
xor edx, edx
mov rcx, rdi
call qword [sym.imp.ntdll.dll_NtSetEvent]
mov rax, 0xfffffffffffffffe
lock xadd qword [0x1400a4c88], rax
shr rax, 1
and eax, 0x7fff
cmp rax, 1
jne 0x140004992
test rdi, rdi
je 0x140004992
mov rcx, rdi
call qword [sym.imp.ntdll.dll_NtClose]
xor r9d, r9d
mov qword [0x1400a4c90], r9
lea edi, [r9 + 7]
jmp 0x14000499a
test byte [0x1400a4c88], 1
jne 0x14000499a
lea rcx, [0x1400a4c88]
call fcn.140014930
jmp 0x140004997
mov edi, 7
xor r9d, r9d
movsd xmm6, qword [0x140094390]
lea r8, [0x140000000]
movsd xmm7, qword [0x140094378]
mov edx, 1
mov r10d, 0xa2
jmp 0x1400049c3
xor r9d, r9d
mov r14, rbx
mov qword [rsp + 0x68], rbx
dec edi
mov qword [rbp - 0x58], r15
add rbx, 0x20
mov dword [rbp - 0x78], edi
mov qword [rbp + 0x6e0], rbx
mov r12d, r9d
mov r11d, dword [r14]
mov eax, r11d
and eax, 0x3f
cmp eax, 0xc
ja case.default.0x140004a01
cdqe
mov ecx, dword [r8 + rax*4 + 0x5dc8]
add rcx, r8
jmp rcx
lea rbx, [r15 + 2]
cmp r13, rbx
jae 0x140004a85
mov rdx, qword [0x1400a7878]
lea rax, [r13*2]
cmp rax, rbx
mov r13, rbx
cmovae r13, rax
mov qword [rsp + 0x60], r13
lea rcx, [r13 + 0x12]
call fcn.1400123e0
mov rsi, qword [rsp + 0x50]
mov rdi, rax
mov r8, r15
lea rcx, [rax + 0x10]
mov qword [rax], r13
mov qword [rax + 8], rcx
xor eax, eax
mov word [rcx + r13], ax
mov rdx, qword [rsi + 8]
mov rcx, qword [rdi + 8]
call fcn.14007eb90
lea rcx, [rsi - 0x10]
mov edx, 0xffffffff
lock xadd dword [rcx + 8], edx
cmp edx, 1
jne 0x140004a75
call fcn.140012750
mov rax, qword [rdi + 8]
shr r15, 1
mov qword [rsp + 0x50], rdi
lea rsi, [rax + r15*2]
movzx eax, word [r14 + 0x10]
mov r15, rbx
mov word [rsi], ax
add rsi, 2
mov qword [rsp + 0x58], rbx
jmp case.default.0x140004a01
mov rcx, qword [r14 + 0x10]
add rcx, r15
cmp r13, rcx
jae 0x140004b25
mov rdx, qword [0x1400a7878]
lea rax, [r13*2]
cmp rax, rcx
mov rbx, rcx
cmovae rbx, rax
mov qword [rsp + 0x60], rbx
lea rcx, [rbx + 0x12]
call fcn.1400123e0
mov rdi, rax
mov r8, r15
lea rcx, [rax + 0x10]
mov qword [rax], rbx
mov qword [rax + 8], rcx
xor eax, eax
mov word [rcx + rbx], ax
mov rbx, qword [rsp + 0x50]
mov rcx, qword [rdi + 8]
mov rdx, qword [rbx + 8]
call fcn.14007eb90
lea rcx, [rbx - 0x10]
mov edx, 0xffffffff
lock xadd dword [rcx + 8], edx
cmp edx, 1
jne 0x140004b12
call fcn.140012750
mov rax, qword [rdi + 8]
mov rcx, r15
shr rcx, 1
mov qword [rsp + 0x50], rdi
lea rsi, [rax + rcx*2]
mov r8, qword [r14 + 0x10]
mov rcx, rsi
mov rdx, qword [r14 + 0x18]
call fcn.14007eb90
mov rax, qword [r14 + 0x10]
shr rax, 1
add r15, qword [r14 + 0x10]
jmp 0x140005c3a
cmp byte [0x1400a6b20], 1
mov rdi, qword [r14 + 0x10]
jb 0x140004bcb
mov rdx, rdi
mov ecx, edi
and rdx, 0xfffffffffffffff1
xorps xmm1, xmm1
and ecx, 0xf
je 0x140004b8a
xorps xmm0, xmm0
pcmpeqw xmm0, xmmword [rdx]
pmovmskb eax, xmm0
sar eax, cl
bsf ecx, eax
mov dword [rbp + 0x6f8], ecx
je 0x140004b86
mov edx, ecx
shr rdx, 1
jmp 0x140004bdc
add rdx, 0x10
xorps xmm0, xmm0
pcmpeqw xmm0, xmmword [rdx]
pmovmskb eax, xmm0
bsf ecx, eax
mov dword [rbp + 0x6f8], ecx
jne 0x140004bbb
add rdx, 0x10
movdqa xmm0, xmm1
pcmpeqw xmm0, xmmword [rdx]
pmovmskb eax, xmm0
bsf ecx, eax
mov dword [rbp + 0x6f8], ecx
je 0x140004ba0
sub rdx, rdi
mov eax, ecx
sar rdx, 1
shr rax, 1
add rdx, rax
jmp 0x140004bdc
mov rdx, 0xffffffffffffffff
inc rdx
cmp word [rdi + rdx*2], 0
jne 0x140004bd2
lea rdi, [rdx + rdx]
lea r14, [rdi + r15]
cmp r13, r14
jae 0x140004c65
mov rdx, qword [0x1400a7878]
lea rax, [r13*2]
cmp rax, r14
mov rsi, r14
cmovae rsi, rax
mov qword [rsp + 0x60], rsi
lea rcx, [rsi + 0x12]
call fcn.1400123e0
mov rbx, rax
mov r8, r15
lea rcx, [rax + 0x10]
mov qword [rax], rsi
mov qword [rax + 8], rcx
xor eax, eax
mov word [rcx + rsi], ax
mov rsi, qword [rsp + 0x50]
mov rcx, qword [rbx + 8]
mov rdx, qword [rsi + 8]
call fcn.14007eb90
lea rcx, [rsi - 0x10]
mov edx, 0xffffffff
lock xadd dword [rcx + 8], edx
cmp edx, 1
jne 0x140004c55
call fcn.140012750
mov rax, qword [rbx + 8]
shr r15, 1
mov qword [rsp + 0x50], rbx
lea rsi, [rax + r15*2]
mov r13, qword [rsp + 0x68]
mov r8, rdi
mov rcx, rsi
mov rdx, qword [r13 + 0x10]
call fcn.14007eb90
shr rdi, 1
mov r15, r14
mov qword [rsp + 0x58], r14
mov r14, r13
lea rsi, [rsi + rdi*2]
jmp case.default.0x140004a01
cmp r11d, 3
jne 0x140004ca0
mov rbx, qword [r14 + 0x18]
mov rdi, qword [r14 + 0x10]
jmp 0x140004cb9
mov rbx, qword [r14 + 0x10]
mov rdi, 0xffffffffffffffff
nop dword [rax + rax]
inc rdi
cmp byte [rbx + rdi], 0
jne 0x140004cb0
mov r8d, edi
lea rcx, [rbp + 0x6f0]
mov rdx, rbx
call qword [sym.imp.ntdll.dll_RtlMultiByteToUnicodeSize]
test eax, eax
js case.default.0x140004a01
mov edx, dword [rbp + 0x6f0]
lea rcx, [r15 + rdx]
cmp r13, rcx
jae 0x140004d6c
mov rdx, qword [0x1400a7878]
lea rax, [r13*2]
cmp rax, rcx
mov r12, rcx
cmovae r12, rax
mov qword [rsp + 0x60], r12
lea rcx, [r12 + 0x12]
call fcn.1400123e0
mov rsi, rax
mov r8, r15
lea rcx, [rax + 0x10]
mov qword [rax], r12
mov qword [rax + 8], rcx
xor eax, eax
mov word [rcx + r12], ax
mov r12, qword [rsp + 0x50]
mov rcx, qword [rsi + 8]
mov rdx, qword [r12 + 8]
call fcn.14007eb90
lea rcx, [r12 - 0x10]
mov edx, 0xffffffff
lock xadd dword [rcx + 8], edx
cmp edx, 1
jne 0x140004d53
call fcn.140012750
mov rax, qword [rsi + 8]
mov rcx, r15
mov edx, dword [rbp + 0x6f0]
shr rcx, 1
mov qword [rsp + 0x50], rsi
lea rsi, [rax + rcx*2]
mov r9, rbx
mov dword [rsp + 0x20], edi
xor r8d, r8d
mov rcx, rsi
call qword [sym.imp.ntdll.dll_RtlMultiByteToUnicodeN]
test eax, eax
js case.default.0x140004a01
mov ecx, dword [rbp + 0x6f0]
mov eax, ecx
shr rax, 1
add r15, rcx
jmp 0x140005c3a
mov eax, dword [r14 + 0x10]
mov r12d, eax
mov r8d, eax
shr r12d, 0x1f
neg r8d
test eax, eax
cmovns r8d, eax
jmp 0x140004db7
mov r8d, dword [r14 + 0x10]
mov r10d, 0xa
bt r11d, 8
jae 0x140004dd4
movzx eax, byte [r14 + 0xa]
cmp al, 2
jb 0x140004dd4
cmp al, 0x45
ja 0x140004dd4
mov r10d, eax
bt r11d, 0x1d
lea r9, str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_________._:_________
lea rax, str.0123456789abcdefghijklmnopqrstuvwxyz_________._:_________
cmovae r9, rax
lea rbx, [rbp + 0x3ae]
xor r13d, r13d
mov r14d, r13d
test r8d, r8d
je 0x140004e80
bt r11d, 0x10
jae 0x140004e60
mov edi, r13d
nop dword [rax + rax]
xor edx, edx
mov eax, r8d
div r10d
inc r14d
inc edi
mov r8d, eax
movsx ecx, byte [rdx + r9]
mov word [rbx], cx
sub rbx, 2
cmp edi, 3
jne 0x140004e48
test eax, eax
je 0x140004e4c
movzx eax, word [0x1400a4d10]
mov word [rbx], ax
sub rbx, 2
inc r14d
jmp 0x140004e08
test eax, eax
jne 0x140004e10
mov edx, 1
test r12d, r12d
je 0x140004e98
mov ecx, edx
jmp 0x140004ea3
xor edx, edx
mov eax, r8d
div r10d
inc r14d
mov r8d, eax
movsx ecx, byte [rdx + r9]
mov word [rbx], cx
sub rbx, 2
test eax, eax
jne 0x140004e60
jmp 0x140004e4c
mov eax, 0x30
lea rbx, [rbp + 0x3ac]
mov word [rbp + 0x3ae], ax
mov r14d, edx
jmp 0x140004e51
bt r11d, 0x11
mov ecx, r13d
cmovb ecx, edx
mov r13, qword [rsp + 0x68]
mov eax, r11d
and eax, 0x50000
cmp eax, 0x40000
jne 0x140004ed4
movzx edx, word [r13 + 6]
lea eax, [rcx + r14]
cmp eax, edx
jae 0x140004ed4
mov eax, edx
or r12d, 4
sub eax, ecx
sub eax, r14d
mov dword [rbp - 0x80], eax
add ecx, eax
lea eax, [rcx + r14]
lea r15, [r15 + rax*2]
mov rax, qword [rsp + 0x60]
cmp rax, r15
jae 0x140004f6b
mov rdx, qword [0x1400a7878]
add rax, rax
cmp rax, r15
mov rsi, r15
cmovae rsi, rax
mov qword [rsp + 0x60], rsi
lea rcx, [rsi + 0x12]
call fcn.1400123e0
mov rdx, qword [rsp + 0x50]
mov rdi, rax
lea rcx, [rax + 0x10]
mov qword [rax], rsi
mov qword [rax + 8], rcx
xor eax, eax
mov word [rcx + rsi], ax
mov rsi, qword [rsp + 0x58]
mov rdx, qword [rdx + 8]
mov r8, rsi
mov rcx, qword [rdi + 8]
call fcn.14007eb90
mov rcx, qword [rsp + 0x50]
mov edx, 0xffffffff
add rcx, 0xfffffffffffffff0
lock xadd dword [rcx + 8], edx
cmp edx, 1
jne 0x140004f57
call fcn.140012750
mov rax, qword [rdi + 8]
mov r11d, dword [r13]
shr rsi, 1
mov qword [rsp + 0x50], rdi
lea rsi, [rax + rsi*2]
test r12b, 1
je 0x140004f78
mov word [rsi], 0x2d
jmp 0x140004f84
bt r11d, 0x11
jae 0x140004f88
mov word [rsi], 0x2b
add rsi, 2
test r12b, 4
je 0x140004fa8
mov edx, dword [rbp - 0x80]
test rdx, rdx
je 0x140004fa4
mov eax, 0x30
mov rdi, rsi
mov rcx, rdx
rep stosw word [rdi], ax
lea rsi, [rsi + rdx*2]
mov edi, r14d
lea rdx, [rbx + 2]
add rdi, rdi
mov rcx, rsi
mov r8, rdi
call fcn.14007eb90
mov r14, qword [rsp + 0x68]
add rsi, rdi
jmp 0x140005c3e
mov ecx, 0x10
mov rax, r14
mov rax, qword [rax + rcx]
mov r12, rax
mov r8, rax
shr r12, 0x3f
neg r8
cmovs r8, rax
jmp 0x140004fed
mov r8, qword [r14 + 0x10]
mov ecx, 0xa
bt r11d, 8
jae 0x140005008
movzx eax, byte [r14 + 0xa]
cmp al, 2
jb 0x140005008
cmp al, 0x45
ja 0x140005008
mov ecx, eax
bt r11d, 0x1d
lea r9, str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_________._:_________
lea rax, str.0123456789abcdefghijklmnopqrstuvwxyz_________._:_________
cmovae r9, rax
lea rbx, [rbp + 0x3ae]
xor r13d, r13d
mov r14d, r13d
test r8, r8
je 0x1400050b5
bt r11d, 0x10
jae 0x140005090
mov r10d, ecx
mov edi, r13d
xor edx, edx
mov rax, r8
div r10
inc r14d
inc edi
mov r8, rax
mov eax, edx
movsx ecx, byte [rax + r9]
mov word [rbx], cx
sub rbx, 2
cmp edi, 3
jne 0x14000507d
test r8, r8
je 0x140005082
movzx eax, word [0x1400a4d10]
mov word [rbx], ax
sub rbx, 2
inc r14d
jmp 0x14000503f
test r8, r8
jne 0x140005042
mov edx, 1
test r12d, r12d
je 0x1400050cd
mov ecx, edx
jmp 0x1400050d8
mov edi, ecx
xor edx, edx
mov rax, r8
div rdi
inc r14d
mov r8, rax
mov eax, edx
movsx ecx, byte [rax + r9]
mov word [rbx], cx
sub rbx, 2
test r8, r8
jne 0x140005092
jmp 0x140005082
mov eax, 0x30
lea rbx, [rbp + 0x3ac]
mov word [rbp + 0x3ae], ax
mov r14d, edx
jmp 0x140005087
bt r11d, 0x11
mov ecx, r13d
cmovb ecx, edx
mov r13, qword [rsp + 0x68]
mov eax, r11d
and eax, 0x50000
cmp eax, 0x40000
jne 0x140005109
movzx edx, word [r13 + 6]
lea eax, [rcx + r14]
cmp eax, edx
jae 0x140005109
mov eax, edx
or r12d, 4
sub eax, ecx
sub eax, r14d
mov dword [rbp - 0x7c], eax
add ecx, eax
lea eax, [rcx + r14]
lea r15, [r15 + rax*2]
mov rax, qword [rsp + 0x60]
cmp rax, r15
jae 0x1400051a0
mov rdx, qword [0x1400a7878]
add rax, rax
cmp rax, r15
mov rsi, r15
cmovae rsi, rax
mov qword [rsp + 0x60], rsi
lea rcx, [rsi + 0x12]
call fcn.1400123e0
mov rdi, rax
lea rcx, [rax + 0x10]
mov qword [rax], rsi
mov qword [rax + 8], rcx
xor eax, eax
mov word [rcx + rsi], ax
mov rax, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x58]
mov rcx, qword [rdi + 8]
mov r8, rsi
mov rdx, qword [rax + 8]
call fcn.14007eb90
mov rcx, qword [rsp + 0x50]
mov edx, 0xffffffff
add rcx, 0xfffffffffffffff0
lock xadd dword [rcx + 8], edx
cmp edx, 1
jne 0x14000518c
call fcn.140012750
mov rax, qword [rdi + 8]
mov r11d, dword [r13]
shr rsi, 1
mov qword [rsp + 0x50], rdi
lea rsi, [rax + rsi*2]
test r12b, 1
je 0x1400051ad
mov word [rsi], 0x2d
jmp 0x1400051b9
bt r11d, 0x11
jae 0x1400051bd
mov word [rsi], 0x2b
add rsi, 2
test r12b, 4
je 0x140004fa8
mov edx, dword [rbp - 0x7c]
jmp 0x140004f91
test r11b, 0x40
je 0x1400051e4
movzx edx, word [r14 + 4]
cmp edx, r10d
jbe 0x1400051e9
mov edx, r10d
jmp 0x1400051e9
mov edx, 6
bt r11d, 0xc
jae 0x1400051f7
mov eax, 0x65
jmp 0x140005209
bt r11d, 0xd
mov eax, 0x66
mov ecx, 0x61
cmovb eax, ecx
movsd xmm0, qword [r14 + 0x10]
lea ecx, [rax - 0x20]
bt r11d, 0x1d
movsd qword [rbp - 0x70], xmm0
mov r8d, 0x3ff
lea rbx, [rbp - 0x4f]
cmovae ecx, eax
mov rax, qword [0x1400a6b38]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], r9
lea r9, [rbp + 0x3b0]
mov dword [rsp + 0x30], edx
lea rdx, [rbp - 0x4f]
mov dword [rsp + 0x28], ecx
lea rcx, [rbp - 0x70]
mov qword [rsp + 0x20], 0x15e
call fcn.140058e38
mov r9d, dword [r14]
movzx edx, byte [rbp - 0x4f]
bt r9d, 0xf
jae 0x1400052f5
movzx r8d, byte [0x1400a4c98]
lea rcx, [rbp - 0x4f]
test dl, dl
je 0x140005294
movzx eax, dl
cmp al, r8b
je 0x140005294
movzx eax, byte [rcx + 1]
inc rcx
test al, al
jne 0x140005284
movzx eax, byte [rcx]
inc rcx
test al, al
je 0x1400052f5
movzx eax, byte [rcx]
test al, al
je 0x1400052b6
sub al, 0x45
test al, 0xdf
je 0x1400052b6
movzx eax, byte [rcx + 1]
inc rcx
test al, al
jne 0x1400052a5
movzx eax, byte [rcx - 1]
mov rdi, rcx
dec rcx
cmp al, 0x30
jne 0x1400052cf
movzx eax, byte [rcx - 1]
dec rcx
cmp al, 0x30
je 0x1400052c4
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 0x1400052e0
movzx edx, byte [rbp - 0x4f]
lea rax, [rbp - 0x4f]
mov r15, 0xffffffffffffffff
inc r15
cmp byte [rax + r15], 0
jne 0x140005300
cmp dl, 0x2d
jne 0x140005320
dec r15d
lea rbx, [rbp - 0x4e]
xor ecx, ecx
mov r8d, 1
jmp 0x140005336
mov ecx, 0
bt r9d, 0x11
mov r8d, ecx
mov eax, 2
cmovb r8d, eax
mov eax, r9d
mov dword [rbp + 0x6e8], r8d
and eax, 0x13000
cmp eax, 0x10000
jne 0x14000556c
movzx eax, byte [rbx]
mov rdi, rbx
sub al, 0x30
mov qword [rsp + 0x70], rbx
cmp al, 0xa
jae 0x14000536e
movzx eax, byte [rdi + 1]
inc rdi
sub al, 0x30
cmp al, 0xa
jb 0x140005361
mov r13d, edi
sub r13d, ebx
lea r14d, [r13 + 2]
je 0x14000538d
mov eax, 0xaaaaaaab
mul r14d
mov r12d, edx
shr r12d, 1
dec r12d
jmp 0x140005390
mov r12d, ecx
mov r9, qword [rsp + 0x58]
lea ecx, [r12 + r15]
add ecx, ecx
test r8d, r8d
lea eax, [rcx + 2]
cmove eax, ecx
mov ecx, eax
mov rax, qword [rsp + 0x60]
add rcx, r9
cmp rax, rcx
jae 0x140005445
add rax, rax
mov rdx, rcx
cmp rax, rcx
cmovae rdx, rax
mov qword [rsp + 0x60], rdx
lea rcx, [rdx + 0x12]
mov rdx, qword [0x1400a7878]
call fcn.1400123e0
mov r8, qword [rsp + 0x58]
mov rsi, rax
mov rax, qword [rsp + 0x60]
lea rcx, [rsi + 0x10]
xor edx, edx
mov qword [rsi + 8], rcx
mov qword [rsi], rax
mov word [rcx + rax], dx
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsi + 8]
mov rdx, qword [rax + 8]
call fcn.14007eb90
mov rcx, qword [rsp + 0x50]
mov edx, 0xffffffff
add rcx, 0xfffffffffffffff0
lock xadd dword [rcx + 8], edx
cmp edx, 1
jne 0x140005426
call fcn.140012750
mov r9, qword [rsp + 0x58]
mov rax, qword [rsi + 8]
mov rcx, r9
mov r8d, dword [rbp + 0x6e8]
shr rcx, 1
mov qword [rsp + 0x50], rsi
lea rsi, [rax + rcx*2]
mov eax, 0xaaaaaaab
mov ecx, r13d
mul r14d
shr edx, 1
lea eax, [rdx + rdx*2]
sub r14d, eax
test r8b, 1
je 0x140005465
mov word [rsi], 0x2d
jmp 0x140005470
test r8b, 2
je 0x140005474
mov word [rsi], 0x2b
add rsi, 2
test r13d, r13d
je 0x1400054c1
nop dword [rax]
movsx eax, byte [rbx]
dec ecx
mov word [rsi], ax
inc rbx
mov eax, r14d
add rsi, 2
dec r14d
test eax, eax
jne 0x1400054bd
test ecx, ecx
je 0x1400054c1
movzx eax, word [0x1400a4d10]
dec ecx
mov word [rsi], ax
mov r14d, 1
movsx eax, byte [rbx]
mov word [rsi + 2], ax
add rsi, 4
inc rbx
test ecx, ecx
jne 0x140005480
test r8d, r8d
je 0x1400054ca
add r9, 2
sub r15d, r13d
lea eax, [r12 + r13]
mov edx, r15d
lea r9, [r9 + rax*2]
mov qword [rsp + 0x58], r9
mov rcx, rsi
mov r8d, r15d
and rdx, 0xfffffffffffffffc
je 0x14000551c
nop dword [rax]
movzx eax, byte [rdi]
mov word [rcx], ax
movzx eax, byte [rdi + 1]
mov word [rcx + 2], ax
movzx eax, byte [rdi + 2]
mov word [rcx + 4], ax
movzx eax, byte [rdi + 3]
add rdi, 4
mov word [rcx + 6], ax
add rcx, 8
sub rdx, 4
jne 0x1400054f0
mov rax, r8
and eax, 3
sub rax, 1
je 0x14000554e
sub rax, 1
je 0x140005541
cmp rax, 1
jne 0x140005554
movzx eax, byte [rdi]
mov word [rcx], ax
add rcx, 2
inc rdi
movzx eax, byte [rdi]
mov word [rcx], ax
add rcx, 2
inc rdi
movzx eax, byte [rdi]
mov word [rcx], ax
mov r14, qword [rsp + 0x68]
lea rsi, [rsi + r15*2]
lea rax, [r15 + r15]
mov r15, r9
add r15, rax
jmp 0x140005c3e
test r8d, r8d
setne cl
mov r14, rcx
bt r9d, 0x12
jae 0x1400055b2
mov r13, qword [rsp + 0x68]
mov edx, r15d
movzx edi, word [r13 + 6]
mov r13, qword [rsp + 0x60]
lea rax, [rdx + rcx]
cmp rax, rdi
jae 0x1400055b2
or r8d, 4
mov r14d, edi
sub r14, rdx
mov dword [rbp + 0x6e8], r8d
mov rax, r14
sub rax, rcx
mov qword [rbp - 0x68], rax
mov r12, qword [rsp + 0x58]
mov r15d, r15d
lea rax, [r15 + r14]
lea rcx, [r12 + rax*2]
cmp r13, rcx
jae 0x14000564d
mov rdx, qword [0x1400a7878]
lea rax, [r13*2]
cmp rax, rcx
mov rsi, rcx
cmovae rsi, rax
mov qword [rsp + 0x60], rsi
lea rcx, [rsi + 0x12]
call fcn.1400123e0
mov rdi, rax
mov r8, r12
lea rcx, [rax + 0x10]
mov qword [rax], rsi
mov qword [rax + 8], rcx
xor eax, eax
mov word [rcx + rsi], ax
mov rsi, qword [rsp + 0x50]
mov rcx, qword [rdi + 8]
mov rdx, qword [rsi + 8]
call fcn.14007eb90
lea rcx, [rsi - 0x10]
mov edx, 0xffffffff
lock xadd dword [rcx + 8], edx
cmp edx, 1
jne 0x140005633
call fcn.140012750
mov rax, qword [rdi + 8]
mov rcx, r12
mov r8d, dword [rbp + 0x6e8]
shr rcx, 1
mov qword [rsp + 0x50], rdi
lea rsi, [rax + rcx*2]
test r8b, 1
je 0x14000565a
mov word [rsi], 0x2d
jmp 0x140005665
test r8b, 2
je 0x140005669
mov word [rsi], 0x2b
add rsi, 2
test r8b, 4
je 0x14000568a
mov rdx, qword [rbp - 0x68]
test rdx, rdx
je 0x140005686
mov eax, 0x30
mov rdi, rsi
mov rcx, rdx
rep stosw word [rdi], ax
lea rsi, [rsi + rdx*2]
mov rdx, r15
lea r12, [r12 + r14*2]
mov qword [rsp + 0x58], r12
mov rcx, rsi
and rdx, 0xfffffffffffffffc
je 0x1400056cc
nop
movzx eax, byte [rbx]
mov word [rcx], ax
movzx eax, byte [rbx + 1]
mov word [rcx + 2], ax
movzx eax, byte [rbx + 2]
mov word [rcx + 4], ax
movzx eax, byte [rbx + 3]
add rbx, 4
mov word [rcx + 6], ax
add rcx, 8
sub rdx, 4
jne 0x1400056a0
mov rax, r15
and eax, 3
sub rax, 1
je 0x1400056fe
sub rax, 1
je 0x1400056f1
cmp rax, 1
jne 0x140005704
movzx eax, byte [rbx]
mov word [rcx], ax
add rcx, 2
inc rbx
movzx eax, byte [rbx]
mov word [rcx], ax
add rcx, 2
inc rbx
movzx eax, byte [rbx]
mov word [rcx], ax
mov r14, qword [rsp + 0x68]
lea rsi, [rsi + r15*2]
lea rax, [r15 + r15]
mov r15, r12
add r15, rax
jmp 0x140005c3e
mov rdx, qword [r14 + 0x10]
xorps xmm0, xmm0
test rdx, rdx
js 0x14000572f
cvtsi2sd xmm0, rdx
jmp 0x140005747
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 0x1400057e7
lea rbx, [r15 + 2]
cmp r13, rbx
jae 0x1400057d1
mov rdx, qword [0x1400a7878]
lea rax, [r13*2]
cmp rax, rbx
mov rsi, rbx
cmovae rsi, rax
mov qword [rsp + 0x60], rsi
lea rcx, [rsi + 0x12]
call fcn.1400123e0
mov rdi, rax
mov r8, r15
lea rcx, [rax + 0x10]
mov qword [rax], rsi
mov qword [rax + 8], rcx
xor eax, eax
mov word [rcx + rsi], ax
mov rsi, qword [rsp + 0x50]
mov rcx, qword [rdi + 8]
mov rdx, qword [rsi + 8]
call fcn.14007eb90
lea rcx, [rsi - 0x10]
mov edx, 0xffffffff
lock xadd dword [rcx + 8], edx
cmp edx, 1
jne 0x1400057c1
call fcn.140012750
mov rax, qword [rdi + 8]
shr r15, 1
mov qword [rsp + 0x50], rdi
lea rsi, [rax + r15*2]
mov word [rsi], 0x30
mov r15, rbx
add rsi, 2
mov qword [rsp + 0x58], rbx
jmp case.default.0x140004a01
bt r11d, 8
jae 0x1400057f5
movzx eax, byte [r14 + 0xa]
jmp 0x1400057fa
mov eax, 0xffffffff
comisd xmm0, xmm6
jb 0x140005818
cmp r12d, 7
jae 0x140005818
cmp r12d, eax
jae 0x140005818
mulsd xmm0, xmm7
inc r12d
comisd xmm0, xmm6
jae 0x140005800
test r11b, 0x40
je 0x140005825
movzx eax, word [r14 + 4]
jmp 0x14000582a
mov eax, 2
movzx ecx, ax
lea rdx, [rbp - 0x4f]
mov rax, qword [0x1400a6b38]
lea r14, [rbp - 0x4f]
mov qword [rsp + 0x40], rax
cmp ecx, r10d
mov qword [rsp + 0x38], r9
mov r8d, 0x3ff
cmova ecx, r10d
mov dword [rbp + 0x6e8], r9d
mov dword [rsp + 0x30], ecx
lea r9, [rbp + 0x510]
mov dword [rsp + 0x28], 0x66
lea rcx, [rbp - 0x60]
mov qword [rsp + 0x20], 0x15e
movsd qword [rbp - 0x60], xmm0
call fcn.140058e38
movzx edx, byte [rbp - 0x4f]
lea rcx, [rbp - 0x4f]
movzx r8d, byte [0x1400a4c98]
test dl, dl
je 0x1400058b0
movzx eax, dl
nop dword [rax + rax]
cmp al, r8b
je 0x1400058b0
movzx eax, byte [rcx + 1]
inc rcx
test al, al
jne 0x1400058a0
movzx eax, byte [rcx]
inc rcx
test al, al
je 0x140005915
movzx eax, byte [rcx]
test al, al
je 0x1400058d2
sub al, 0x45
test al, 0xdf
je 0x1400058d2
movzx eax, byte [rcx + 1]
inc rcx
test al, al
jne 0x1400058c1
movzx eax, byte [rcx - 1]
mov rdi, rcx
dec rcx
cmp al, 0x30
jne 0x1400058eb
movzx eax, byte [rcx - 1]
dec rcx
cmp al, 0x30
je 0x1400058e0
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 0x140005900
movzx edx, byte [rbp - 0x4f]
lea rax, [rbp - 0x4f]
mov r15, 0xffffffffffffffff
inc r15
cmp byte [rax + r15], 0
jne 0x140005920
cmp dl, 0x2d
jne 0x140005949
movzx edx, byte [rbp - 0x4e]
lea r14, [rbp - 0x4e]
mov r9d, 1
dec r15d
mov dword [rbp + 0x6e8], r9d
jmp 0x140005950
mov r9d, dword [rbp + 0x6e8]
sub dl, 0x30
mov qword [rsp + 0x70], r14
mov rdi, r14
cmp dl, 0xa
jae 0x14000596d
movzx eax, byte [rdi + 1]
inc rdi
sub al, 0x30
cmp al, 0xa
jb 0x140005960
mov r13d, edi
sub r13d, r14d
lea ebx, [r13 + 2]
je 0x14000598b
mov eax, 0xaaaaaaab
mul ebx
mov r8d, edx
shr r8d, 1
dec r8d
jmp 0x140005990
xor eax, eax
mov r8d, eax
mov r10, qword [rsp + 0x58]
lea ecx, [r8 + r15]
add ecx, ecx
mov dword [rsp + 0x70], r8d
test r9d, r9d
lea eax, [rcx + 2]
cmove eax, ecx
mov ecx, eax
mov rax, qword [rsp + 0x60]
add rcx, r10
cmp rax, rcx
jae 0x140005a4f
add rax, rax
mov rdx, rcx
cmp rax, rcx
cmovae rdx, rax
mov qword [rsp + 0x60], rdx
lea rcx, [rdx + 0x12]
mov rdx, qword [0x1400a7878]
call fcn.1400123e0
mov r8, qword [rsp + 0x58]
mov rsi, rax
mov rax, qword [rsp + 0x60]
lea rcx, [rsi + 0x10]
xor edx, edx
mov qword [rsi + 8], rcx
mov qword [rsi], rax
mov word [rax + rcx], dx
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsi + 8]
mov rdx, qword [rax + 8]
call fcn.14007eb90
mov rcx, qword [rsp + 0x50]
mov edx, 0xffffffff
add rcx, 0xfffffffffffffff0
lock xadd dword [rcx + 8], edx
cmp edx, 1
jne 0x140005a2b
call fcn.140012750
mov r10, qword [rsp + 0x58]
mov rax, qword [rsi + 8]
mov rcx, r10
mov r8d, dword [rsp + 0x70]
mov r9d, dword [rbp + 0x6e8]
shr rcx, 1
mov qword [rsp + 0x50], rsi
lea rsi, [rax + rcx*2]
mov eax, 0xaaaaaaab
mov ecx, r13d
mul ebx
shr edx, 1
lea eax, [rdx + rdx*2]
sub ebx, eax
test r9d, r9d
je 0x140005a6e
mov word [rsi], 0x2d
add rsi, 2
test r13d, r13d
je 0x140005ac0
nop dword [rax]
nop word [rax + rax]
movsx eax, byte [r14]
dec ecx
mov word [rsi], ax
inc r14
mov eax, ebx
add rsi, 2
dec ebx
test eax, eax
jne 0x140005abc
test ecx, ecx
je 0x140005ac0
movzx eax, word [0x1400a4d10]
dec ecx
mov word [rsi], ax
mov ebx, 1
movsx eax, byte [r14]
mov word [rsi + 2], ax
add rsi, 4
inc r14
test ecx, ecx
jne 0x140005a80
test r9d, r9d
je 0x140005ac9
add r10, 2
sub r15d, r13d
lea eax, [r8 + r13]
mov edx, r15d
lea r9, [r10 + rax*2]
mov r8d, r15d
mov rcx, rsi
and rdx, 0xfffffffffffffffc
je 0x140005b1c
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rdi]
mov word [rcx], ax
movzx eax, byte [rdi + 1]
mov word [rcx + 2], ax
movzx eax, byte [rdi + 2]
mov word [rcx + 4], ax
movzx eax, byte [rdi + 3]
add rdi, 4
mov word [rcx + 6], ax
add rcx, 8
sub rdx, 4
jne 0x140005af0
mov rax, r8
and eax, 3
sub rax, 1
je 0x140005b4e
sub rax, 1
je 0x140005b41
cmp rax, 1
jne 0x140005b54
movzx eax, byte [rdi]
mov word [rcx], ax
add rcx, 2
inc rdi
movzx eax, byte [rdi]
mov word [rcx], ax
add rcx, 2
inc rdi
movzx eax, byte [rdi]
mov word [rcx], ax
mov r14, qword [rsp + 0x60]
lea rbx, [r15 + r15]
add rbx, r9
mov edi, r12d
add rdi, rdi
lea rsi, [rsi + r15*2]
lea r15, [0x140000000]
lea rax, [rbx + 2]
mov rcx, qword [r15 + rdi*8 + 0xa4ca0]
add rax, rcx
cmp r14, rax
jae 0x140005c01
mov rdx, qword [0x1400a7878]
lea rax, [r14 + r14]
lea r14, [rcx + 2]
add r14, rbx
cmp rax, r14
cmovae r14, rax
mov qword [rsp + 0x60], r14
lea rcx, [r14 + 0x12]
call fcn.1400123e0
mov rsi, rax
mov r8, rbx
lea rcx, [rax + 0x10]
mov qword [rax], r14
mov qword [rax + 8], rcx
xor eax, eax
mov word [r14 + rcx], ax
mov r14, qword [rsp + 0x50]
mov rcx, qword [rsi + 8]
mov rdx, qword [r14 + 8]
call fcn.14007eb90
lea rcx, [r14 - 0x10]
mov edx, 0xffffffff
lock xadd dword [rcx + 8], edx
cmp edx, 1
jne 0x140005bee
call fcn.140012750
mov rax, qword [rsi + 8]
mov rcx, rbx
shr rcx, 1
mov qword [rsp + 0x50], rsi
lea rsi, [rax + rcx*2]
mov word [rsi], 0x20
lea rcx, [rsi + 2]
mov r8, qword [r15 + rdi*8 + 0xa4ca0]
mov rdx, qword [r15 + rdi*8 + 0xa4ca8]
call fcn.14007eb90
mov rcx, qword [r15 + rdi*8 + 0xa4ca0]
mov r14, qword [rsp + 0x68]
lea rax, [rcx + 2]
shr rax, 1
lea r15, [rcx + 2]
add r15, rbx
lea rsi, [rsi + rax*2]
mov qword [rsp + 0x58], r15
mov rdi, r15
sub rdi, qword [rbp - 0x58]
test dword [r14], 0xc0000000
je 0x140005d62
movzx ebx, word [r14 + 6]
add rbx, rbx
cmp rdi, rbx
jae 0x140005d62
mov rax, qword [rsp + 0x60]
sub rbx, rdi
lea r13, [rbx + r15]
cmp rax, r13
jae 0x140005cf0
mov rdx, qword [0x1400a7878]
add rax, rax
cmp rax, r13
mov r12, r13
cmovae r12, rax
mov qword [rsp + 0x60], r12
lea rcx, [r12 + 0x12]
call fcn.1400123e0
mov rsi, rax
mov r8, r15
lea rcx, [rax + 0x10]
mov qword [rax], r12
mov qword [rax + 8], rcx
xor eax, eax
mov word [r12 + rcx], ax
mov r12, qword [rsp + 0x50]
mov rcx, qword [rsi + 8]
mov rdx, qword [r12 + 8]
call fcn.14007eb90
lea rcx, [r12 - 0x10]
mov edx, 0xffffffff
lock xadd dword [rcx + 8], edx
cmp edx, 1
jne 0x140005ce0
call fcn.140012750
mov rax, qword [rsi + 8]
shr r15, 1
mov qword [rsp + 0x50], rsi
lea rsi, [rax + r15*2]
mov eax, dword [r14]
test al, al
jns 0x140005cfe
movzx r12d, word [r14 + 8]
jmp 0x140005d04
mov r12d, 0x20
shr rbx, 1
test eax, eax
jns 0x140005d23
test rbx, rbx
je 0x140005d1d
movzx eax, r12w
mov rdi, rsi
mov rcx, rbx
rep stosw word [rdi], ax
lea r14, [rbx + rbx]
jmp 0x140005d57
mov rax, rdi
lea r14, [rbx + rbx]
shr rax, 1
mov r15, rsi
add rax, rax
mov r8, rdi
sub r15, rax
mov rdx, r15
lea rcx, [r15 + r14]
call fcn.14007eb90
test rbx, rbx
je 0x140005d57
movzx eax, r12w
mov rdi, r15
mov rcx, rbx
rep stosw word [rdi], ax
add rsi, r14
mov qword [rsp + 0x58], r13
mov r15, r13
mov edi, dword [rbp - 0x78]
lea r8, [0x140000000]
mov r13, qword [rsp + 0x60]
mov edx, 1
mov rbx, qword [rbp + 0x6e0]
mov r10d, 0xa2
test edi, edi
jne 0x1400049c0
mov rax, qword [rsp + 0x50]
movaps xmm6, xmmword [rsp + 0x780]
movaps xmm7, xmmword [rsp + 0x770]
mov rcx, qword [rax + 8]
mov qword [rax], r15
shr r15, 1
xor edx, edx
mov word [rcx + r15*2], dx
add rsp, 0x798
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret