Function at 0x42d370
Capabilities:
Get geographical location

Disassembly:
push rbp
push r13
push rdi
push rsi
push rbx
sub rsp, 0x290
mov rbp, rsp
mov qword [rbp + 0x40], rcx
mov dword [rbp + 0x3c], edx
mov qword [rbp + 0x58], r8
mov dword [rbp + 0x38], r9d
mov qword [rbp + 0x98], 0
nop
mov eax, 0x20
mov dword [rbp + 0x4c], eax
mov ecx, 0x40
call fcn.00405270
mov qword [rbp + 0x100], rax
cmp qword [rbp + 0x100], 0
je 0x42d76d
mov rax, qword [rbp + 0x58]
mov rcx, rax
mov qword [rbp + 0x50], rcx
mov r13, rax
mov ebx, 1
mov rax, qword [rbp + 0x40]
test rax, rax
jne 0x42d402
lea rcx, [rbp + 0x24c]
call sub.kernel32.dll_GetSystemTime
lea rcx, [rbp + 0x24c]
lea rdx, [rbp + 0x25c]
call sub.kernel32.dll_SystemTimeToFileTime
jmp 0x42d429
lea rdi, [rbp + 0x26c]
mov rsi, qword [rbp + 0x40]
movsq qword [rdi], qword [rsi]
movsq qword [rdi], qword [rsi]
movsq qword [rdi], qword [rsi]
movsq qword [rdi], qword [rsi]
movsd dword [rdi], dword [rsi]
lea rcx, [rbp + 0x26c]
lea rdx, [rbp + 0x25c]
call fcn.0042e830
mov rax, qword [rbp + 0x25c]
mov qword [rbp + 0xf8], rax
lea rcx, [rbp + 0xf8]
lea rdx, [rbp + 0x264]
call sub.kernel32.dll_FileTimeToLocalFileTime
mov rax, qword [rbp + 0x264]
mov qword [rbp + 0xf0], rax
lea rcx, [rbp + 0xf0]
lea rdx, [rbp + 0x24c]
call sub.kernel32.dll_FileTimeToSystemTime
mov rax, qword [0x004895e8]
cmp byte [rax], 0
jne 0x42d562
movzx ecx, word [rbp + 0x24e]
movzx r8d, word [rbp + 0x252]
movzx eax, word [rbp + 0x24c]
mov edx, dword [rbp + 0x3c]
test edx, edx
jne 0x42d4ae
movzx eax, word [rbp + 0x24c]
mov r9d, 0x64
xor edx, edx
div r9d
mov rax, rdx
cmp dword [0x0049a4a4], 2
jne 0x42d4ca
mov ecx, eax
movzx eax, word [rbp + 0x252]
movzx r8d, word [rbp + 0x24e]
jmp 0x42d4e2
cmp dword [0x0049a4a4], 1
jne 0x42d4e2
movzx ecx, word [rbp + 0x252]
movzx r8d, word [rbp + 0x24e]
mov dword [rbp + 0xa0], ecx
mov byte [rbp + 0xa8], 0
lea rcx, [0x0049a484]
mov qword [rbp + 0xb0], rcx
mov byte [rbp + 0xb8], 0xa
mov dword [rbp + 0xc0], r8d
mov byte [rbp + 0xc8], 0
lea rcx, [0x0049a484]
mov qword [rbp + 0xd0], rcx
mov byte [rbp + 0xd8], 0xa
mov dword [rbp + 0xe0], eax
mov byte [rbp + 0xe8], 0
mov rcx, qword [rbp + 0x100]
mov edx, dword [rbp + 0x4c]
lea r8, [0x0042d978]
lea r9, [rbp + 0xa0]
mov dword [rsp + 0x20], 4
call fcn.00429e10
mov qword [rbp + 0x50], r13
jmp 0x42d7fc
xor rsi, rsi
call sub.kernel32.dll_GetUserDefaultLCID
mov ecx, eax
mov edx, 0x1f
lea r8, [rbp + 0x14a]
mov r9d, 0x80
call sub.kernel32.dll_GetLocaleInfoW_1
test eax, eax
jne 0x42d5a3
lea rcx, [rbp + 0x14a]
lea rdx, [0x0049a5c0]
mov r8d, 0x80
call fcn.00429c40
lea rdi, [rbp + 0x14a]
lea rax, [rbp + 0x14a]
test rax, rax
je 0x42d6d4
movzx rax, word [rdi]
cmp word [rdi], 0x27
jne 0x42d5db
test esi, esi
sete al
test al, al
setne al
movzx rax, al
neg eax
mov esi, eax
jmp 0x42d6c1
test esi, esi
jne 0x42d6c1
cmp ax, 0x64
je 0x42d5f3
cmp ax, 0x4d
jne 0x42d6c1
xor rcx, rcx
add ecx, 1
add rdi, 2
cmp word [rdi], ax
je 0x42d5f6
mov edx, ecx
movsxd r8, ecx
add r8, r8
neg r8
lea rdi, [rdi + r8]
cmp ecx, 1
jne 0x42d657
mov rax, rdi
movzx rcx, word [rax]
add rax, 2
test cx, cx
jne 0x42d619
mov rcx, rdi
lea r8, [rdi + 2]
mov rdx, rdi
neg rdx
lea rax, [rax + rdx]
mov r9d, 2
cqo
idiv r9
add rax, rax
mov rdx, r8
mov r8, rax
call fcn.00405640
lea rdi, [rdi + 4]
jmp 0x42d6c5
cmp ax, 0x64
jne 0x42d660
xor rbx, rbx
cmp ecx, 3
jg 0x42d66e
movsxd rdx, edx
lea rdi, [rdi + rdx*2]
jmp 0x42d6c5
movsxd rax, edx
lea rax, [rdi + rax*2]
movsxd rdx, edx
lea rcx, [rdi + rdx*2]
lea rdx, [rcx + 2]
movzx r8, word [rcx]
add rcx, 2
test r8w, r8w
jne 0x42d680
lea rdi, [rdi + 6]
mov r8, rax
mov r9, rdi
neg rdx
lea rax, [rcx + rdx]
mov ecx, 2
cqo
idiv rcx
lea rax, [rax + 2]
add rax, rax
mov rcx, r8
mov rdx, r9
mov r8, rax
call fcn.00405640
jmp 0x42d6c5
add rdi, 2
cmp word [rdi], 0
jne 0x42d5ba
mov qword [rbp + 0x50], r13
nop
mov esi, dword [rbp + 0x4c]
mov rdi, qword [rbp + 0x100]
call sub.kernel32.dll_GetUserDefaultLCID
mov ecx, eax
xor rdx, rdx
lea r8, [rbp + 0x24c]
lea r9, [rbp + 0x14a]
mov qword [rsp + 0x20], rdi
mov dword [rsp + 0x28], esi
call sub.kernel32.dll_GetDateFormatW
test eax, eax
je 0x42d716
cmp qword [rbp + 0x100], 0
jne 0x42d7fc
call sub.kernel32.dll_GetUserDefaultLCID
mov ecx, eax
xor rdx, rdx
lea r8, [rbp + 0x24c]
lea r9, [rbp + 0x14a]
mov qword [rsp + 0x20], 0
mov dword [rsp + 0x28], 0
call sub.kernel32.dll_GetDateFormatW
test eax, eax
je 0x42d7a6
mov esi, eax
add esi, 1
lea rcx, [rbp + 0x100]
mov edx, eax
add edx, 1
add edx, edx
movsxd rdx, edx
call fcn.004052d0
cmp qword [rbp + 0x100], 0
je 0x42d775
mov eax, 8
jmp 0x42d7bd
mov rdi, qword [rbp + 0x100]
call sub.kernel32.dll_GetUserDefaultLCID
mov ecx, eax
xor rdx, rdx
lea r8, [rbp + 0x24c]
lea r9, [rbp + 0x14a]
mov qword [rsp + 0x20], rdi
mov dword [rsp + 0x28], esi
call sub.kernel32.dll_GetDateFormatW
test eax, eax
jne 0x42d7fc
call sub.kernel32.dll_GetLastError_2
mov rcx, qword [0x00489ad8]
mov dword [rcx], eax
mov rax, qword [0x00489ad8]
mov eax, dword [rax]
lea rcx, [rbp + 0x98]
mov edx, eax
call fcn.00424120
mov rcx, qword [rbp + 0x98]
xor rdx, rdx
lea r8, [rbp + 0x98]
or r9d, 0xffffffff
call fcn.0043cde0
mov rcx, qword [rbp + 0x100]
call fcn.004052a0
xor rax, rax
mov dword [rbp + 0x64], eax
jmp 0x42d930
movzx ecx, word [rbp + 0x250]
call fcn.0043d9a0
lea rcx, [rbp + 0x108]
mov rdx, rax
mov r8d, 0x20
call fcn.00429c40
mov rax, qword [rbp + 0x50]
test rax, rax
je 0x42d8b7
test ebx, ebx
je 0x42d876
mov eax, dword [rbp + 0x3c]
cmp eax, 1
jne 0x42d876
mov rcx, qword [rbp + 0x50]
lea rdx, [rbp + 0x108]
mov r8d, dword [rbp + 0x38]
call fcn.00429c40
mov rcx, qword [rbp + 0x50]
mov edx, dword [rbp + 0x38]
lea r8, [0x0042d99a]
call fcn.0042d330
mov rax, qword [rbp + 0x100]
mov rcx, qword [rbp + 0x50]
mov edx, dword [rbp + 0x38]
mov r8, rax
call fcn.0042d330
jmp 0x42d88a
mov rcx, qword [rbp + 0x50]
mov rdx, qword [rbp + 0x100]
mov r8d, dword [rbp + 0x38]
call fcn.00429c40
mov rax, qword [rbp + 0x50]
movzx rcx, word [rax]
add rax, 2
test cx, cx
jne 0x42d88e
mov rcx, qword [rbp + 0x50]
neg rcx
lea rax, [rax + rcx - 2]
mov ecx, 2
cqo
idiv rcx
mov dword [rbp + 0x64], eax
jmp 0x42d923
test ebx, ebx
je 0x42d8fe
mov rcx, qword [rbp + 0x100]
lea rax, [rbp + 0x108]
mov qword [rbp + 0x78], rax
mov byte [rbp + 0x80], 0xa
mov qword [rbp + 0x88], rcx
mov byte [rbp + 0x90], 0xa
lea rcx, [0x0042d99e]
lea rdx, [rbp + 0x78]
mov r8d, 1
call fcn.004354a0
mov dword [rbp + 0x64], eax
jmp 0x42d923
mov rax, qword [rbp + 0x100]
mov qword [rbp + 0x68], rax
mov byte [rbp + 0x70], 0xa
lea rcx, [0x0042d9ac]
lea rdx, [rbp + 0x68]
xor r8, r8
call fcn.004354a0
mov dword [rbp + 0x64], eax
mov rcx, qword [rbp + 0x100]
call fcn.004052a0
nop
lea rcx, [rbp + 0x98]
call fcn.0040a270
mov eax, dword [rbp + 0x64]
lea rsp, [rbp + 0x290]
pop rbx
pop rsi
pop rdi
pop r13
pop rbp
ret