Function at 0x4c5540
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
mov edi, dword fs:[0x18]
sub esp, 0x120
mov byte [0x7af280], 0
mov esi, dword [sym.imp.kernel32.dll_EnumDateFormatsA]
mov dword [edi + 0x34], 0xdeadbeef
mov dword [esp + 8], 0
mov dword [esp + 4], 0x409
mov dword [esp], 0x4b3820
call esi
sub esp, 0xc
mov ebx, eax
test eax, eax
jne 0x4c5596
cmp dword [edi + 0x34], 0x3ec
je 0x4c5c80
call fcn.0057d110
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x1337
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x34]
mov dword [esp + 4], str.EnumDateFormatsA_0__error__ld_n
mov dword [esp], ebx
mov dword [esp + 8], eax
call fcn.004b46e0
call fcn.0057d110
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x1338
mov dword [esp + 4], 0x7af280
mov dword [esp], str.EnumDateFormatsA_0_:__s_n
call fcn.004b4040
mov dword [esp + 4], 0xa
mov edi, dword [sym.imp.msvcrt.dll_strchr]
mov dword [esp], 0x7af280
call edi
test eax, eax
je 0x4c5609
mov byte [eax], 0
mov eax, dword [sym.imp.kernel32.dll_GetLocaleInfoA]
lea ebx, [ebp - 0x10c]
mov dword [esp + 0xc], 0x100
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x1f
mov dword [esp], 0x409
mov dword [ebp - 0x114], eax
call eax
sub esp, 0x10
mov dword [ebp - 0x110], eax
call fcn.0057d110
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x133c
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x34]
mov dword [esp + 4], str.GetLocaleInfoA_LOCALE_SSHORTDATE__error__ld_n
mov dword [esp + 8], eax
mov edx, dword [ebp - 0x110]
mov dword [esp], edx
call fcn.004b46e0
call fcn.0057d110
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x133d
mov eax, dword [sym.imp.kernel32.dll_lstrcmpA]
mov dword [esp + 4], ebx
mov dword [esp], 0x7af280
mov dword [ebp - 0x110], eax
call eax
sub esp, 8
test eax, eax
sete al
mov dword [esp + 0xc], ebx
movzx eax, al
mov dword [esp + 8], 0x7af280
mov dword [esp + 4], str.expected___s__got___s__n
mov dword [esp], eax
call fcn.004b46e0
mov byte [0x7af280], 0
mov ecx, dword fs:[0x18]
mov dword [ecx + 0x34], 0xdeadbeef
mov dword [ebp - 0x118], ecx
mov dword [esp + 8], 0x40000000
mov dword [esp + 4], 0x409
mov dword [esp], 0x4b3820
call esi
sub esp, 0xc
mov edx, eax
test eax, eax
jne 0x4c5716
mov ecx, dword [ebp - 0x118]
cmp dword [ecx + 0x34], 0x3ec
je 0x4c5c60
mov dword [ebp - 0x118], edx
call fcn.0057d110
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x1349
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x34]
mov dword [esp + 4], str.EnumDateFormatsA_LOCALE_USE_CP_ACP__error__ld_n
mov dword [esp + 8], eax
mov edx, dword [ebp - 0x118]
mov dword [esp], edx
call fcn.004b46e0
call fcn.0057d110
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x134a
mov dword [esp + 4], 0x7af280
mov dword [esp], str.EnumDateFormatsA_LOCALE_USE_CP_ACP_:__s_n
call fcn.004b4040
mov dword [esp + 4], 0xa
mov dword [esp], 0x7af280
call edi
test eax, eax
je 0x4c578f
mov byte [eax], 0
mov dword [esp + 0xc], 0x100
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x1f
mov dword [esp], 0x409
mov eax, dword [ebp - 0x114]
call eax
sub esp, 0x10
mov dword [ebp - 0x118], eax
call fcn.0057d110
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x134e
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x34]
mov dword [esp + 4], str.GetLocaleInfoA_LOCALE_SSHORTDATE__error__ld_n
mov dword [esp + 8], eax
mov edx, dword [ebp - 0x118]
mov dword [esp], edx
call fcn.004b46e0
call fcn.0057d110
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x134f
mov dword [esp + 4], ebx
mov dword [esp], 0x7af280
mov eax, dword [ebp - 0x110]
call eax
sub esp, 8
test eax, eax
sete al
mov dword [esp + 0xc], ebx
movzx eax, al
mov dword [esp + 8], 0x7af280
mov dword [esp + 4], str.expected___s__got___s__n
mov dword [esp], eax
call fcn.004b46e0
mov byte [0x7af280], 0
mov dword [esp + 8], 1
mov dword [esp + 4], 0x409
mov dword [esp], 0x4b3820
call esi
sub esp, 0xc
mov dword [ebp - 0x118], eax
call fcn.0057d110
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x1354
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x34]
mov dword [esp + 4], str.EnumDateFormatsA_DATE_SHORTDATE__error__ld_n
mov dword [esp + 8], eax
mov edx, dword [ebp - 0x118]
mov dword [esp], edx
call fcn.004b46e0
call fcn.0057d110
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x1355
mov dword [esp + 4], 0x7af280
mov dword [esp], str.EnumDateFormatsA_DATE_SHORTDATE_:__s_n
call fcn.004b4040
mov dword [esp + 4], 0xa
mov dword [esp], 0x7af280
call edi
test eax, eax
je 0x4c58d8
mov byte [eax], 0
mov dword [esp + 0xc], 0x100
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x1f
mov dword [esp], 0x409
mov eax, dword [ebp - 0x114]
call eax
sub esp, 0x10
mov dword [ebp - 0x118], eax
call fcn.0057d110
mov dword [eax], 0x5d8897
mov ecx, dword fs:[0x18]
mov dword [eax + 4], 0x1359
mov eax, dword [ecx + 0x34]
mov dword [ebp - 0x11c], ecx
mov dword [esp + 8], eax
mov dword [esp + 4], str.GetLocaleInfoA_LOCALE_SSHORTDATE__error__ld_n
mov edx, dword [ebp - 0x118]
mov dword [esp], edx
call fcn.004b46e0
call fcn.0057d110
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x135a
mov dword [esp + 4], ebx
mov dword [esp], 0x7af280
mov eax, dword [ebp - 0x110]
call eax
sub esp, 8
test eax, eax
sete al
mov dword [esp + 0xc], ebx
movzx eax, al
mov dword [esp + 8], 0x7af280
mov dword [esp + 4], str.expected___s__got___s__n
mov dword [esp], eax
call fcn.004b46e0
mov byte [0x7af280], 0
mov dword [esp + 8], 2
mov dword [esp + 4], 0x409
mov dword [esp], 0x4b3820
call esi
sub esp, 0xc
mov dword [ebp - 0x118], eax
call fcn.0057d110
mov ecx, dword [ebp - 0x11c]
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x135e
mov eax, dword [ecx + 0x34]
mov dword [esp + 4], str.EnumDateFormatsA_DATE_LONGDATE__error__ld_n
mov dword [esp + 8], eax
mov edx, dword [ebp - 0x118]
mov dword [esp], edx
call fcn.004b46e0
call fcn.0057d110
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x135f
mov dword [esp + 4], 0x7af280
mov dword [esp], str.EnumDateFormatsA_DATE_LONGDATE_:__s_n
call fcn.004b4040
mov dword [esp + 4], 0xa
mov dword [esp], 0x7af280
call edi
test eax, eax
je 0x4c5a28
mov byte [eax], 0
mov dword [esp + 0xc], 0x100
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x20
mov dword [esp], 0x409
mov eax, dword [ebp - 0x114]
call eax
sub esp, 0x10
mov dword [ebp - 0x11c], eax
call fcn.0057d110
mov dword [eax], 0x5d8897
mov edx, dword fs:[0x18]
mov dword [eax + 4], 0x1363
mov eax, dword [edx + 0x34]
mov dword [ebp - 0x118], edx
mov dword [esp + 8], eax
mov dword [esp + 4], str.GetLocaleInfoA_LOCALE_SLONGDATE__error__ld_n
mov ecx, dword [ebp - 0x11c]
mov dword [esp], ecx
call fcn.004b46e0
call fcn.0057d110
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x1364
mov dword [esp + 4], ebx
mov dword [esp], 0x7af280
mov eax, dword [ebp - 0x110]
call eax
sub esp, 8
test eax, eax
sete al
mov dword [esp + 0xc], ebx
movzx eax, al
mov dword [esp + 8], 0x7af280
mov dword [esp + 4], str.expected___s__got___s__n
mov dword [esp], eax
call fcn.004b46e0
mov edx, dword [ebp - 0x118]
mov byte [0x7af280], 0
mov dword [edx + 0x34], 0xdeadbeef
mov dword [esp + 8], 8
mov dword [esp + 4], 0x409
mov dword [esp], 0x4b3820
call esi
sub esp, 0xc
mov esi, eax
test eax, eax
jne 0x4c5b25
mov edx, dword [ebp - 0x118]
cmp dword [edx + 0x34], 0x3ec
je 0x4c5cc0
call fcn.0057d110
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x136e
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x34]
mov dword [esp + 4], str.EnumDateFormatsA_DATE_YEARMONTH__error__ld_n
mov dword [esp], esi
mov dword [esp + 8], eax
call fcn.004b46e0
call fcn.0057d110
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x136f
mov dword [esp + 4], 0x7af280
mov dword [esp], str.EnumDateFormatsA_DATE_YEARMONTH_:__s_n
call fcn.004b4040
mov dword [esp + 4], 0xa
mov dword [esp], 0x7af280
call edi
test eax, eax
je 0x4c5b92
mov byte [eax], 0
mov dword [esp + 0xc], 0x100
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x1006
mov dword [esp], 0x409
mov eax, dword [ebp - 0x114]
call eax
sub esp, 0x10
mov esi, eax
call fcn.0057d110
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x1373
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x34]
mov dword [esp + 4], str.GetLocaleInfoA_LOCALE_SYEARMONTH__error__ld_n
mov dword [esp], esi
mov dword [esp + 8], eax
call fcn.004b46e0
call fcn.0057d110
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x1374
mov dword [esp + 4], ebx
mov dword [esp], 0x7af280
mov eax, dword [ebp - 0x110]
call eax
mov edx, eax
sub esp, 8
mov eax, 1
test edx, edx
jne 0x4c5c40
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0x7af280
mov dword [esp + 4], str.expected___s__got___s__n
mov dword [esp], eax
call fcn.004b46e0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov ecx, dword [0x8f0770]
cmp byte [ebp - 0x10c], 0
sete dl
xor eax, eax
test ecx, ecx
sete al
and eax, edx
jmp 0x4c5c1c
mov eax, 0x1345
call fcn.004b3be0
mov dword [esp], str.LOCALE_USE_CP_ACP_is_not_supported_n
call fcn.004b46b0
jmp 0x4c583c
mov eax, 0x1333
lea ebx, [ebp - 0x10c]
call fcn.004b3be0
mov dword [esp], str.0_for_dwFlags_is_not_supported_n
call fcn.004b46b0
mov eax, dword [sym.imp.kernel32.dll_GetLocaleInfoA]
mov edi, dword [sym.imp.msvcrt.dll_strchr]
mov dword [ebp - 0x114], eax
mov eax, dword [sym.imp.kernel32.dll_lstrcmpA]
mov dword [ebp - 0x110], eax
jmp 0x4c56c6
mov eax, 0x136b
call fcn.004b3be0
mov dword [esp], str.DATE_YEARMONTH_is_only_present_on_W2K_and_later_n
call fcn.004b46b0
jmp 0x4c5c38