Function at 0x14005e780
Capabilities:
Get geographical location

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
lea rbp, [rsp - 0x1d0]
sub rsp, 0x2d0
mov qword [rbp - 0x48], 0xfffffffffffffffe
mov rax, qword [0x1415dbbb0]
xor rax, rsp
mov qword [rbp + 0x1c0], rax
mov esi, r8d
mov rdi, rdx
mov r12, rcx
mov qword [rbp - 0x50], rdx
xor r14d, r14d
mov dword [rsp + 0x28], r14d
lea r13, [0x1415d9378]
mov qword [rsp + 0x20], r13
lock inc dword [0x1415d9378]
mov rcx, qword [rcx]
cmp dword [rcx + 4], r14d
je 0x14005ee9f
mov eax, dword [rcx + 8]
cmp eax, 0xffffffff
jle 0x14005ee9f
cmp eax, 0x5265c00
jge 0x14005ee9f
cmp r8d, 1
jne 0x14005e902
add rcx, 4
lea rdx, [rsp + 0x68]
call fcn.14005e160
nop
mov rdx, rax
lea rcx, [rsp + 0x20]
call fcn.140012be0
nop
mov rcx, qword [rsp + 0x68]
or ebx, 0xffffffff
lock dec dword [rcx]
jne 0x14005e83d
mov rcx, qword [rsp + 0x68]
call fcn.140012a00
mov rax, qword [rsp + 0x20]
cmp dword [rax + 8], 0
jne 0x14005e867
mov qword [rdi], r13
lock inc dword [0x1415d9378]
mov dword [rsp + 0x28], 1
mov rcx, qword [rsp + 0x20]
lock dec dword [rcx]
jmp 0x14005eeba
mov ecx, dword [rax]
cmp ecx, 1
jne 0x14005e87d
mov edx, dword [rax + 8]
inc edx
mov rcx, qword [rsp + 0x20]
cmp edx, dword [rcx + 4]
jle 0x14005e898
mov ecx, dword [rax + 8]
inc ecx
call fcn.14000fc50
mov edx, eax
lea rcx, [rsp + 0x20]
call fcn.140012a40
mov rcx, qword [rsp + 0x20]
movsxd rdx, dword [rcx + 8]
mov rax, qword [rcx + 0x10]
mov ecx, 0x54
mov word [rax + rdx*2], cx
mov rax, qword [rsp + 0x20]
inc dword [rax + 8]
mov rax, qword [rsp + 0x20]
movsxd rdx, dword [rax + 8]
mov rcx, qword [rax + 0x10]
mov word [rcx + rdx*2], r14w
mov rcx, qword [r12]
add rcx, 8
mov r8d, 1
lea rdx, [rsp + 0x58]
call fcn.14005b4b0
nop
mov rdx, rax
lea rcx, [rsp + 0x20]
call fcn.140012c50
nop
mov rax, qword [rsp + 0x58]
lock dec dword [rax]
jne 0x14005ee7f
mov rcx, qword [rsp + 0x58]
jmp 0x14005ee7a
test r8d, r8d
jne 0x14005ed96
mov r9d, 0xff
lea r8, [rbp - 0x40]
mov edx, 0x22
mov ecx, 0x400
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
or ebx, 0xffffffff
mov r8d, ebx
lea rdx, [rbp - 0x40]
lea rcx, [rsp + 0x40]
call fcn.140016c40
nop
xor edx, edx
lea r8d, [rbx + 0xb]
lea rcx, [rsp + 0x40]
call fcn.140010cf0
dec eax
mov rax, qword [r12]
mov ecx, dword [rax + 4]
mov eax, 0x24924925
je 0x14005eaf2
mul ecx
mov eax, ecx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 2
imul eax, eax, 7
sub ecx, eax
lea edx, [rcx + 1]
lea rcx, [rbp - 0x60]
call fcn.14005ac00
nop
mov rdx, rax
lea rcx, [rsp + 0x20]
call fcn.140012be0
nop
mov rax, qword [rbp - 0x60]
lock dec dword [rax]
jne 0x14005e99d
mov rcx, qword [rbp - 0x60]
call fcn.140012a00
mov rax, qword [rsp + 0x20]
mov ecx, dword [rax]
mov rax, qword [rsp + 0x20]
cmp ecx, 1
jne 0x14005e9b8
mov ecx, dword [rax + 8]
inc ecx
cmp ecx, dword [rax + 4]
jle 0x14005e9d3
mov ecx, dword [rax + 8]
inc ecx
call fcn.14000fc50
mov edx, eax
lea rcx, [rsp + 0x20]
call fcn.140012a40
mov rax, qword [rsp + 0x20]
movsxd rdx, dword [rax + 8]
mov rcx, qword [rax + 0x10]
mov r13d, 0x20
mov word [rcx + rdx*2], r13w
mov rax, qword [rsp + 0x20]
inc dword [rax + 8]
mov rax, qword [rsp + 0x20]
movsxd rdx, dword [rax + 8]
mov rcx, qword [rax + 0x10]
mov word [rcx + rdx*2], r14w
mov rax, qword [r12]
xor r9d, r9d
lea r8, [rsp + 0x34]
xor edx, edx
mov ecx, dword [rax + 4]
call fcn.14005a5b0
mov edx, dword [rsp + 0x34]
lea rcx, [rsp + 0x48]
call fcn.14005abd0
nop
mov rdx, rax
lea rcx, [rsp + 0x20]
call fcn.140012c50
nop
mov rax, qword [rsp + 0x48]
lock dec dword [rax]
jne 0x14005ea47
mov rcx, qword [rsp + 0x48]
call fcn.140012a00
mov rax, qword [rsp + 0x20]
mov ecx, dword [rax]
mov rax, qword [rsp + 0x20]
cmp ecx, 1
jne 0x14005ea62
mov ecx, dword [rax + 8]
inc ecx
cmp ecx, dword [rax + 4]
jle 0x14005ea7d
mov ecx, dword [rax + 8]
inc ecx
call fcn.14000fc50
mov edx, eax
lea rcx, [rsp + 0x20]
call fcn.140012a40
mov rax, qword [rsp + 0x20]
movsxd rdx, dword [rax + 8]
mov rcx, qword [rax + 0x10]
mov word [rcx + rdx*2], r13w
mov rax, qword [rsp + 0x20]
inc dword [rax + 8]
mov rax, qword [rsp + 0x20]
movsxd rdx, dword [rax + 8]
mov rcx, qword [rax + 0x10]
mov word [rcx + rdx*2], r14w
mov rax, qword [r12]
lea r9, [rsp + 0x38]
xor r8d, r8d
xor edx, edx
mov ecx, dword [rax + 4]
call fcn.14005a5b0
mov r8d, 0xa
mov edx, dword [rsp + 0x38]
lea rcx, [rbp - 0x68]
call fcn.140015850
nop
mov rdx, rax
lea rcx, [rsp + 0x20]
call fcn.140012c50
nop
mov rax, qword [rbp - 0x68]
lock dec dword [rax]
jne 0x14005ec3d
mov rcx, qword [rbp - 0x68]
jmp 0x14005ec38
mul ecx
mov eax, ecx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 2
imul eax, eax, 7
sub ecx, eax
lea edx, [rcx + 1]
lea rcx, [rsp + 0x78]
call fcn.14005ac00
nop
mov rdx, rax
lea rcx, [rsp + 0x20]
call fcn.140012be0
nop
mov rax, qword [rsp + 0x78]
lock dec dword [rax]
jne 0x14005eb34
mov rcx, qword [rsp + 0x78]
call fcn.140012a00
mov rax, qword [rsp + 0x20]
mov ecx, dword [rax]
mov rax, qword [rsp + 0x20]
cmp ecx, 1
jne 0x14005eb4f
mov ecx, dword [rax + 8]
inc ecx
cmp ecx, dword [rax + 4]
jle 0x14005eb6a
mov ecx, dword [rax + 8]
inc ecx
call fcn.14000fc50
mov edx, eax
lea rcx, [rsp + 0x20]
call fcn.140012a40
mov rax, qword [rsp + 0x20]
movsxd rdx, dword [rax + 8]
mov rcx, qword [rax + 0x10]
mov r13d, 0x20
mov word [rcx + rdx*2], r13w
mov rax, qword [rsp + 0x20]
inc dword [rax + 8]
mov rax, qword [rsp + 0x20]
movsxd rdx, dword [rax + 8]
mov rcx, qword [rax + 0x10]
mov word [rcx + rdx*2], r14w
mov rax, qword [r12]
lea r9, [rsp + 0x2c]
xor r8d, r8d
xor edx, edx
mov ecx, dword [rax + 4]
call fcn.14005a5b0
lea r8d, [r13 - 0x16]
mov edx, dword [rsp + 0x2c]
lea rcx, [rbp - 0x70]
call fcn.140015850
nop
mov rdx, rax
lea rcx, [rsp + 0x20]
call fcn.140012c50
nop
mov rax, qword [rbp - 0x70]
lock dec dword [rax]
jne 0x14005ebdf
mov rcx, qword [rbp - 0x70]
call fcn.140012a00
lea rax, [0x14158eb58]
mov qword [rbp - 0x58], rax
lea rdx, [rbp - 0x58]
lea rcx, [rsp + 0x20]
call fcn.140012d20
mov r11, qword [r12]
xor r9d, r9d
lea r8, [rsp + 0x3c]
xor edx, edx
mov ecx, dword [r11 + 4]
call fcn.14005a5b0
mov edx, dword [rsp + 0x3c]
lea rcx, [rbp - 0x78]
call fcn.14005abd0
nop
mov rdx, rax
lea rcx, [rsp + 0x20]
call fcn.140012c50
nop
mov rax, qword [rbp - 0x78]
lock dec dword [rax]
jne 0x14005ec3d
mov rcx, qword [rbp - 0x78]
call fcn.140012a00
mov rax, qword [rsp + 0x20]
mov ecx, dword [rax]
mov rax, qword [rsp + 0x20]
cmp ecx, 1
jne 0x14005ec58
mov ecx, dword [rax + 8]
inc ecx
cmp ecx, dword [rax + 4]
jle 0x14005ec73
mov ecx, dword [rax + 8]
inc ecx
call fcn.14000fc50
mov edx, eax
lea rcx, [rsp + 0x20]
call fcn.140012a40
mov rax, qword [rsp + 0x20]
movsxd rdx, dword [rax + 8]
mov rcx, qword [rax + 0x10]
mov word [rcx + rdx*2], r13w
mov rax, qword [rsp + 0x20]
inc dword [rax + 8]
mov rax, qword [rsp + 0x20]
movsxd rdx, dword [rax + 8]
mov rcx, qword [rax + 0x10]
mov word [rcx + rdx*2], r14w
mov rcx, qword [r12]
add rcx, 8
xor r8d, r8d
lea rdx, [rsp + 0x50]
call fcn.14005b4b0
nop
mov rdx, rax
lea rcx, [rsp + 0x20]
call fcn.140012c50
nop
mov rax, qword [rsp + 0x50]
lock dec dword [rax]
jne 0x14005ecd2
mov rcx, qword [rsp + 0x50]
call fcn.140012a00
mov rax, qword [rsp + 0x20]
mov ecx, dword [rax]
mov rax, qword [rsp + 0x20]
cmp ecx, 1
jne 0x14005eced
mov ecx, dword [rax + 8]
inc ecx
cmp ecx, dword [rax + 4]
jle 0x14005ed08
mov ecx, dword [rax + 8]
inc ecx
call fcn.14000fc50
mov edx, eax
lea rcx, [rsp + 0x20]
call fcn.140012a40
mov rax, qword [rsp + 0x20]
movsxd rdx, dword [rax + 8]
mov rcx, qword [rax + 0x10]
mov word [rcx + rdx*2], r13w
mov rax, qword [rsp + 0x20]
inc dword [rax + 8]
mov rax, qword [rsp + 0x20]
movsxd rdx, dword [rax + 8]
mov rcx, qword [rax + 0x10]
mov word [rcx + rdx*2], r14w
mov rax, qword [r12]
xor r9d, r9d
xor r8d, r8d
lea rdx, [rsp + 0x30]
mov ecx, dword [rax + 4]
call fcn.14005a5b0
mov r8d, 0xa
mov edx, dword [rsp + 0x30]
lea rcx, [rsp + 0x60]
call fcn.140015850
nop
mov rdx, rax
lea rcx, [rsp + 0x20]
call fcn.140012c50
nop
mov rax, qword [rsp + 0x60]
lock dec dword [rax]
jne 0x14005ed7e
mov rcx, qword [rsp + 0x60]
call fcn.140012a00
nop
mov rax, qword [rsp + 0x40]
lock dec dword [rax]
jne 0x14005ee7f
mov rcx, qword [rsp + 0x40]
jmp 0x14005ee7a
add rcx, 4
lea rdx, [rsp + 0x70]
call fcn.14005e160
nop
mov rdx, rax
lea rcx, [rsp + 0x20]
call fcn.140012be0
nop
mov rcx, qword [rsp + 0x70]
or ebx, 0xffffffff
lock dec dword [rcx]
jne 0x14005edca
mov rcx, qword [rsp + 0x70]
call fcn.140012a00
mov rax, qword [rsp + 0x20]
cmp dword [rax + 8], 0
jne 0x14005edec
mov qword [rdi], r13
lock inc dword [0x1415d9378]
mov dword [rsp + 0x28], 1
jmp 0x14005eeb2
mov ecx, dword [rax]
cmp ecx, 1
jne 0x14005ee02
mov edx, dword [rax + 8]
inc edx
mov rcx, qword [rsp + 0x20]
cmp edx, dword [rcx + 4]
jle 0x14005ee1d
mov ecx, dword [rax + 8]
inc ecx
call fcn.14000fc50
mov edx, eax
lea rcx, [rsp + 0x20]
call fcn.140012a40
mov rcx, qword [rsp + 0x20]
movsxd rdx, dword [rcx + 8]
mov rax, qword [rcx + 0x10]
mov r13d, 0x20
mov word [rax + rdx*2], r13w
mov rax, qword [rsp + 0x20]
inc dword [rax + 8]
mov rax, qword [rsp + 0x20]
movsxd rdx, dword [rax + 8]
mov rcx, qword [rax + 0x10]
mov word [rcx + rdx*2], r14w
mov rcx, qword [r12]
add rcx, 8
mov r8d, esi
lea rdx, [rbp - 0x80]
call fcn.14005b4b0
nop
mov rdx, rax
lea rcx, [rsp + 0x20]
call fcn.140012c50
nop
mov rax, qword [rbp - 0x80]
lock dec dword [rax]
jne 0x14005ee7f
mov rcx, qword [rbp - 0x80]
call fcn.140012a00
mov rax, qword [rsp + 0x20]
mov qword [rdi], rax
lock inc dword [rax]
mov dword [rsp + 0x28], 1
mov rax, qword [rsp + 0x20]
lock xadd dword [rax], ebx
dec ebx
jmp 0x14005eeba
mov rax, qword [rsp + 0x20]
mov qword [rdx], rax
lock inc dword [rax]
mov dword [rsp + 0x28], 1
mov rax, qword [rsp + 0x20]
lock dec dword [rax]
jne 0x14005eec6
mov rcx, qword [rsp + 0x20]
call fcn.140012a00
mov rax, rdi
mov rcx, qword [rbp + 0x1c0]
xor rcx, rsp
call fcn.1400af490
add rsp, 0x2d0
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret