Function at 0x404cc0
Capabilities:
Get geographical location

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x16c
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 0x41835f
lea eax, [ebp - 0x158]
push eax
call dword [sym.imp.api_ms_win_core_sysinfo_l1_2_1.dll_GetSystemTime]
lea eax, [ebp - 0x164]
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 - 0x16c]
push eax
lea eax, [ebp - 0x164]
push eax
call dword [sym.imp.api_ms_win_core_file_l1_2_1.dll_FileTimeToLocalFileTime]
lea eax, [ebp - 0x158]
push eax
lea eax, [ebp - 0x16c]
push eax
call dword [sym.imp.api_ms_win_core_timezone_l1_1_0.dll_FileTimeToSystemTime]
cmp edi, 1
jne 0x41837c
movzx ecx, word [ebp - 0x14a]
mov eax, 0xcccccccd
mul ecx
movzx eax, word [ebp - 0x14c]
shr edx, 3
push edx
push 0x42f80c
push eax
movzx eax, word [ebp - 0x14e]
push 0x42f82c
push eax
movzx eax, word [ebp - 0x150]
push 0x42f82c
push eax
push 0x401e48
test esi, esi
je 0x41836f
push dword [ebp + 0xc]
push esi
call fcn.0040c4ef
add esp, 0x28
lea ecx, [esi + 2]
lea esp, [esp]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x404d90
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.00416ce0
mov esp, ebp
pop ebp
ret 8
lea edx, [ebp - 0x164]
call fcn.00424047
jmp 0x404d06
call fcn.0040c37c
add esp, 0x20
jmp 0x404da1
cmp byte [0x443cd9], 0
je 0x4184c1
push 0x80
lea eax, [ebp - 0x148]
xor ecx, ecx
push eax
push 0x1003
mov dword [ebp - 0x15c], ecx
call fcn.00413854
push eax
call dword [sym.imp.api_ms_win_core_localization_l1_2_1.dll_GetLocaleInfoW]
test eax, eax
jne 0x4183f2
lea ecx, [ebp - 0x148]
mov edi, 0x4036c8
mov eax, ecx
mov edx, 0x80
sub edi, eax
lea eax, [edx + 0x7fffff7e]
test eax, eax
je 0x4183e6
movzx eax, word [edi + ecx]
test ax, ax
je 0x4183e6
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x4183c6
jmp 0x4183ea
test edx, edx
jne 0x4183ed
sub ecx, 2
xor eax, eax
mov word [ecx], ax
cmp word [ebp - 0x148], 0
lea edi, [ebp - 0x148]
je 0x418495
xor eax, eax
movzx ebx, word [edi]
cmp ebx, 0x27
jne 0x418428
mov ecx, dword [ebp - 0x15c]
xor eax, eax
add edi, 2
test ecx, ecx
sete al
mov dword [ebp - 0x15c], eax
jmp 0x418488
test eax, eax
jne 0x418485
cmp ebx, 0x68
je 0x41843b
cmp ebx, 0x48
je 0x41843b
cmp ebx, 0x6d
jne 0x418488
xor ecx, ecx
lea edi, [edi + 2]
inc ecx
cmp word [edi], bx
je 0x41843d
mov eax, ecx
neg eax
lea edi, [edi + eax*2]
cmp ecx, 1
jne 0x41847f
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x418457
sub ecx, edx
sar ecx, 1
lea eax, [ecx*2 + 2]
push eax
lea eax, [edi + 2]
push edi
push eax
call dword [sym.imp.msvcrt.dll_memmove]
add esp, 0xc
mov word [edi], bx
mov eax, dword [ebp - 0x15c]
add edi, 2
add edi, 2
cmp word [edi], 0
jne 0x418408
push 0x20
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x148]
push eax
lea eax, [ebp - 0x158]
push eax
push 2
call fcn.00413854
push eax
call dword [sym.imp.api_ms_win_core_datetime_l1_1_1.dll_GetTimeFormatW]
test eax, eax
jne 0x418519
mov word [ebp - 0x48], ax
jmp 0x418519
cmp dword [0x42d0cc], 0
mov eax, 0x4036e0
movzx ecx, word [ebp - 0x150]
je 0x4184f2
cmp ecx, 0xc
jb 0x4184e7
jbe 0x4184e0
sub ecx, 0xc
mov eax, 0x4036e4
jmp 0x4184f7
test ecx, ecx
jne 0x4184f7
mov ecx, 0xc
jmp 0x4184f7
mov eax, 0x402318
push eax
movzx eax, word [ebp - 0x14e]
push eax
push 0x42f82c
push ecx
push 0x40370c
lea eax, [ebp - 0x48]
push 0x20
push eax
call fcn.0040c4ef
add esp, 0x1c
test esi, esi
jne 0x41853f
lea edx, [ebp - 0x48]
lea ecx, [edx + 2]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x418523
sub edx, ecx
lea ecx, [ebp - 0x48]
sar edx, 1
call fcn.0040c3b9
jmp 0x404da1
mov edx, dword [ebp + 0xc]
lea eax, [ebp - 0x48]
push eax
mov ecx, esi
call fcn.00410820
lea ecx, [esi + 2]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x418550
jmp 0x404d9b