Function at 0x140054460
Capabilities:
Get geographical location

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x770]
sub rsp, 0x870
mov rax, qword [0x1402a83b0]
xor rax, rsp
mov qword [rbp + 0x760], rax
mov eax, dword [rbp + 0x7d0]
mov r13, qword [rbp + 0x7d8]
mov rbx, qword [rbp + 0x7e0]
mov dword [rsp + 0x38], eax
lea eax, [rcx - 0x3bb]
mov r12d, edx
xor edx, edx
or r14, 0xffffffffffffffff
mov rsi, r9
mov edi, r8d
mov r15d, ecx
mov dword [rsp + 0x30], ecx
mov byte [r9], 0
mov qword [rsp + 0x40], rdx
test eax, 0xffffffee
jne 0x1400545a1
cmp ecx, 0x3bc
je 0x1400545a1
mov rcx, rbx
call fcn.140055990
test rax, rax
je case.0x14005475d.914
lea r9, [rsp + 0x78]
lea r8, [rbp - 0x10]
lea rdx, [rbp - 0x50]
mov rcx, rax
call fcn.14003c900
test eax, eax
je case.0x14005475d.914
cmp r15d, 0x3bb
jne 0x140054522
lea rcx, [rsp + 0x78]
jmp 0x140054535
lea rcx, [rbp - 0x10]
lea rax, [rbp - 0x50]
cmp r15d, 0x3cc
cmovne rcx, rax
cmp dword [rcx + 0x14], 0
je case.0x14005475d.914
movzx eax, word [rcx + 0xc]
mov r9d, dword [rbx + 0x30]
mov edx, 0x76c
mov word [rsp + 0x4e], ax
movzx eax, word [rcx + 0x18]
mov r8, r13
mov word [rsp + 0x4c], ax
movzx eax, word [rcx + 0x10]
inc ax
mov word [rsp + 0x4a], ax
movzx eax, word [rcx + 0x14]
add ax, dx
lea rdx, [rsp + 0x48]
mov word [rsp + 0x48], ax
movzx eax, word [rcx + 8]
mov word [rsp + 0x50], ax
movzx eax, word [rcx + 4]
mov word [rsp + 0x52], ax
movzx eax, word [rcx]
mov rcx, rsi
mov word [rsp + 0x54], ax
call fcn.140055360
jmp case.0x14005475d.914
lea eax, [rcx - 0x3b6]
cmp eax, 0x4b
ja 0x14005463d
mov rcx, rbx
call fcn.140055990
test rax, rax
je case.0x14005475d.914
mov edx, 0x1f
test edi, edi
mov r8d, r12d
cmovne edx, edi
mov rcx, rax
call fcn.14003dfa0
mov rdi, rax
test rax, rax
je case.0x14005475d.914
movsxd r12, dword [rsp + 0x38]
mov rdx, rax
mov rcx, rsi
mov r8, r12
call fcn.1401beb90
mov rcx, rdi
mov byte [rsi + r12 - 1], 0
call fcn.1401be23c
lea eax, [r12 - 2]
movsxd rcx, eax
test eax, eax
js case.0x14005475d.914
mov rdx, rsi
add rcx, rsi
neg rdx
nop dword [rax]
test byte [rcx], 0xdf
jne case.0x14005475d.914
mov byte [rcx], 0
dec rcx
lea rax, [rdx + rcx]
test rax, rax
jns 0x140054620
jmp case.0x14005475d.914
lea eax, [rcx - 0x406]
cmp eax, 0x1b
ja 0x14005473a
mov rcx, rbx
call fcn.140055990
test rax, rax
je case.0x14005475d.914
xor r8d, r8d
movzx edx, r12w
mov rcx, rax
call fcn.1400451f0
mov rdi, rax
test rax, rax
je case.0x14005475d.914
cmp dword [rbx + 0x30], 0
je 0x140054714
xor ecx, ecx
mov rax, r14
mov r15d, ecx
nop word [rax + rax]
inc rax
cmp byte [rdi + rax], cl
jne 0x140054690
test rax, rax
je 0x14005470f
mov r12, rdi
mov rdx, rcx
mov rbx, rdi
neg r12
nop dword [rax]
cmp byte [rbx], 0xd
lea rax, [r12 + rbx]
jne 0x1400546eb
cmp byte [rax + rdi + 1], 0xa
jne 0x1400546f2
lea rcx, [rdi + rdx]
mov r8, r14
nop word [rax + rax]
inc r8
cmp byte [rdi + r8], 0
jne 0x1400546d0
sub r8, rdx
lea rdx, [rcx + 1]
dec r8
call fcn.1401beb90
jmp 0x1400546f2
cmp byte [rax + rdi + 1], 0xa
jne 0x1400546f5
mov byte [rbx], 0x5f
inc r15d
mov rax, r14
inc rbx
movsxd rdx, r15d
inc rax
cmp byte [rdi + rax], 0
jne 0x140054701
cmp rdx, rax
jb 0x1400546b0
mov r15d, dword [rsp + 0x30]
movsxd r12, dword [rsp + 0x38]
mov rdx, rdi
mov rcx, rsi
mov r8, r12
call fcn.1401beb90
mov rcx, rdi
mov byte [rsi + r12 - 1], 0
call fcn.1401be23c
jmp case.0x14005475d.914
lea eax, [rcx - 0x385]
cmp eax, 0x26
ja case.0x14005475d.914
lea r8, [0x140000000]
cdqe
mov ecx, dword [r8 + rax*4 + 0x550e8]
add rcx, r8
jmp rcx
lea rcx, [rbx + 0x60]
lea r8, [rbp + 0x30]
lea rdx, [rbp + 0x240]
call fcn.14004fa30
lea rax, [rbp + 0x30]
mov rdx, rsi
sub rdx, rax
lea rcx, [rbp + 0x30]
movzx eax, byte [rcx]
lea rcx, [rcx + 1]
mov byte [rdx + rcx - 1], al
test al, al
jne 0x140054781
jmp case.0x14005475d.914
lea rcx, [rbx + 0x60]
lea r8, [rbp + 0x30]
lea rdx, [rbp + 0x240]
call fcn.14004fa30
test dword [rbx], 0x800
jne 0x1400547eb
movzx eax, byte [rbp + 0x30]
cmp al, byte [0x1401fc6c8]
jne 0x1400547d5
movzx eax, byte [rbp + 0x31]
cmp al, byte [0x1401fc6c9]
jne 0x1400547d5
movzx eax, byte [rbp + 0x32]
cmp al, byte [0x1401fc6ca]
je 0x1400547eb
lea rcx, [rbp + 0x30]
mov edx, 0x2e
call fcn.1401c2968
test rax, rax
je 0x1400547eb
mov byte [rax], 0
lea rax, [rbp + 0x30]
mov rdx, rsi
lea rcx, [rbp + 0x30]
sub rdx, rax
nop dword [rax]
movzx eax, byte [rcx]
lea rcx, [rcx + 1]
mov byte [rdx + rcx - 1], al
test al, al
jne 0x140054800
jmp case.0x14005475d.914
lea rcx, [rbx + 0x60]
lea r8, [rbp + 0x30]
lea rdx, [rbp + 0x240]
call fcn.14004fa30
test dword [rbx], 0x800
jne 0x14005486a
movzx eax, byte [rbp + 0x30]
cmp al, byte [0x1401fc6c8]
jne 0x140054854
movzx eax, byte [rbp + 0x31]
cmp al, byte [0x1401fc6c9]
jne 0x140054854
movzx eax, byte [rbp + 0x32]
cmp al, byte [0x1401fc6ca]
je 0x14005486a
lea rcx, [rbp + 0x30]
mov edx, 0x2e
call fcn.1401c2968
test rax, rax
je 0x14005486a
mov byte [rax], 0
lea rdx, [rbp + 0x650]
lea rcx, [rbp + 0x30]
mov r8, rsi
call fcn.140053f90
jmp case.0x14005475d.914
lea rcx, [rbx + 0x60]
lea r8, [rbp + 0x30]
lea rdx, [rbp + 0x240]
call fcn.14004fa30
lea rax, [rbp + 0x240]
mov rdx, rsi
sub rdx, rax
lea rcx, [rbp + 0x240]
nop word [rax + rax]
movzx eax, byte [rcx]
lea rcx, [rcx + 1]
mov byte [rdx + rcx - 1], al
test al, al
jne 0x1400548b0
jmp case.0x14005475d.914
lea rcx, [rbx + 0x60]
lea r8, [rbp + 0x30]
lea rdx, [rbp + 0x240]
call fcn.14004fa30
lea rcx, [rbp + 0x240]
mov rax, r14
inc rax
cmp byte [rcx + rax], 0
jne 0x1400548e2
cmp byte [rbp + rax + 0x23f], 0x5c
jne 0x14005490c
dec rax
cmp rax, 0x208
jae 0x1400550e1
mov byte [rbp + rax + 0x240], 0
lea rcx, [rbp + 0x240]
mov edx, 0x5c
call fcn.1401c2968
test rax, rax
je case.0x14005475d.914
lea rcx, [rax + 1]
mov rdx, rsi
sub rdx, rcx
movzx eax, byte [rcx]
lea rcx, [rcx + 1]
mov byte [rdx + rcx - 1], al
test al, al
jne 0x140054930
jmp case.0x14005475d.914
lea rcx, [rbx + 0x60]
lea r8, [rbp + 0x30]
lea rdx, [rbp + 0x240]
call fcn.14004fa30
lea rcx, [rbp + 0x30]
mov edx, 0x2e
call fcn.1401c2968
test rax, rax
je case.0x14005475d.914
lea rcx, [rax + 1]
mov rdx, rsi
sub rdx, rcx
nop dword [rax]
movzx eax, byte [rcx]
lea rcx, [rcx + 1]
mov byte [rdx + rcx - 1], al
test al, al
jne 0x140054980
mov rcx, rsi
call fcn.1401eb9a8
jmp case.0x14005475d.914
mov rcx, rbx
call fcn.1400557e0
lea r8, [rbp - 0x50]
lea rdx, [rbp - 0x10]
mov rcx, rax
call fcn.14004a220
lea r9, [rbp - 0x50]
lea r8, [rbp - 0x10]
lea rdx, str._s__s
mov rcx, rsi
call fcn.1401bea4c
jmp case.0x14005475d.914
xor eax, eax
mov rcx, rbx
mov dword [rbp - 0x50], edx
mov qword [rbp - 0x4c], rax
mov qword [rbp - 0x44], rax
mov qword [rbp - 0x3c], rax
mov qword [rbp - 0x34], rax
mov dword [rbp - 0x2c], eax
mov byte [rsp + 0x30], al
mov word [rsp + 0x31], ax
mov byte [rsp + 0x38], al
mov word [rsp + 0x39], ax
mov byte [rbp - 0x60], al
mov dword [rbp - 0x5f], eax
mov byte [rsp + 0x48], al
mov dword [rsp + 0x49], eax
call fcn.1400557e0
mov rbx, rax
cmp r15d, 0x38e
jne 0x140054a32
add rax, 0x3ff
cqo
and edx, 0x3ff
lea rbx, [rdx + rax]
sar rbx, 0xa
mov r9d, 3
lea r8, [rsp + 0x30]
mov ecx, 0x400
lea edx, [r9 + 0xf]
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
lea rcx, [rsp + 0x30]
call fcn.1401bee6c
lea r8, [rsp + 0x38]
mov r9d, 3
mov edx, 0x1010
mov ecx, 0x400
mov dword [rbp - 0x4c], eax
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
lea rcx, [rsp + 0x38]
call fcn.1401bee6c
mov r9d, 5
lea r8, [rbp - 0x60]
lea edx, [r9 + 0xa]
mov ecx, 0x400
mov dword [rbp - 0x48], 3
mov dword [rbp - 0x30], eax
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
mov r9d, 5
lea rax, [rbp - 0x60]
lea r8, [rsp + 0x48]
lea edx, [r9 + 9]
mov ecx, 0x400
mov qword [rbp - 0x38], rax
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
xor ecx, ecx
lea rax, [rsp + 0x48]
mov dword [rbp - 0x50], ecx
lea rdx, str._I64d
lea rcx, [rbp + 0x450]
mov r8, rbx
mov qword [rbp - 0x40], rax
call fcn.1401bea4c
lea rax, [rbp + 0x550]
lea r9, [rbp - 0x50]
lea r8, [rbp + 0x450]
xor edx, edx
mov ecx, 0x400
mov dword [rsp + 0x28], 0x100
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_GetNumberFormatA]
lea r8, [rbp + 0x550]
lea rdx, [0x1401f84bc]
mov rcx, rsi
call fcn.1401bea4c
jmp case.0x14005475d.914
mov rdx, r9
mov rcx, rbx
call fcn.1400556c0
jmp case.0x14005475d.914
mov r8d, dword [rbx + 0x20]
test r8d, r8d
js case.0x14005475d.914
mov r9d, dword [rbx + 0x24]
test r9d, r9d
jle case.0x14005475d.914
lea rdx, str._d__d
inc r8d
mov rcx, rsi
call fcn.1401bea4c
jmp case.0x14005475d.914
mov r8d, dword [rbx + 0x28]
test r8d, r8d
jle case.0x14005475d.914
lea rdx, [0x1401f6388]
mov rcx, r9
call fcn.1401bea4c
jmp case.0x14005475d.914
lea r9, [rbp - 0x60]
lea r8, [rsp + 0x48]
lea rdx, [rsp + 0x38]
mov rcx, rbx
call fcn.140055890
cmp r15d, 0x38a
jne 0x140054bb6
lea rcx, [rsp + 0x48]
jmp 0x140054bc8
lea rcx, [rbp - 0x60]
cmp r15d, 0x38c
je 0x140054bc8
lea rcx, [rsp + 0x38]
lea rdx, [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
lea r8, [rsp + 0x68]
lea rdx, [rsp + 0x58]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SystemTimeToTzSpecificLocalTime]
mov r9d, dword [rbx + 0x30]
lea rdx, [rsp + 0x68]
mov r8, r13
mov rcx, rsi
call fcn.140055360
jmp case.0x14005475d.914
lea rcx, [rsp + 0x68]
call qword [sym.imp.KERNEL32.dll_GetLocalTime]
jmp 0x140054be5
test dword [rbx], 0x1000
mov eax, 0x5d205b
mov ecx, 0x5d585b
cmovne eax, ecx
mov dword [r9], eax
jmp case.0x14005475d.914
mov rcx, rbx
call fcn.1400557a0
test eax, eax
je case.0x14005475d.914
and eax, 0xf
lea rdx, [0x1401f6388]
mov r8d, eax
mov rcx, rsi
call fcn.1401bea4c
jmp case.0x14005475d.914
mov rcx, rbx
call fcn.1400556f0
jmp 0x140054c2e
mov rcx, rbx
call fcn.140055760
test rax, rax
je case.0x14005475d.914
lea rcx, [rax + 0x38]
mov rdx, rsi
sub rdx, rcx
nop word [rax + rax]
movzx eax, byte [rcx]
lea rcx, [rcx + 1]
mov byte [rdx + rcx - 1], al
test al, al
jne 0x140054c80
jmp case.0x14005475d.914
mov rcx, rbx
call fcn.140055760
test rax, rax
je case.0x14005475d.914
mov r8d, dword [rax + 0xc]
lea rdx, [0x1401f6388]
mov rcx, rsi
call fcn.1401bea4c
jmp case.0x14005475d.914
mov rcx, rbx
call fcn.140055760
test rax, rax
je case.0x14005475d.914
mov r8d, dword [rax + 0x10]
lea rdx, [0x1401f6388]
mov rcx, rsi
call fcn.1401bea4c
jmp case.0x14005475d.914
mov rcx, rbx
call fcn.140055760
test rax, rax
je case.0x14005475d.914
movzx r8d, word [rax + 0x16]
movzx eax, word [rax + 0x14]
lea rdx, [0x1401f6388]
imul r8d, eax
mov rcx, rsi
call fcn.1401bea4c
jmp case.0x14005475d.914
mov rcx, rbx
call fcn.140055760
test rax, rax
je case.0x14005475d.914
movzx eax, word [rax + 0x20]
movsx ecx, ax
test ax, ax
jne 0x140054d3a
mov ecx, 0x48
mov r8d, ecx
lea rdx, [0x1401f6388]
mov rcx, rsi
call fcn.1401bea4c
jmp case.0x14005475d.914
mov rcx, rbx
call fcn.140055760
test rax, rax
je case.0x14005475d.914
movzx ecx, word [rax + 0x20]
test cx, cx
movsx ecx, cx
jne 0x140054d73
mov ecx, 0x48
mov eax, dword [rax + 0xc]
cdq
idiv ecx
jmp 0x140054c39
mov rcx, rbx
call fcn.140055760
test rax, rax
je case.0x14005475d.914
movzx ecx, word [rax + 0x22]
test cx, cx
movsx ecx, cx
jne 0x140054da0
mov ecx, 0x48
mov eax, dword [rax + 0x10]
cdq
idiv ecx
jmp 0x140054c39
mov rcx, rbx
call fcn.140055760
test rax, rax
je case.0x14005475d.914
movzx ecx, word [rax + 0x20]
test cx, cx
movsx ecx, cx
jne 0x140054dcd
mov ecx, 0x48
movd xmm2, dword [rax + 0xc]
movd xmm0, ecx
lea rdx, str._.2lf
mov rcx, rsi
cvtdq2pd xmm2, xmm2
cvtdq2pd xmm0, xmm0
mulsd xmm2, qword [0x1401f6cb0]
divsd xmm2, xmm0
movq r8, xmm2
call fcn.1401bea4c
jmp case.0x14005475d.914
mov rcx, rbx
call fcn.140055760
test rax, rax
je case.0x14005475d.914
movzx ecx, word [rax + 0x22]
test cx, cx
movsx ecx, cx
jne 0x140054e25
mov ecx, 0x48
movd xmm2, dword [rax + 0x10]
movd xmm0, ecx
lea rdx, str._.2lf
mov rcx, rsi
cvtdq2pd xmm2, xmm2
cvtdq2pd xmm0, xmm0
mulsd xmm2, qword [0x1401f6cb0]
divsd xmm2, xmm0
movq r8, xmm2
call fcn.1401bea4c
jmp case.0x14005475d.914
mov rcx, rbx
call fcn.140055760
mov rdi, rax
test rax, rax
je case.0x14005475d.914
mov rcx, rbx
call fcn.1400557e0
movzx ecx, word [0x1401f7d7c]
mov r9d, dword [rdi + 0x10]
mov r8d, dword [rdi + 0xc]
mov word [rbp - 0x50], cx
movzx ecx, byte [0x1401f7d7e]
add rax, 0x3ff
mov byte [rbp - 0x4e], cl
lea rcx, [rbp - 0x50]
cqo
mov qword [rsp + 0x28], rcx
mov rcx, rsi
and edx, 0x3ff
add rax, rdx
lea rdx, str._dx_d___d__s
sar rax, 0xa
mov qword [rsp + 0x20], rax
call fcn.1401bea4c
jmp case.0x14005475d.914
mov rcx, rbx
call fcn.140055760
test rax, rax
je case.0x14005475d.914
lea rcx, [rax + 0x38]
mov rdx, rsi
sub rdx, rcx
nop word [rax + rax]
movzx eax, byte [rcx]
lea rcx, [rcx + 1]
mov byte [rdx + rcx - 1], al
test al, al
jne 0x140054ef0
jmp case.0x14005475d.914
mov rcx, rbx
call fcn.140055760
test rax, rax
je case.0x14005475d.914
movzx edx, word [rax + 0x16]
movzx ecx, word [rax + 0x14]
mov r9d, dword [rax + 0x10]
imul edx, ecx
mov r8d, dword [rax + 0xc]
mov dword [rsp + 0x20], edx
lea rdx, str._dx_dx_d
mov rcx, rsi
call fcn.1401bea4c
jmp case.0x14005475d.914
mov rcx, rbx
call fcn.140055730
test rax, rax
je case.0x14005475d.914
movsxd r12, dword [rsp + 0x38]
mov rdx, rax
mov rcx, rsi
mov r8, r12
call fcn.1401beb90
mov byte [rsi + r12 - 1], 0
lea eax, [r15 - 0x38a]
cmp eax, 0x31
ja 0x140054f7c
movabs rcx, 0x3000000000007
bt rcx, rax
jb 0x1400550b7
lea eax, [r15 - 0x3cb]
cmp eax, 1
jbe 0x1400550b7
lea eax, [r15 - 0x418]
cmp eax, 1
jbe 0x1400550b7
cmp byte [rsi], 0
je 0x1400550b7
cmp byte [r13], 0
je 0x1400550b7
mov rcx, rsi
call fcn.14005a540
mov rdi, r14
mov r15, rax
nop
inc rdi
cmp byte [rsi + rdi], 0
jne 0x140054fc0
cmp byte [r13], 0x2d
jne 0x140054ff0
lea rcx, [r13 + 1]
call fcn.1401bee6c
dec eax
mov dword [rsp + 0x38], eax
cmp eax, edi
jge 0x140055083
jmp 0x140055081
cmp byte [r13 + r14 + 1], 0
lea r14, [r14 + 1]
jne 0x140054ff0
cmp byte [r14 + r13 - 1], 0x2d
mov rcx, r13
jne 0x14005501e
call fcn.1401bee6c
dec eax
mov dword [rsp + 0x38], eax
js 0x140055083
cmp eax, edi
jge 0x140055083
mov dword [rsp + 0x40], eax
jmp 0x140055083
mov edx, 0x2d
call fcn.1401beaec
mov rcx, r13
test rax, rax
je 0x14005506e
lea r9, [rsp + 0x30]
lea r8, [rsp + 0x38]
lea rdx, [0x1401f6568]
call fcn.1401be96c
mov eax, dword [rsp + 0x38]
mov ecx, dword [rsp + 0x30]
dec eax
dec ecx
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x30], ecx
test eax, eax
js 0x140055083
cmp eax, edi
jge 0x140055083
cmp ecx, edi
jge 0x140055083
mov dword [rsp + 0x40], eax
mov edi, ecx
jmp 0x140055083
call fcn.1401bee6c
dec eax
mov dword [rsp + 0x38], eax
cmp eax, edi
jge 0x140055083
mov dword [rsp + 0x40], eax
mov edi, eax
mov rcx, qword [rsp + 0x40]
mov eax, edi
sub eax, ecx
inc eax
test eax, eax
jle 0x1400550af
movsxd rbx, ecx
movsxd r8, eax
mov rcx, rsi
lea rdx, [rbx + r15]
call fcn.1401beb90
movsxd rax, edi
sub rax, rbx
mov byte [rax + rsi + 1], 0
mov rcx, r15
call fcn.1401be23c
mov rcx, qword [rbp + 0x760]
xor rcx, rsp
call fcn.1401bd600
mov rbx, qword [rsp + 0x8b0]
add rsp, 0x870
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.1401be39c
int3