Function at 0x1400cf220
Capabilities:
Get geographical location

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xd0]
sub rsp, 0x1d0
mov rax, qword [0x1419a1b80]
xor rax, rsp
mov qword [rbp + 0xc0], rax
mov rdi, r8
mov r14, rdx
mov r15, rcx
mov qword [rsp + 0x70], rdx
xor r13d, r13d
mov dword [rbp - 0x40], r13d
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x40], xmm0
mov qword [rsp + 0x50], r13
lea rdx, [rsp + 0x70]
mov rcx, r8
call fcn.1400a4880
mov rcx, qword [rax]
test rcx, rcx
je 0x1400cf942
mov ecx, dword [rcx + 0xc]
test ecx, ecx
jne 0x1400cf29d
mov rcx, qword [rax]
call fcn.14009de20
mov ecx, eax
sub ecx, 2
je 0x1400cf3a9
sub ecx, 1
je 0x1400cf367
sub ecx, 1
je 0x1400cf350
sub ecx, 1
je 0x1400cf30b
cmp ecx, 1
jne 0x1400cf942
call fcn.14005af40
mov rbx, rax
xor edx, edx
mov rcx, rdi
call fcn.1400a5db0
mov dword [rsp + 0x30], 1
mov rsi, 0xffffffffffffffff
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x20], 1
mov r9d, esi
movaps xmm2, xmm0
lea rdx, [rsp + 0x58]
mov rcx, rbx
call fcn.14005d420
jmp 0x1400cf3e9
call fcn.14005af40
mov rbx, rax
xor edx, edx
mov rcx, rdi
call fcn.1400a6860
mov dword [rsp + 0x30], 1
mov rsi, 0xffffffffffffffff
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x20], 0xa
mov r9d, esi
mov r8, rax
lea rdx, [rsp + 0x58]
mov rcx, rbx
call fcn.140060e80
jmp 0x1400cf3e9
call fcn.14005af40
mov rbx, rax
xor edx, edx
mov rcx, rdi
call fcn.1400a62c0
mov r8, rax
jmp 0x1400cf3be
call fcn.14005af40
mov rbx, rax
xor edx, edx
mov rcx, rdi
call fcn.1400a67a0
mov r8d, eax
mov dword [rsp + 0x30], 1
mov rsi, 0xffffffffffffffff
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x20], 0xa
mov r9d, esi
lea rdx, [rsp + 0x58]
mov rcx, rbx
call fcn.140060e80
jmp 0x1400cf3e9
call fcn.14005af40
mov rbx, rax
xor edx, edx
mov rcx, rdi
call fcn.1400a5de0
movsxd r8, eax
mov dword [rsp + 0x30], 1
mov rsi, 0xffffffffffffffff
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x20], 0xa
mov r9d, esi
lea rdx, [rsp + 0x58]
mov rcx, rbx
call fcn.14005f650
mov rdx, rax
mov rcx, qword [rsp + 0x40]
mov rax, qword [rax]
mov qword [rsp + 0x40], rax
mov qword [rdx], rcx
mov rcx, qword [rsp + 0x48]
mov rax, qword [rdx + 8]
mov qword [rsp + 0x48], rax
mov qword [rdx + 8], rcx
mov rcx, qword [rsp + 0x50]
mov rax, qword [rdx + 0x10]
mov qword [rsp + 0x50], rax
mov qword [rdx + 0x10], rcx
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x1400cf44a
mov eax, esi
lock xadd dword [rcx], eax
cmp eax, 1
jne 0x1400cf44a
mov r8d, 8
mov edx, 2
mov rcx, qword [rsp + 0x58]
call fcn.140030bb0
mov qword [rbp + 0x20], 0x40
lea rax, [rbp + 0x38]
mov qword [rbp + 0x30], rax
mov qword [rbp + 0x28], 0x40
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x58], xmm0
mov qword [rbp - 0x48], r13
movdqu xmmword [rbp - 0x70], xmm0
mov qword [rbp - 0x60], r13
mov r12, r13
cmp qword [rdi + 0x30], r13
je 0x1400cf71f
mov r9d, 2
lea r8, [rsp + 0x70]
mov edx, 0x20000019
mov ecx, dword [r15]
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
mov ecx, r13d
cmp eax, 2
cmove ecx, dword [rsp + 0x70]
mov dword [rbp - 0x38], ecx
mov r9d, 2
lea r8, [rsp + 0x70]
mov edx, 0x20000012
mov ecx, dword [r15]
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
mov ecx, r13d
cmp eax, 2
cmove ecx, dword [rsp + 0x70]
mov dword [rbp - 0x34], ecx
mov r8d, 0x16
lea rdx, [rbp - 8]
mov rcx, r15
call fcn.1400cd4e0
nop
lea rdx, [rsp + 0x70]
mov rcx, rax
call fcn.1400a6520
mov rdx, rax
mov rcx, qword [rbp - 0x58]
mov rax, qword [rax]
mov qword [rbp - 0x58], rax
mov qword [rdx], rcx
mov rcx, qword [rbp - 0x50]
mov rax, qword [rdx + 8]
mov qword [rbp - 0x50], rax
mov qword [rdx + 8], rcx
mov rcx, qword [rbp - 0x48]
mov rax, qword [rdx + 0x10]
mov qword [rbp - 0x48], rax
mov qword [rdx + 0x10], rcx
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x1400cf54e
mov eax, esi
lock xadd dword [rcx], eax
cmp eax, 1
jne 0x1400cf54e
mov edx, 2
mov r8d, 8
mov rcx, qword [rsp + 0x70]
call fcn.140030bb0
nop
lea rcx, [rbp - 8]
call fcn.1400a3b80
lea rcx, [rbp - 0x58]
call fcn.14001d9a0
mov qword [rbp - 0x28], rax
mov r8d, 0x17
lea rdx, [rbp - 8]
mov rcx, r15
call fcn.1400cd4e0
nop
lea rdx, [rsp + 0x70]
mov rcx, rax
call fcn.1400a6520
mov rdx, rax
mov rcx, qword [rbp - 0x70]
mov rax, qword [rax]
mov qword [rbp - 0x70], rax
mov qword [rdx], rcx
mov rcx, qword [rbp - 0x68]
mov rax, qword [rdx + 8]
mov qword [rbp - 0x68], rax
mov qword [rdx + 8], rcx
mov rcx, qword [rbp - 0x60]
mov rax, qword [rdx + 0x10]
mov qword [rbp - 0x60], rax
mov qword [rdx + 0x10], rcx
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x1400cf5e0
mov eax, esi
lock xadd dword [rcx], eax
cmp eax, 1
jne 0x1400cf5e0
mov edx, 2
mov r8d, 8
mov rcx, qword [rsp + 0x70]
call fcn.140030bb0
nop
lea rcx, [rbp - 8]
call fcn.1400a3b80
lea rcx, [rbp - 0x70]
call fcn.14001d9a0
mov qword [rbp - 0x20], rax
mov r9d, 2
lea r8, [rsp + 0x70]
mov edx, 0x2000001c
mov ecx, dword [r15]
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
mov ecx, r13d
cmp eax, 2
cmove ecx, dword [rsp + 0x70]
mov dword [rbp - 0x18], ecx
mov r9d, 2
lea r8, [rsp + 0x70]
mov edx, 0x2000001b
mov ecx, dword [r15]
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
mov ecx, r13d
cmp eax, 2
cmove ecx, dword [rsp + 0x70]
mov dword [rbp - 0x14], ecx
lea rcx, [rdi + 0x20]
call fcn.14001d9a0
mov qword [rbp - 0x10], rax
mov r8d, 0x18
lea rdx, [rbp - 8]
mov rcx, r15
call fcn.1400cd4e0
nop
lea rdx, [rsp + 0x58]
mov rcx, rax
call fcn.1400a6520
nop
lea rcx, [rbp - 8]
call fcn.1400a3b80
mov edx, 0x3b
mov r8d, 1
lea rcx, [rsp + 0x58]
call fcn.14001a660
mov rcx, qword [rax + 0x10]
mov rdx, qword [rax + 8]
mov qword [rsp + 0x70], rcx
mov qword [rsp + 0x78], rdx
movaps xmm0, xmmword [rsp + 0x70]
movdqa xmmword [rsp + 0x70], xmm0
xor edx, edx
mov r8d, 0xa
lea rcx, [rsp + 0x70]
call fcn.14001cbe0
mov rcx, rax
cdqe
mov r8d, r13d
cmp rax, rcx
cmove r8d, ecx
mov eax, 0xcccccccd
mul r8d
shr edx, 3
lea ecx, [rdx + rdx*4]
add ecx, ecx
cmp r8d, ecx
jne 0x1400cf6e8
mov dword [rbp - 0x30], edx
jmp 0x1400cf6f1
lea eax, [r8 + r8*4]
add eax, eax
mov dword [rbp - 0x30], eax
lea r12, [rbp - 0x38]
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x1400cf71f
mov eax, esi
lock xadd dword [rcx], eax
cmp eax, 1
jne 0x1400cf71f
mov edx, 2
mov r8d, 8
mov rcx, qword [rsp + 0x58]
call fcn.140030bb0
mov ebx, dword [rbp + 0x28]
mov rdi, qword [rbp + 0x30]
lea rcx, [rsp + 0x40]
call fcn.14001d9a0
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], rdi
mov r9, r12
mov r8, rax
xor edx, edx
mov ecx, dword [r15]
call qword [sym.imp.KERNEL32.dll_GetCurrencyFormatW]
test eax, eax
jne 0x1400cf7b9
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x1400cf7b9
mov rbx, qword [rbp + 0x30]
lea rcx, [rsp + 0x40]
call fcn.14001d9a0
mov dword [rsp + 0x28], r13d
mov qword [rsp + 0x20], rbx
mov r9, r12
mov r8, rax
xor edx, edx
mov ecx, dword [r15]
call qword [sym.imp.KERNEL32.dll_GetCurrencyFormatW]
movsxd rdx, eax
lea rcx, [rbp + 0x20]
call fcn.1400cea00
mov ebx, dword [rbp + 0x28]
mov rdi, qword [rbp + 0x30]
lea rcx, [rsp + 0x40]
call fcn.14001d9a0
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], rdi
mov r9, r12
mov r8, rax
xor edx, edx
mov ecx, dword [r15]
call qword [sym.imp.KERNEL32.dll_GetCurrencyFormatW]
mov r8, rsi
mov rdx, qword [rbp + 0x30]
lea rcx, [rsp + 0x58]
call fcn.140017720
nop
mov rbx, qword [rax]
mov rdi, qword [rax + 8]
mov r12, qword [rax + 0x10]
mov qword [rax], r13
mov qword [rax + 8], r13
mov qword [rax + 0x10], r13
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x1400cf80b
mov eax, esi
lock xadd dword [rcx], eax
cmp eax, 1
jne 0x1400cf80b
mov edx, 2
mov r8d, 8
mov rcx, qword [rsp + 0x58]
call fcn.140030bb0
mov rcx, qword [rsp + 0x40]
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0x50], r12
test rcx, rcx
je 0x1400cf83f
mov eax, esi
lock xadd dword [rcx], eax
cmp eax, 1
jne 0x1400cf83f
mov edx, 2
mov r8d, 8
call fcn.140030bb0
mov rcx, r15
call fcn.1400ced20
cmp eax, 2
jne 0x1400cf8bf
lea r8, [rsp + 0x40]
lea rdx, [rsp + 0x58]
mov rcx, r15
call fcn.1400ceac0
mov rdx, rax
mov rcx, qword [rsp + 0x40]
mov rax, qword [rax]
mov qword [rsp + 0x40], rax
mov qword [rdx], rcx
mov rcx, qword [rsp + 0x48]
mov rax, qword [rdx + 8]
mov qword [rsp + 0x48], rax
mov qword [rdx + 8], rcx
mov rcx, qword [rsp + 0x50]
mov rax, qword [rdx + 0x10]
mov qword [rsp + 0x50], rax
mov qword [rdx + 0x10], rcx
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x1400cf8bf
mov eax, esi
lock xadd dword [rcx], eax
cmp eax, 1
jne 0x1400cf8bf
mov edx, 2
mov r8d, 8
mov rcx, qword [rsp + 0x58]
call fcn.140030bb0
lea rdx, [rsp + 0x40]
mov rcx, r14
call fcn.1400a3810
nop
mov rcx, qword [rbp - 0x70]
test rcx, rcx
je 0x1400cf8f6
mov eax, esi
lock xadd dword [rcx], eax
cmp eax, 1
jne 0x1400cf8f6
mov edx, 2
mov r8d, 8
mov rcx, qword [rbp - 0x70]
call fcn.140030bb0
nop
mov rcx, qword [rbp - 0x58]
test rcx, rcx
je 0x1400cf91f
mov eax, esi
lock xadd dword [rcx], eax
cmp eax, 1
jne 0x1400cf91f
mov edx, 2
mov r8d, 8
mov rcx, qword [rbp - 0x58]
call fcn.140030bb0
nop
lea rax, [rbp + 0x38]
mov rcx, qword [rbp + 0x30]
cmp rcx, rax
je 0x1400cf932
call fcn.140174a74
nop
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x1400cf991
lock xadd dword [rcx], esi
jmp 0x1400cf977
xorps xmm0, xmm0
xor eax, eax
movups xmmword [r14], xmm0
mov qword [r14 + 0x10], rax
mov rax, qword [r14 + 0x18]
and rax, 0xfffffffffffffffe
or rax, 2
and eax, 3
mov qword [r14 + 0x18], rax
mov rax, qword [rsp + 0x40]
test rax, rax
je 0x1400cf991
mov rsi, 0xffffffffffffffff
lock xadd dword [rax], esi
cmp esi, 1
jne 0x1400cf991
mov r8d, 8
mov edx, 2
mov rcx, qword [rsp + 0x40]
call fcn.140030bb0
mov rax, r14
mov rcx, qword [rbp + 0xc0]
xor rcx, rsp
call fcn.14016c210
mov rbx, qword [rsp + 0x228]
add rsp, 0x1d0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret