Function at 0x140109af0
Capabilities:
Get geographical location

Disassembly:
mov rax, rsp
push rbp
push r14
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0xa0
mov qword [rbp + 0x17], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov rax, qword [0x141992390]
xor rax, rsp
mov qword [rbp + 0x3f], rax
mov rsi, rdx
mov qword [rbp - 0x11], rdx
mov ecx, 0x10
call qword [sym.imp.KERNEL32.dll_GetUserGeoID]
xor r14d, r14d
mov word [rsp + 0x20], r14w
lea r9d, [r14 + 3]
lea r8, [rbp + 0x37]
lea edx, [r14 + 4]
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_GetGeoInfoW]
cmp eax, 3
jne 0x140109b7e
mov qword [rbp + 7], 3
lea rax, [rbp + 0x37]
mov qword [rbp + 0xf], rax
movaps xmm0, xmmword [rbp + 7]
movdqa xmmword [rbp + 0x27], xmm0
lea rcx, [rbp + 0x27]
call fcn.1400985d0
mov r14d, eax
lea rcx, [rbp - 0x21]
call fcn.140109d40
nop
lea r15, [0x1401a1e20]
mov rbx, r15
mov qword [rbp - 0x19], rbx
mov edi, 0xffffffff
test r14d, r14d
je 0x140109bf0
mov r8d, r14d
lea rdx, [rbp - 0x21]
lea rcx, [rbp - 9]
call fcn.1400c2300
mov rcx, rax
mov rax, qword [rax]
mov qword [rbp - 0x19], rax
mov qword [rcx], r15
mov rax, qword [rbp - 9]
mov ecx, dword [rax]
test ecx, ecx
je 0x140109bda
cmp ecx, edi
je 0x140109bec
mov ecx, edi
mov rax, qword [rbp - 9]
lock xadd dword [rax], ecx
cmp ecx, 1
jne 0x140109bec
mov edx, 1
lea r8d, [rdx + 7]
mov rcx, qword [rbp - 9]
call fcn.140049bf0
mov rbx, qword [rbp - 0x19]
cmp dword [rbx + 4], 0
jne 0x140109ca8
lea rdx, [rbp - 0x21]
lea rcx, [rbp - 0x11]
call fcn.1400c2280
mov rcx, rax
mov qword [rbp + 7], rbx
mov rax, qword [rax]
mov qword [rbp - 0x19], rax
mov qword [rcx], rbx
mov rax, qword [rbp - 0x11]
mov ecx, dword [rax]
test ecx, ecx
je 0x140109c35
cmp ecx, edi
je 0x140109c47
mov ecx, edi
mov rax, qword [rbp - 0x11]
lock xadd dword [rax], ecx
cmp ecx, 1
jne 0x140109c47
mov edx, 1
lea r8d, [rdx + 7]
mov rcx, qword [rbp - 0x11]
call fcn.140049bf0
mov rbx, qword [rbp - 0x19]
cmp dword [rbx + 4], 0
jne 0x140109ca8
mov byte [rbp - 0x29], 0
mov rdx, rsi
lea rcx, [rbp - 0x29]
call fcn.1400be2a0
nop
mov eax, dword [rbx]
test eax, eax
je 0x140109c7c
cmp eax, 0xffffffff
je 0x140109c8f
mov ecx, edi
mov rax, qword [rbp - 0x19]
lock xadd dword [rax], ecx
cmp ecx, 1
jne 0x140109c8f
mov edx, 1
lea r8d, [rdx + 7]
mov rcx, qword [rbp - 0x19]
call fcn.140049bf0
nop
mov rax, qword [rbp - 0x21]
mov ecx, dword [rax]
test ecx, ecx
je 0x140109cf7
cmp ecx, 0xffffffff
je 0x140109d0a
mov rcx, qword [rbp - 0x21]
lock xadd dword [rcx], edi
jmp 0x140109cf2
mov qword [rsi], rbx
mov eax, dword [0x1401a1e20]
test eax, eax
je 0x140109cc9
cmp eax, 0xffffffff
je 0x140109cdb
mov eax, edi
lock xadd dword [0x1401a1e20], eax
cmp eax, 1
jne 0x140109cdb
mov edx, 1
lea r8d, [rdx + 7]
mov rcx, r15
call fcn.140049bf0
nop
mov rax, qword [rbp - 0x21]
mov ecx, dword [rax]
test ecx, ecx
je 0x140109cf7
cmp ecx, 0xffffffff
je 0x140109d0a
mov rax, qword [rbp - 0x21]
lock xadd dword [rax], edi
cmp edi, 1
jne 0x140109d0a
mov r8d, 8
lea edx, [r8 - 7]
mov rcx, qword [rbp - 0x21]
call fcn.140049bf0
mov rax, rsi
mov rcx, qword [rbp + 0x3f]
xor rcx, rsp
call fcn.140121c90
lea r11, [rsp + 0xa0]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x30]
mov rdi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop rbp
ret