Function at 0x14003ae70
Capabilities:
Get geographical location

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xd0]
sub rsp, 0x1d0
mov qword [rsp + 0x60], 0xfffffffffffffffe
mov qword [rsp + 0x228], rbx
mov rax, qword [0x1400c42d8]
xor rax, rsp
mov qword [rbp + 0xc0], rax
mov r13d, r8d
mov r14, rdx
mov r15, rcx
mov qword [rsp + 0x68], rdx
mov edx, dword [0x1400c6510]
mov rax, qword gs:[0x58]
mov ecx, 4
mov rax, qword [rax + rdx*8]
mov edx, dword [rcx + rax]
cmp dword [0x1400c6460], edx
jg 0x14003b15f
xor edi, edi
mov dword [rsp + 0x30], edi
mov esi, edi
mov qword [rsp + 0x38], rdi
mov byte [rsp + 0x40], sil
mov rcx, qword [r15 + 8]
test rcx, rcx
je 0x14003afb7
mov rax, qword [0x1400c6450]
test rax, rax
je 0x14003afb7
xor r9d, r9d
xor r8d, r8d
mov edx, r13d
call rax
movsxd rbx, eax
lea r12, [rdi - 1]
test eax, eax
jle 0x14003b0b8
mov eax, 2
mul rbx
cmovo rax, r12
mov rcx, rax
call fcn.14003d3c8
mov rsi, rax
xor ecx, ecx
call fcn.14003cadc
mov dword [rsp + 0x30], ebx
mov qword [rsp + 0x38], rsi
mov r9d, ebx
mov r8, rsi
mov edx, r13d
mov rcx, qword [r15 + 8]
call qword [0x1400c6450]
mov edi, ebx
cmp eax, ebx
cmovl edi, eax
mov r13d, edi
test edi, edi
mov ecx, 0
cmovle r13d, ecx
cmovle edi, ecx
cmp eax, edi
cmovg edi, eax
test edi, edi
cmovle edi, ecx
cmp edi, ebx
jg 0x14003afa7
mov eax, ebx
cdq
sub eax, edx
sar eax, 1
cmp edi, eax
jge 0x14003af9e
cmp ebx, 0x80
jge 0x14003afa7
mov dword [rsp + 0x30], edi
jmp 0x14003b0b8
test edi, edi
jne 0x14003b064
mov r15, rcx
jmp 0x14003b07e
mov ecx, dword [r15 + 0x18]
test ecx, ecx
je 0x14003b1b3
xor r9d, r9d
xor r8d, r8d
mov edx, r13d
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
movsxd rbx, eax
test eax, eax
jle 0x14003b1b3
mov eax, 2
mul rbx
mov r12, 0xffffffffffffffff
cmovo rax, r12
mov rcx, rax
call fcn.14003d3c8
mov rsi, rax
xor ecx, ecx
call fcn.14003cadc
mov dword [rsp + 0x30], ebx
mov qword [rsp + 0x38], rsi
mov r9d, ebx
mov r8, rsi
mov edx, r13d
mov ecx, dword [r15 + 0x18]
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
mov edi, ebx
cmp eax, ebx
cmovl edi, eax
mov r13d, edi
test edi, edi
mov r15d, 0
cmovle r13d, r15d
cmovle edi, r15d
cmp eax, edi
cmovg edi, eax
test edi, edi
cmovle edi, r15d
cmp edi, ebx
jg 0x14003b060
mov eax, ebx
cdq
sub eax, edx
sar eax, 1
cmp edi, eax
jge 0x14003b05a
cmp ebx, 0x80
jge 0x14003b060
mov dword [rsp + 0x30], edi
jmp 0x14003b0bb
test edi, edi
je 0x14003b07e
mov eax, 2
movsxd rcx, edi
mul rcx
cmovo rax, r12
mov rcx, rax
call fcn.14003d3c8
mov r15, rax
lea eax, [r13*2]
test eax, eax
movsxd r8, eax
jle 0x14003b098
mov rdx, rsi
mov rcx, r15
call fcn.14003f880
mov rcx, rsi
call fcn.14003cadc
xor ecx, ecx
mov eax, ecx
test edi, edi
cmovg eax, edi
mov dword [rsp + 0x30], eax
cmovle edi, ecx
mov rsi, r15
mov qword [rsp + 0x38], r15
xor r15d, r15d
test edi, edi
jle 0x14003b1b3
mov byte [rsp + 0x20], 1
mov r9d, r12d
mov r8d, 0xfde9
mov rdx, rsi
lea rcx, [rsp + 0x48]
call fcn.140020fa0
mov rbx, qword [rsp + 0x50]
mov qword [rsp + 0x50], r15
mov dword [rsp + 0x48], r15d
mov qword [r14], r15
xor ecx, ecx
call fcn.14003cadc
mov qword [r14], rbx
mov rcx, qword [rsp + 0x50]
cmp byte [rsp + 0x58], 0
je 0x14003b11a
test rcx, rcx
je 0x14003b11a
movsxd rdx, dword [rsp + 0x48]
call fcn.140004df0
mov rcx, qword [rsp + 0x50]
call fcn.14003cadc
mov dword [rsp + 0x48], r15d
mov qword [rsp + 0x50], r15
mov rcx, rsi
call fcn.14003cadc
nop
mov rax, r14
mov rcx, qword [rbp + 0xc0]
xor rcx, rsp
call fcn.14003cb80
mov rbx, qword [rsp + 0x228]
add rsp, 0x1d0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
lea rcx, [0x1400c6460]
call fcn.14003d794
cmp dword [0x1400c6460], 0xffffffff
jne 0x14003aee2
xor r9d, r9d
lea r8, str.GetLocaleInfoEx
lea rdx, str.Kernel32
lea rcx, [0x1400c6450]
call fcn.140029ea0
lea rcx, [0x140096730]
call fcn.14003d3b0
nop
lea rcx, [0x1400c6460]
call fcn.14003d734
jmp 0x14003aee2
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r8d, eax
lea rdx, str.GetLocaleInfo_Ex_
lea rcx, [rsp + 0x70]
call fcn.14000c540
lea rdx, [0x1400c2288]
lea rcx, [rsp + 0x70]
call fcn.14003e874
int3