Function at 0x1401aa3f0
Capabilities:
Get geographical location

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x80
mov rax, qword [0x140492fc0]
xor rax, rsp
mov qword [rbp - 0x10], rax
mov rsi, r9
movsxd r15, r8d
mov rbx, rdx
mov r12, rcx
mov qword [rbp - 0x30], rdx
mov qword [rbp - 0x38], r9
xor r13d, r13d
mov dword [rbp - 0x44], r13d
mov eax, dword [0x14049b2dc]
lea r14, [0x140484d90]
mov edi, 0xffffffff
cmp eax, 0xfffffffe
jg 0x1401aa44f
mov r14d, r13d
jmp 0x1401aa47d
mov ecx, dword [0x14049bb18]
mov rax, qword gs:[0x58]
mov edx, 8
mov rax, qword [rax + rcx*8]
mov ecx, dword [rdx + rax]
cmp dword [0x14049b2e0], ecx
jg 0x1401aadab
lea r14, [0x140492170]
cmp r15d, 0x28
ja case.0x1401aa499.27
lea rax, [0x140000000]
mov edx, dword [rax + r15*4 + 0x1aae04]
add rdx, rax
jmp rdx
xor r9d, r9d
mov r8d, reloc.WS2_32.dll_ntohl
mov rdx, rbx
mov rcx, r14
call fcn.1401a8f70
jmp 0x1401aad4d
xor r9d, r9d
mov r8d, select
mov rdx, rbx
mov rcx, r14
call fcn.1401a8f70
jmp 0x1401aad4d
xor r9d, r9d
mov r8d, 0x51
mov rdx, rbx
mov rcx, r14
call fcn.1401a8f70
jmp 0x1401aad4d
xor r9d, r9d
mov r8d, 0x50
mov rdx, rbx
mov rcx, r14
call fcn.1401a8f70
jmp 0x1401aad4d
xor r8d, r8d
mov rdx, rbx
mov rcx, r14
call fcn.1401a9520
jmp 0x1401aad4d
mov r8d, 1
mov rdx, rbx
mov rcx, r14
call fcn.1401a9520
jmp 0x1401aad4d
xor r8d, r8d
mov rdx, rbx
mov rcx, r14
call fcn.1401ab200
jmp 0x1401aad4d
mov r8d, 1
mov rdx, rbx
mov rcx, r14
call fcn.1401ab200
jmp 0x1401aad4d
xor r8d, r8d
mov rdx, rbx
mov rcx, r14
call fcn.1401a96e0
jmp 0x1401aad4d
mov r8d, 1
mov rdx, rbx
mov rcx, r14
call fcn.1401a96e0
jmp 0x1401aad4d
xor edx, edx
mov rcx, rsi
call fcn.1400f4ac0
mov r8d, eax
xor r9d, r9d
mov rdx, rbx
mov rcx, r14
call fcn.1401a9840
jmp 0x1401aad4d
xor edx, edx
mov rcx, rsi
call fcn.1400f4ac0
mov r8d, eax
mov r9d, 1
mov rdx, rbx
mov rcx, r14
call fcn.1401a9840
jmp 0x1401aad4d
xor edx, edx
mov rcx, rsi
call fcn.1400f4ac0
mov r8d, eax
xor r9d, r9d
mov rdx, rbx
mov rcx, r14
call fcn.1401aa260
jmp 0x1401aad4d
xor edx, edx
mov rcx, rsi
call fcn.1400f4ac0
mov r8d, eax
xor r9d, r9d
mov rdx, rbx
mov rcx, r14
call fcn.1401aaeb0
jmp 0x1401aad4d
xor edx, edx
mov rcx, rsi
call fcn.1400f4ac0
mov r8d, eax
mov r9d, 1
mov rdx, rbx
mov rcx, r14
call fcn.1401aa260
jmp 0x1401aad4d
xor edx, edx
mov rcx, rsi
call fcn.1400f4ac0
mov r8d, eax
mov r9d, 1
mov rdx, rbx
mov rcx, r14
call fcn.1401aaeb0
jmp 0x1401aad4d
lea rdx, [rbp - 0x30]
mov rcx, rsi
call fcn.1400f47d0
mov r9d, 1
mov r8, qword [rax]
mov rdx, rbx
mov rcx, r14
call fcn.1401abbe0
jmp 0x1401aad4d
lea rdx, [rbp - 0x30]
mov rcx, rsi
call fcn.1400f47d0
xor r9d, r9d
mov r8, qword [rax]
mov rdx, rbx
mov rcx, r14
call fcn.1401abbe0
jmp 0x1401aad4d
lea rdx, [rbp - 0x48]
mov rcx, rsi
call fcn.1400f52e0
mov r9d, 1
mov r8d, dword [rax]
mov rdx, rbx
mov rcx, r14
call fcn.1401abdb0
jmp 0x1401aad4d
lea rdx, [rbp - 0x48]
mov rcx, rsi
call fcn.1400f52e0
xor r9d, r9d
mov r8d, dword [rax]
mov rdx, rbx
mov rcx, r14
call fcn.1401abdb0
jmp 0x1401aad4d
lea rdx, [rbp - 0x50]
mov rcx, rsi
call fcn.1400f48b0
nop
mov r9d, 1
mov r8, rax
mov rdx, rbx
mov rcx, r14
call fcn.1401aba50
nop
lea rcx, [rbp - 0x50]
call fcn.1400f5b70
jmp 0x1401aad4d
lea rdx, [rbp - 0x50]
mov rcx, rsi
call fcn.1400f48b0
nop
xor r9d, r9d
mov r8, rax
mov rdx, rbx
mov rcx, r14
call fcn.1401aba50
nop
lea rcx, [rbp - 0x50]
call fcn.1400f5b70
jmp 0x1401aad4d
mov rdx, rbx
mov rcx, r14
call fcn.1401acdb0
jmp 0x1401aad4d
mov edx, 0x400
lea rcx, [rbp - 0x50]
call fcn.1401a9a60
nop
mov rdx, rax
lea rcx, [rbp - 0x60]
call fcn.140009720
nop
mov rax, qword [rbp - 0x50]
mov ecx, dword [rax]
test ecx, ecx
je 0x1401aa778
cmp ecx, 0xffffffff
je 0x1401aa78c
mov rax, qword [rbp - 0x50]
mov ecx, edi
lock xadd dword [rax], ecx
cmp ecx, 1
jne 0x1401aa78c
mov edx, 1
mov r8d, 8
mov rcx, qword [rbp - 0x50]
call fcn.1400affb0
lea r9, [rbp - 0x48]
lea r8, [rbp - 0x3c]
lea rdx, [rbp - 0x40]
lea rcx, [rbp - 0x60]
call fcn.140102c10
test r15d, r15d
jne 0x1401aa7ef
mov edx, dword [rbp - 0x40]
mov rcx, rbx
call fcn.1400f1540
nop
mov rax, qword [rbp - 0x60]
mov ecx, dword [rax]
test ecx, ecx
je 0x1401aa7d6
cmp ecx, 0xffffffff
je 0x1401aad4d
mov rax, qword [rbp - 0x60]
lock xadd dword [rax], edi
cmp edi, 1
jne 0x1401aad4d
mov r8d, 8
mov edx, 2
mov rcx, qword [rbp - 0x60]
call fcn.1400affb0
jmp 0x1401aad4d
cmp r15d, 0x22
jne 0x1401aa886
mov eax, dword [rbp - 0x3c]
test eax, eax
jne 0x1401aa823
mov rax, qword [r12]
lea rdx, [rbp - 0x30]
mov rcx, r12
call qword [rax + select]
nop
mov r14d, 2
mov dword [rbp - 0x44], r14d
mov rcx, rax
call fcn.140104bf0
jmp 0x1401aa827
mov r14d, dword [rbp - 0x44]
mov edx, eax
mov rcx, rbx
call fcn.1400f1540
or r14d, 1
mov dword [rbp - 0x44], r14d
test r14b, 2
je 0x1401aa849
lea rcx, [rbp - 0x30]
call fcn.1400ff880
nop
mov rax, qword [rbp - 0x60]
mov ecx, dword [rax]
test ecx, ecx
je 0x1401aa86d
cmp ecx, 0xffffffff
je 0x1401aad4d
mov rax, qword [rbp - 0x60]
lock xadd dword [rax], edi
cmp edi, 1
jne 0x1401aad4d
mov edx, 2
mov r8d, 8
mov rcx, qword [rbp - 0x60]
call fcn.1400affb0
jmp 0x1401aad4d
mov edx, dword [rbp - 0x48]
test edx, edx
jne 0x1401aa7a9
mov rax, qword [r12]
lea rdx, [rbp - 0x30]
mov rcx, r12
call qword [rax + select]
nop
mov rcx, rax
call fcn.140100490
mov edx, eax
mov rcx, rbx
call fcn.1400f1540
nop
lea rcx, [rbp - 0x30]
call fcn.1400ff880
nop
mov rax, qword [rbp - 0x60]
mov ecx, dword [rax]
test ecx, ecx
je 0x1401aa8e1
cmp ecx, 0xffffffff
je 0x1401aad4d
mov rax, qword [rbp - 0x60]
lock xadd dword [rax], edi
cmp edi, 1
jne 0x1401aad4d
mov edx, 2
mov r8d, 8
mov rcx, qword [rbp - 0x60]
call fcn.1400affb0
jmp 0x1401aad4d
mov r9d, 2
lea r8, [rbp - 0x48]
mov edx, reloc.WS2_32.dll_listen
mov ecx, dword [r14]
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
test eax, eax
je 0x1401aaa16
mov r8d, edi
lea rdx, [rbp - 0x48]
lea rcx, [rbp - 0x50]
call fcn.1400ba830
nop
mov rcx, qword [rax]
mov qword [rbp - 0x60], rcx
lea rcx, [0x140484d90]
mov qword [rax], rcx
mov rax, qword [rbp - 0x50]
mov ecx, dword [rax]
test ecx, ecx
je 0x1401aa95a
cmp ecx, 0xffffffff
je 0x1401aa96f
mov rax, qword [rbp - 0x50]
mov ecx, edi
lock xadd dword [rax], ecx
cmp ecx, 1
jne 0x1401aa96f
mov edx, 2
mov r8d, 8
mov rcx, qword [rbp - 0x50]
call fcn.1400affb0
nop
mov dword [rbp - 0x30], 1
lea rax, [0x14031afcc]
mov qword [rbp - 0x28], rax
movaps xmm0, xmmword [rbp - 0x30]
movdqa xmmword [rbp - 0x30], xmm0
lea rdx, [rbp - 0x30]
lea rcx, [rbp - 0x60]
call fcn.1400b6da0
test al, al
je 0x1401aa9e6
mov edx, 1
mov rcx, rbx
call fcn.1400f1540
nop
mov rax, qword [rbp - 0x60]
mov ecx, dword [rax]
test ecx, ecx
je 0x1401aa9cd
cmp ecx, 0xffffffff
je 0x1401aad4d
mov rax, qword [rbp - 0x60]
lock xadd dword [rax], edi
cmp edi, 1
jne 0x1401aad4d
mov edx, 2
mov r8d, 8
mov rcx, qword [rbp - 0x60]
call fcn.1400affb0
jmp 0x1401aad4d
mov rax, qword [rbp - 0x60]
mov ecx, dword [rax]
test ecx, ecx
je 0x1401aaa02
cmp ecx, 0xffffffff
je 0x1401aaa16
mov rax, qword [rbp - 0x60]
lock xadd dword [rax], edi
cmp edi, 1
jne 0x1401aaa16
mov edx, 2
mov r8d, 8
mov rcx, qword [rbp - 0x60]
call fcn.1400affb0
xor edx, edx
mov rcx, rbx
call fcn.1400f1540
jmp 0x1401aad4d
xor r9d, r9d
mov r8d, 0x7b
mov rdx, rbx
mov rcx, r14
call fcn.1401a8f70
jmp 0x1401aad4d
mov r9d, select
lea r8, [rbp - 0x30]
mov edx, 0x28
mov ecx, dword [r14]
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
test eax, eax
je case.0x1401aa499.27
mov r8d, edi
lea rdx, [rbp - 0x30]
lea rcx, [rbp - 0x50]
call fcn.1400ba830
nop
mov rcx, qword [rax]
mov qword [rbp - 0x60], rcx
lea rcx, [0x140484d90]
mov qword [rax], rcx
mov rax, qword [rbp - 0x50]
mov ecx, dword [rax]
test ecx, ecx
je 0x1401aaa9e
cmp ecx, 0xffffffff
je 0x1401aaab3
mov rax, qword [rbp - 0x50]
mov ecx, edi
lock xadd dword [rax], ecx
cmp ecx, 1
jne 0x1401aaab3
mov edx, 2
mov r8d, 8
mov rcx, qword [rbp - 0x50]
call fcn.1400affb0
nop
lea rdx, [rbp - 0x60]
mov rcx, rbx
call fcn.1400f1430
nop
mov rax, qword [rbp - 0x60]
mov ecx, dword [rax]
test ecx, ecx
je 0x1401aaae4
cmp ecx, 0xffffffff
je 0x1401aad4d
mov rax, qword [rbp - 0x60]
lock xadd dword [rax], edi
cmp edi, 1
jne 0x1401aad4d
mov edx, 2
mov r8d, 8
mov rcx, qword [rbp - 0x60]
call fcn.1400affb0
jmp 0x1401aad4d
mov r9d, select
lea r8, [rbp - 0x30]
mov edx, 0x29
mov ecx, dword [r14]
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
test eax, eax
je case.0x1401aa499.27
mov r8d, edi
lea rdx, [rbp - 0x30]
lea rcx, [rbp - 0x50]
call fcn.1400ba830
nop
mov rcx, qword [rax]
mov qword [rbp - 0x60], rcx
lea rcx, [0x140484d90]
mov qword [rax], rcx
mov rax, qword [rbp - 0x50]
mov ecx, dword [rax]
test ecx, ecx
je 0x1401aab5d
cmp ecx, 0xffffffff
je 0x1401aab72
mov rax, qword [rbp - 0x50]
mov ecx, edi
lock xadd dword [rax], ecx
cmp ecx, 1
jne 0x1401aab72
mov edx, 2
mov r8d, 8
mov rcx, qword [rbp - 0x50]
call fcn.1400affb0
nop
lea rdx, [rbp - 0x60]
mov rcx, rbx
call fcn.1400f1430
nop
mov rax, qword [rbp - 0x60]
mov ecx, dword [rax]
test ecx, ecx
je 0x1401aaba3
cmp ecx, 0xffffffff
je 0x1401aad4d
mov rax, qword [rbp - 0x60]
lock xadd dword [rax], edi
cmp edi, 1
jne 0x1401aad4d
mov edx, 2
mov r8d, 8
mov rcx, qword [rbp - 0x60]
call fcn.1400affb0
jmp 0x1401aad4d
mov r9d, 4
lea r8, [rbp - 0x30]
mov edx, 0x100c
mov ecx, dword [r14]
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
test eax, eax
je 0x1401aac8b
mov r8d, edi
lea rdx, [rbp - 0x30]
lea rcx, [rbp - 0x50]
call fcn.1400ba830
nop
mov rcx, qword [rax]
mov qword [rbp - 0x60], rcx
lea rcx, [0x140484d90]
mov qword [rax], rcx
mov rax, qword [rbp - 0x50]
mov ecx, dword [rax]
test ecx, ecx
je 0x1401aac1c
cmp ecx, 0xffffffff
je 0x1401aac31
mov rax, qword [rbp - 0x50]
mov ecx, edi
lock xadd dword [rax], ecx
cmp ecx, 1
jne 0x1401aac31
mov edx, 2
mov r8d, 8
mov rcx, qword [rbp - 0x50]
call fcn.1400affb0
nop
xor edx, edx
mov r8d, 0xa
lea rcx, [rbp - 0x60]
call fcn.1400bf330
lea edx, [rax + 1]
mov rcx, rbx
call fcn.1400f1650
nop
mov rax, qword [rbp - 0x60]
mov ecx, dword [rax]
test ecx, ecx
je 0x1401aac72
cmp ecx, 0xffffffff
je 0x1401aad4d
mov rax, qword [rbp - 0x60]
lock xadd dword [rax], edi
cmp edi, 1
jne 0x1401aad4d
mov edx, 2
mov r8d, 8
mov rcx, qword [rbp - 0x60]
call fcn.1400affb0
jmp 0x1401aad4d
mov edx, 1
mov rcx, rbx
call fcn.1400f1540
jmp 0x1401aad4d
xor edx, edx
mov rcx, rsi
call fcn.1400f53b0
mov r8d, eax
mov rdx, rbx
mov rcx, r14
call fcn.1401a91c0
jmp 0x1401aad4d
mov rdx, rsi
lea rcx, [rbp - 0x30]
call fcn.1401aa110
nop
lea r8, [rbp - 0x30]
mov rdx, rbx
mov rcx, r14
call fcn.1401ab3c0
nop
mov rax, qword [rbp - 0x20]
mov ecx, dword [rax]
test ecx, ecx
je 0x1401aacf3
cmp ecx, 0xffffffff
je 0x1401aad07
mov rax, qword [rbp - 0x20]
lock xadd dword [rax], edi
cmp edi, 1
jne 0x1401aad07
mov edx, 2
mov r8d, 8
mov rcx, qword [rbp - 0x20]
call fcn.1400affb0
lea rcx, [rbp - 0x30]
call fcn.1400f1820
jmp 0x1401aad4d
mov rdx, rbx
mov rcx, r14
call fcn.1401ac110
jmp 0x1401aad4d
call qword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
mov dword [r14], eax
mov dword [r14 + 4], r13d
lea rcx, [r14 + 8]
xor edx, edx
call fcn.1400bdf00
mov eax, dword [rbx + 8]
and eax, 0xc0000000
btr eax, 0x1e
bts eax, 0x1f
mov dword [rbx + 8], eax
mov qword [rbx], r13
mov rcx, rsi
call fcn.1400f1820
mov rax, rbx
mov rcx, qword [rbp - 0x10]
xor rcx, rsp
call fcn.140229fa0
mov rbx, qword [rsp + 0xd0]
add rsp, 0x80
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
xor r9d, r9d
mov r8d, 4
mov rdx, rbx
mov rcx, r14
call fcn.1401a8f70
jmp 0x1401aad4d
xor r9d, r9d
mov r8d, 8
mov rdx, rbx
mov rcx, r14
call fcn.1401a8f70
jmp 0x1401aad4d
lea rcx, [0x14049b2e0]
call fcn.140229e94
cmp dword [0x14049b2e0], edi
jne 0x1401aa476
mov dword [0x140492174], r13d
mov qword [0x140492178], r14
call qword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
mov dword [0x140492170], eax
mov dword [0x14049b2dc], edi
lea rcx, [0x140264ce0]
call fcn.14022a480
lea rcx, [0x14049b2e0]
call fcn.140229e28
jmp 0x1401aa476