Function at 0x41d410
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ecx, 0x30
mov ebp, esp
push edi
push esi
lea edi, [ebp - 0x1e8]
mov esi, 0x57f020
push ebx
sub esp, 0x280
mov byte [ebp - 0x224], 0
mov dword [ebp - 0x258], 0x439
mov dword [ebp - 0x254], 0
mov dword [ebp - 0x250], 0x437
mov dword [ebp - 0x24c], 0
mov dword [ebp - 0x248], 0x409
mov dword [ebp - 0x244], 0x4e4
mov dword [ebp - 0x240], 0x419
mov dword [ebp - 0x23c], 0x4e3
mov dword [ebp - 0x238], 0x411
mov dword [ebp - 0x234], 0x3a4
mov dword [ebp - 0x230], 0x804
mov dword [ebp - 0x22c], 0x3a8
mov dword [ebp - 0x228], 0x439
mov dword [ebp - 0x220], 0x439
mov byte [ebp - 0x21c], 0x81
mov dword [ebp - 0x218], 0x439
mov byte [ebp - 0x214], 0xa0
mov dword [ebp - 0x210], 0x439
mov byte [ebp - 0x20c], 0xe0
mov dword [ebp - 0x208], 0x437
mov byte [ebp - 0x204], 0
mov dword [ebp - 0x200], 0x437
mov byte [ebp - 0x1fc], 0x81
mov dword [ebp - 0x1f8], 0x437
mov byte [ebp - 0x1f4], 0xa0
mov dword [ebp - 0x1f0], 0x437
mov byte [ebp - 0x1ec], 0xe0
rep movsd dword es:[edi], dword [esi]
call dword [sym.imp.kernel32.dll_GetThreadLocale]
mov ebx, eax
call dword [sym.imp.kernel32.dll_GetACP]
mov dword [ebp - 0x26c], ebx
mov dword [ebp - 0x268], eax
lea eax, [ebp - 0x258]
mov dword [ebp - 0x260], eax
mov esi, dword fs:[0x18]
jmp 0x41d6b0
call fcn.0057d110
mov dword [eax], 0x58a4b3
mov edx, dword [ebp - 0x264]
mov dword [eax + 4], 0x49a
mov ecx, dword [ebp - 0x114]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], ebx
cmp ecx, 0xfde9
mov dword [esp + 8], ecx
mov dword [esp + 4], str.wrong_codepage__u_for_lcid__04lx__should_be__u_n
sete al
cmp edx, ecx
sete dl
or eax, edx
movzx eax, al
mov dword [esp], eax
call fcn.0041ae70
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 8], 0x58b2d8
mov dword [esp + 4], 0
mov dword [esp], 3
call dword [sym.imp.kernel32.dll_WideCharToMultiByte]
sub esp, 0x20
mov edi, eax
call fcn.0057d110
mov dword [eax], 0x58a4b3
mov dword [eax + 4], 0x4a3
xor eax, eax
cmp edi, 7
sete al
mov dword [esp + 0xc], ebx
mov dword [esp + 8], edi
mov dword [esp + 4], str.ret_is__d___04lx__n
mov dword [esp], eax
call fcn.0041ae70
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 8], 0x58a786
mov dword [esp + 4], 0
mov dword [esp], 3
call dword [sym.imp.kernel32.dll_MultiByteToWideChar]
sub esp, 0x18
mov edi, eax
call fcn.0057d110
mov dword [eax], 0x58a4b3
mov dword [eax + 4], 0x4a7
xor eax, eax
cmp edi, 7
sete al
mov dword [esp + 0xc], ebx
lea ebx, [ebp - 0x228]
mov dword [esp], eax
mov dword [esp + 8], edi
mov dword [esp + 4], str.ret_is__d___04lx__n
call fcn.0041ae70
add dword [ebp - 0x260], 8
mov eax, dword [ebp - 0x260]
cmp eax, ebx
je 0x41d980
mov edi, dword [ebp - 0x260]
mov ebx, dword [edi]
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_SetThreadLocale]
lea eax, [ebp - 0x25c]
mov dword [ebp - 0x25c], 0xdeadbeef
sub esp, 4
mov dword [esp + 0xc], 4
mov dword [esp + 8], eax
mov dword [esp + 4], 0x20001004
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_GetLocaleInfoA]
sub esp, 0x10
call fcn.0057d110
mov edx, dword [edi + 4]
lea edi, [ebp - 0x128]
mov dword [eax], 0x58a4b3
mov dword [eax + 4], 0x483
mov eax, dword [ebp - 0x25c]
mov dword [esp + 0x10], edx
cmp edx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 0xc], ebx
movzx eax, al
mov dword [esp + 4], str.wrong_codepage__u_for_lcid__04lx__should_be__u_n
mov dword [ebp - 0x264], edx
mov dword [esp], eax
call fcn.0041ae70
xor eax, eax
mov ecx, 0x47
mov dword [esi + 0x34], 0xdeadbeef
rep stosd dword es:[edi], eax
lea edx, [ebp - 0x128]
mov dword [esp], 0
mov dword [esp + 8], edx
mov dword [esp + 4], 0
call dword [sym.imp.kernel32.dll_GetCPInfoExA]
sub esp, 0xc
mov edi, eax
call fcn.0057d110
mov dword [eax], 0x58a4b3
mov dword [eax + 4], 0x489
mov eax, dword [esi + 0x34]
mov dword [esp], edi
mov dword [esp + 0xc], eax
mov dword [esp + 8], ebx
mov dword [esp + 4], str.GetCPInfoExA_failed_for_lcid__04lx__error__ld_n
call fcn.0041ae70
call fcn.0057d110
mov ecx, dword [ebp - 0x268]
mov dword [eax], 0x58a4b3
mov dword [eax + 4], 0x48a
mov eax, dword [ebp - 0x114]
mov dword [esp + 0x10], ecx
cmp eax, ecx
mov dword [esp + 8], eax
sete al
mov dword [esp + 0xc], ebx
movzx eax, al
mov dword [esp + 4], str.wrong_codepage__u_for_lcid__04lx__should_be__u_n
mov dword [esp], eax
call fcn.0041ae70
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 8], 0x58b2d8
mov dword [esp + 4], 0
mov dword [esp], 0
call dword [sym.imp.kernel32.dll_WideCharToMultiByte]
sub esp, 0x20
mov edi, eax
call fcn.0057d110
mov dword [eax], 0x58a4b3
mov dword [eax + 4], 0x48e
xor eax, eax
cmp edi, 7
sete al
mov dword [esp + 8], edi
mov dword [esp + 0xc], ebx
mov dword [esp + 4], str.ret_is__d___04lx__n
mov dword [esp], eax
call fcn.0041ae70
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 8], 0x58a786
mov dword [esp + 4], 0
mov dword [esp], 0
call dword [sym.imp.kernel32.dll_MultiByteToWideChar]
sub esp, 0x18
mov edi, eax
call fcn.0057d110
mov dword [eax], 0x58a4b3
mov dword [eax + 4], 0x492
xor eax, eax
cmp edi, 7
sete al
mov dword [esp + 8], edi
lea edi, [ebp - 0x128]
mov dword [esp], eax
mov dword [esp + 0xc], ebx
mov dword [esp + 4], str.ret_is__d___04lx__n
call fcn.0041ae70
xor eax, eax
mov ecx, 0x47
mov dword [esi + 0x34], 0xdeadbeef
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x128]
mov dword [esp], 3
mov dword [esp + 8], eax
mov dword [esp + 4], 0
call dword [sym.imp.kernel32.dll_GetCPInfoExA]
sub esp, 0xc
mov edi, eax
call fcn.0057d110
mov dword [eax], 0x58a4b3
mov dword [eax + 4], 0x498
mov eax, dword [esi + 0x34]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 4], str.GetCPInfoExA_failed_for_lcid__04lx__error__ld_n
mov dword [esp], edi
call fcn.0041ae70
mov edx, dword [ebp - 0x264]
test edx, edx
jne 0x41d560
call fcn.0057d110
mov dword [eax], 0x58a4b3
mov ecx, dword [ebp - 0x268]
mov dword [eax + 4], 0x49e
mov edx, dword [ebp - 0x114]
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], ebx
cmp edx, 0xfde9
mov dword [esp + 8], edx
mov dword [esp + 4], str.wrong_codepage__u_for_lcid__04lx__should_be__u_n
jmp 0x41d598
mov ebx, dword [ebp - 0x26c]
mov edi, eax
mov dword [ebp - 0x268], ebx
nop
mov ecx, dword [edi]
mov dword [esp], ecx
mov dword [ebp - 0x264], ecx
call dword [sym.imp.kernel32.dll_SetThreadLocale]
lea eax, [ebp - 0x128]
sub esp, 4
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov dword [esp], 3
call dword [sym.imp.kernel32.dll_GetCPInfoExA]
movzx esi, byte [edi + 4]
sub esp, 0xc
mov dword [esp + 4], esi
mov eax, dword [ebp - 0x114]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_IsDBCSLeadByteEx]
sub esp, 8
mov dword [ebp - 0x260], eax
mov dword [esp + 4], esi
mov dword [esp], 3
call dword [sym.imp.kernel32.dll_IsDBCSLeadByteEx]
sub esp, 8
mov ebx, eax
call fcn.0057d110
mov edx, dword [ebp - 0x260]
mov dword [eax], 0x58a4b3
mov dword [eax + 4], 0x4b3
xor eax, eax
cmp edx, ebx
mov dword [esp + 0x14], edx
mov ecx, dword [ebp - 0x264]
sete al
add edi, 8
mov dword [esp], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], esi
mov dword [esp + 8], ebx
mov dword [esp + 4], str.wrong_islead__i_for_test_char__x_in_lcid__04lx.__should_be__i_n
call fcn.0041ae70
lea eax, [ebp - 0x1e8]
cmp edi, eax
jne 0x41d990
mov ebx, dword [ebp - 0x268]
mov dword [ebp - 0x264], ebx
nop
mov eax, dword [edi]
mov dword [ebp - 0x260], eax
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_SetThreadLocale]
lea eax, [ebp - 0x128]
sub esp, 4
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov dword [esp], 3
call dword [sym.imp.kernel32.dll_GetCPInfoExA]
movzx esi, byte [edi + 4]
sub esp, 0xc
mov dword [esp + 4], esi
mov dword [esp], 3
call dword [sym.imp.kernel32.dll_IsDBCSLeadByteEx]
sub esp, 8
mov ebx, eax
call fcn.0057d110
mov edx, dword [edi + 8]
mov dword [eax], 0x58a4b3
mov dword [eax + 4], 0x4be
mov eax, 1
cmp edx, ebx
je 0x41dae4
cmp dword [ebp - 0x114], 0xfde9
sete cl
xor eax, eax
test ebx, ebx
sete al
and eax, ecx
mov dword [esp + 0x14], edx
mov ecx, dword [ebp - 0x260]
add edi, 0xc
mov dword [esp], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], esi
mov dword [esp + 8], ebx
mov dword [esp + 4], str.wrong_islead__i_for_test_char__x_in_lcid__04lx.__should_be__i_n
call fcn.0041ae70
lea eax, [ebp - 0x128]
cmp edi, eax
jne 0x41da60
mov ebx, dword [ebp - 0x264]
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_SetThreadLocale]
sub esp, 4
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret