Function at 0x401640
Capabilities:
Get geographical location

Disassembly:
lea r12, [rsp - 0x28]
cmp r12, qword [r14 + 0x10]
jbe 0x401c47
sub rsp, 0xa8
mov qword [rsp + 0xa0], rbp
lea rbp, [rsp + 0xa0]
mov qword [rsp + 0xb0], rax
jmp 0x401676
mov rax, rsi
mov rbx, r8
test rbx, rbx
je 0x40189e
xor ecx, ecx
jmp 0x401a11
mov rcx, 0xffffffffffffffff
test rcx, rcx
jge 0x4016a0
xor r8d, r8d
xor esi, esi
mov rcx, rbx
jmp 0x4016cd
cmp rcx, rbx
ja 0x401c3e
lea rsi, [rcx + 1]
cmp rbx, rsi
jb 0x401c33
sub rbx, rcx
lea rdi, [rbx - 1]
mov r8, rdi
neg rdi
sar rdi, 0x3f
and rsi, rdi
add rsi, rax
cmp rcx, 4
jl 0x401670
cmp dword [rax], 0x2e757063
jne 0x401670
xor edx, edx
nop dword [rax]
jmp 0x401a2e
mov rdx, 0xffffffffffffffff
mov qword [rsp + 0x70], rsi
mov qword [rsp + 0x50], r8
test rdx, rdx
jl 0x40184a
nop
cmp rdx, rcx
ja 0x401c25
cmp rdx, 4
jb 0x401c15
lea rdi, [rdx - 4]
mov r9, rdi
neg rdi
sar rdi, 0x3f
and rdi, 4
lea rbx, [rax + rdi]
lea r10, [rdx + 1]
cmp rcx, r10
jb 0x401c0d
mov qword [rsp + 0x48], r9
mov qword [rsp + 0x60], rbx
sub rcx, rdx
lea r11, [rcx - 1]
mov qword [rsp + 0x18], r11
mov r12, r11
neg r11
sar r11, 0x3f
and r10, r11
lea r11, [rax + r10]
mov qword [rsp + 0x58], r11
cmp rcx, 3
jne 0x401777
movzx r10d, word [rax + r10]
cmp r10w, 0x6e6f
je 0x401796
jmp 0x4017dd
cmp rcx, 4
jne 0x4017dd
movzx r13d, word [rax + r10]
cmp r13w, 0x666f
jne 0x4017dd
movzx r10d, byte [rax + r10 + 2]
cmp r10b, 0x66
jne 0x4017dd
cmp rdx, 7
jne 0x4017c5
movzx r10d, word [rax + rdi]
cmp r10w, 0x6c61
jne 0x4017c5
movzx edi, byte [rax + rdi + 2]
cmp dil, 0x6c
jne 0x4017c5
mov rdi, qword [0x010fde28]
xor eax, eax
nop dword [rax]
jmp 0x401b85
mov qword [rsp + 0x40], rcx
mov rdx, qword [0x010fde28]
mov qword [rsp + 0x38], rdx
xor eax, eax
jmp 0x401a4f
nop dword [rax]
call fcn.004392e0
lea rax, [0x00ac19f1]
mov ebx, 0x10
call fcn.00439be0
mov rax, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x18]
call fcn.00439be0
lea rax, [0x00ad074e]
mov ebx, 0x20
call fcn.00439be0
mov rax, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x48]
call fcn.00439be0
lea rax, [0x00abc0c5]
mov ebx, 2
call fcn.00439be0
call fcn.00439360
mov rsi, qword [rsp + 0x70]
mov r8, qword [rsp + 0x50]
jmp 0x401670
mov qword [rsp + 0x20], rcx
mov qword [rsp + 0x68], rax
call fcn.004392e0
lea rax, [0x00ad1160]
mov ebx, 0x21
call fcn.00439be0
mov rax, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x20]
call fcn.00439be0
lea rax, [0x00abc0c5]
mov ebx, 2
call fcn.00439be0
call fcn.00439360
mov rsi, qword [rsp + 0x70]
mov r8, qword [rsp + 0x50]
jmp 0x401670
mov rax, qword [0x010fde28]
mov rcx, qword [0x010fde20]
test rax, rax
jle 0x4018ba
mov qword [rsp + 0x50], rax
xor edx, edx
jmp 0x4018ce
mov rbp, qword [rsp + 0xa0]
add rsp, 0xa8
ret
add rcx, 0x20
movups xmm0, xmmword [rcx]
movups xmmword [rsp + 0x80], xmm0
movups xmm0, xmmword [rcx + 0x10]
movups xmmword [rsp + 0x90], xmm0
cmp byte [rsp + 0x98], 0
je 0x4019fc
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x78], rcx
movzx ebx, byte [rsp + 0x99]
test bl, bl
je 0x401982
mov rsi, qword [rsp + 0x90]
cmp byte [rsi], 0
je 0x40191c
test bl, bl
jne 0x40198c
jmp 0x401982
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0x70], rax
mov rcx, qword [rsp + 0x88]
mov qword [rsp + 0x40], rcx
call fcn.004392e0
lea rax, [0x00ac98e9]
mov ebx, 0x19
call fcn.00439be0
mov rax, qword [rsp + 0x70]
mov rbx, qword [rsp + 0x40]
call fcn.00439be0
lea rax, [0x00ac806a]
mov ebx, 0x17
call fcn.00439be0
call fcn.00439360
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x78]
mov rdx, qword [rsp + 0x48]
jmp 0x4019fc
cmp byte [rsp + 0x9a], 0
jne 0x401998
mov rsi, qword [rsp + 0x90]
mov byte [rsi], bl
jmp 0x4019fc
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0x70], rax
mov rcx, qword [rsp + 0x88]
mov qword [rsp + 0x40], rcx
call fcn.004392e0
lea rax, [0x00aca990]
mov ebx, 0x1a
call fcn.00439be0
mov rax, qword [rsp + 0x70]
mov rbx, qword [rsp + 0x40]
call fcn.00439be0
lea rax, [0x00ac9024]
mov ebx, 0x18
call fcn.00439be0
call fcn.00439360
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x78]
mov rdx, qword [rsp + 0x48]
inc rdx
nop
cmp rax, rdx
jg 0x4018ca
jmp 0x4018ba
inc rcx
cmp rcx, rbx
jge 0x401686
movzx esi, byte [rax + rcx]
nop
cmp sil, 0x2c
jne 0x401a0e
jmp 0x40168d
inc rdx
cmp rdx, rcx
jge 0x4016e5
movzx edi, byte [rax + rdx]
nop dword [rax + rax]
cmp dil, 0x3d
jne 0x401a2b
jmp 0x4016ec
lea rax, [r10 + 1]
cmp rax, rdx
jge 0x401b20
mov rdi, qword [0x010fde20]
mov r10, qword [0x010fde28]
cmp rax, r10
jae 0x401b74
mov r10, rax
shl rax, 5
mov r11, qword [rdi + rax + 8]
mov rdi, qword [rdi + rax]
nop
cmp r11, r9
jne 0x401a4b
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], r10
mov rax, rdi
mov rcx, r11
call fcn.00402e20
test al, al
jne 0x401ac3
mov rcx, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x70]
mov r8, qword [rsp + 0x50]
mov r9, qword [rsp + 0x48]
mov r10, qword [rsp + 0x28]
jmp 0x401a4b
mov rcx, qword [0x010fde28]
mov rsi, qword [0x010fde20]
mov rax, qword [rsp + 0x28]
cmp rax, rcx
jae 0x401b6f
mov rdi, qword [rsp + 0x30]
mov byte [rsi + rdi + 0x18], 1
mov rcx, qword [0x010fde28]
mov rsi, qword [0x010fde20]
cmp rax, rcx
jae 0x401b6a
lea rdi, [rsi + rdi]
lea rdi, [rdi + 0x19]
mov r9, qword [rsp + 0x40]
cmp r9, 3
sete byte [rdi]
mov rsi, qword [rsp + 0x70]
mov r8, qword [rsp + 0x50]
jmp 0x401670
call fcn.004392e0
lea rax, [0x00ace9b3]
mov ebx, 0x1e
call fcn.00439be0
mov rax, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x48]
call fcn.00439be0
lea rax, [0x00abc0c5]
mov ebx, 2
call fcn.00439be0
call fcn.00439360
mov rsi, qword [rsp + 0x70]
mov r8, qword [rsp + 0x50]
jmp 0x401670
call fcn.00465b60
call fcn.00465b60
mov rcx, r10
call fcn.00465b60
mov byte [r12 + rax + 0x19], r10b
lea rax, [r9 + 1]
cmp rax, rdi
jge 0x401670
mov r9, qword [0x010fde28]
mov r10, qword [0x010fde20]
nop dword [rax]
cmp rax, r9
jae 0x401c05
mov r9, rax
shl rax, 5
mov byte [r10 + rax + 0x18], 1
cmp rcx, 3
jne 0x401bc2
mov r10d, 1
nop
jmp 0x401bdb
mov r10, qword [0x010fde28]
mov r11, qword [0x010fde20]
cmp r9, r10
jae 0x401bf9
movzx r10d, byte [r11 + rax + 0x1a]
mov r11, qword [0x010fde28]
mov r12, qword [0x010fde20]
cmp r9, r11
jb 0x401b7c
mov rax, r9
mov rcx, r11
call fcn.00465b60
mov rax, r9
mov rcx, r10
nop
call fcn.00465b60
mov rcx, r9
call fcn.00465b60
mov rax, r10
call fcn.00465c20
mov eax, 4
mov rcx, rdx
nop dword [rax]
call fcn.00465c20
mov rax, rcx
mov rcx, rdx
mov rdx, rax
call fcn.00465ba0
mov rax, rsi
mov rcx, rbx
call fcn.00465c20
mov rdx, rbx
call fcn.00465ba0
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
call fcn.00463440
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
jmp fcn.00401640