Function at 0x4096a0
Capabilities:
Get geographical location

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x174
mov eax, dword [0x42d0b4]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, edx
test ecx, ecx
jne 0x420ad0
lea eax, [ebp - 0x158]
push eax
call dword [sym.imp.api_ms_win_core_sysinfo_l1_1_0.dll_GetSystemTime]
lea eax, [ebp - 0x16c]
push eax
lea eax, [ebp - 0x158]
push eax
call dword [sym.imp.api_ms_win_core_timezone_l1_1_0.dll_SystemTimeToFileTime]
lea eax, [ebp - 0x174]
push eax
lea eax, [ebp - 0x16c]
push eax
call dword [sym.imp.api_ms_win_core_file_l1_1_0.dll_FileTimeToLocalFileTime]
lea eax, [ebp - 0x158]
push eax
lea eax, [ebp - 0x174]
push eax
call dword [sym.imp.api_ms_win_core_timezone_l1_1_0.dll_FileTimeToSystemTime]
cmp edi, 1
jne 0x420aed
movzx ecx, word [ebp - 0x14a]
mov eax, 0xcccccccd
mul ecx
movzx eax, word [ebp - 0x14c]
shr edx, 3
push edx
push 0x42f7fc
push eax
movzx eax, word [ebp - 0x14e]
push 0x42f81c
push eax
movzx eax, word [ebp - 0x150]
push 0x42f81c
push eax
push 0x402584
test esi, esi
je 0x420ae0
push dword [ebp + 0xc]
push esi
call fcn.0041274c
add esp, 0x28
lea ecx, [esi + 2]
lea esp, [esp]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x409770
sub esi, ecx
sar esi, 1
mov eax, esi
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00416fd0
mov esp, ebp
pop ebp
ret 8
lea edx, [ebp - 0x16c]
call fcn.00423c49
jmp 0x4096e6
call fcn.004125d9
add esp, 0x20
jmp 0x409781
cmp byte [0x443cc9], 0
je 0x420c53
push 0x80
lea eax, [ebp - 0x148]
mov dword [ebp - 0x15c], 0
push eax
push 0x1003
call fcn.004141a4
push eax
call dword [sym.imp.api_ms_win_core_localization_l1_2_0.dll_GetLocaleInfoW]
test eax, eax
jne 0x420b65
lea ecx, [ebp - 0x148]
mov edi, 0x4037c0
mov eax, ecx
mov edx, 0x80
sub edi, eax
lea eax, [edx + 0x7fffff7e]
test eax, eax
je 0x420b59
movzx eax, word [edi + ecx]
test ax, ax
je 0x420b59
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x420b39
jmp 0x420b5d
test edx, edx
jne 0x420b60
sub ecx, 2
xor eax, eax
mov word [ecx], ax
mov ax, word [ebp - 0x148]
lea edi, [ebp - 0x148]
test ax, ax
je 0x420c27
movzx ebx, ax
xor ecx, ecx
cmp bx, 0x27
jne 0x420b9a
xor eax, eax
add edi, 2
test ecx, ecx
sete al
mov ecx, eax
mov dword [ebp - 0x15c], ecx
jmp 0x420c15
test ecx, ecx
je 0x420ba3
add edi, 2
jmp 0x420c15
cmp bx, 0x68
je 0x420bb5
cmp bx, 0x48
je 0x420bb5
cmp bx, 0x6d
jne 0x420c15
xor ecx, ecx
lea edi, [edi + 2]
inc ecx
cmp word [edi], bx
je 0x420bb7
mov eax, ecx
neg eax
lea edx, [edi + eax*2]
mov dword [ebp - 0x164], edx
lea edi, [edx + 2]
cmp ecx, 1
jne 0x420c0f
mov ecx, edx
lea eax, [ecx + 2]
mov dword [ebp - 0x160], eax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x420be0
sub ecx, dword [ebp - 0x160]
sar ecx, 1
lea eax, [ecx*2 + 2]
push eax
push edx
push edi
call dword [sym.imp.msvcrt.dll_memmove]
mov eax, dword [ebp - 0x164]
add esp, 0xc
mov word [eax], bx
mov ecx, dword [ebp - 0x15c]
movzx eax, word [edi + 2]
add edi, 2
mov ebx, eax
test ax, ax
jne 0x420b80
push 0x20
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x148]
push eax
lea eax, [ebp - 0x158]
push eax
push 2
call fcn.004141a4
push eax
call dword [sym.imp.api_ms_win_core_datetime_l1_1_0.dll_GetTimeFormatW]
test eax, eax
jne 0x420cab
mov word [ebp - 0x48], ax
jmp 0x420cab
cmp dword [0x42d0cc], 0
mov eax, 0x4037d8
movzx ecx, word [ebp - 0x150]
je 0x420c84
cmp ecx, 0xc
jb 0x420c79
jbe 0x420c72
sub ecx, 0xc
mov eax, 0x4037dc
jmp 0x420c89
test ecx, ecx
jne 0x420c89
mov ecx, 0xc
jmp 0x420c89
mov eax, 0x402178
push eax
movzx eax, word [ebp - 0x14e]
push eax
push 0x42f81c
push ecx
push 0x403850
lea eax, [ebp - 0x48]
push 0x20
push eax
call fcn.0041274c
add esp, 0x1c
test esi, esi
jne 0x420cd1
lea edx, [ebp - 0x48]
lea ecx, [edx + 2]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x420cb5
sub edx, ecx
lea ecx, [ebp - 0x48]
sar edx, 1
call fcn.00412616
jmp 0x409781
mov edx, dword [ebp + 0xc]
lea eax, [ebp - 0x48]
push eax
mov ecx, esi
call fcn.00411040
lea ecx, [esi + 2]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x420ce2
jmp 0x40977b