Function at 0x401bb0
Capabilities:
Get geographical location
Read .ini file

Disassembly:
sub esp, 0x618
push ebp
push esi
push edi
mov ecx, 0x3f
xor eax, eax
lea edi, [esp + 0x525]
mov byte [esp + 0x524], 0
push 0xff
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [esp + 0x528]
push eax
push 0x1004
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultLCID]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
lea ecx, [esp + 0x524]
push ecx
call fcn.00404910
mov dword [0x414440], eax
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x15]
mov byte [esp + 0x14], 0
add esp, 4
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea edx, [esp + 0x10]
push 0x103
push edx
push 0
stosb byte es:[edi], al
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea edi, [esp + 0x10]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
dec ecx
js 0x401c56
mov al, byte [esp + ecx + 0x10]
cmp al, 0x2f
je 0x401c51
cmp al, 0x5c
je 0x401c51
dec ecx
jns 0x401c40
jmp 0x401c56
mov byte [esp + ecx + 0x10], 0
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x31d]
mov byte [esp + 0x31c], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x421]
mov byte [esp + 0x420], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x115]
mov byte [esp + 0x114], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x219]
mov byte [esp + 0x218], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [esp + 0x10]
lea ecx, [esp + 0x31c]
push eax
push 0x414430
push 0x103
push ecx
call fcn.00404753
add esp, 0x10
lea edx, [esp + 0x31c]
push edx
push 0
push 0x414424
push 0x414418
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov esi, eax
push esi
push 0x414408
mov dword [esp + 0x14], esi
call fcn.00401590
add esp, 8
xor ebp, ebp
test esi, esi
jle 0x401e61
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, 0x41
xor eax, eax
lea edi, [esp + 0x424]
push ebp
rep stosd dword es:[edi], eax
push 0x414400
lea eax, [esp + 0x42c]
push 0x103
push eax
call fcn.00404753
mov ecx, 0x41
xor eax, eax
lea edi, [esp + 0x128]
add esp, 0x10
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x320]
lea edx, [esp + 0x118]
push ecx
push 0x103
push edx
lea eax, [esp + 0x430]
push 0x417a5c
push eax
push 0x414418
call ebx
lea ecx, [esp + 0x118]
push ecx
push ebp
push 0x4143e8
call fcn.00401590
lea edi, [esp + 0x124]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x401e45
mov ecx, 0x41
lea edi, [esp + 0x21c]
rep stosd dword es:[edi], eax
lea edx, [esp + 0x118]
lea eax, [esp + 0x14]
push edx
push eax
push 0x4143e0
lea ecx, [esp + 0x228]
push 0x103
push ecx
call fcn.00404753
lea edx, [esp + 0x230]
push edx
call fcn.00401b90
add esp, 0x18
mov esi, eax
lea eax, [esp + 0x21c]
push esi
push eax
push 0x4143bc
call fcn.00401590
add esp, 0xc
test esi, esi
je 0x401e45
push 0x4143a8
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edi, eax
push edi
push 0x414380
call fcn.00401590
add esp, 8
test edi, edi
je 0x401e3e
push 0x414364
call fcn.00401590
add esp, 4
call edi
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov eax, dword [esp + 0x10]
inc ebp
cmp ebp, eax
jl 0x401d20
pop ebx
pop edi
pop esi
xor eax, eax
pop ebp
add esp, 0x618
ret 0x10
pop edi
pop esi
xor eax, eax
pop ebp
add esp, 0x618
ret 0x10