Function at 0x404c2f
Capabilities:
Get geographical location

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x41c
mov eax, dword [0x41b140]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [0x41b520]
push ebx
push edi
test eax, eax
jne 0x404c7a
push esi
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
mov esi, eax
mov ecx, esi
call fcn.00404929
test al, al
jne 0x41112b
cmp byte [0x41b51c], 0
je 0x411140
mov eax, dword [0x41b518]
pop esi
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop ebx
call fcn.0040b820
leave
ret
cmp dword [0x41b510], 0x7d0
je 0x404c74
jmp 0x404c67
mov eax, esi
push 9
and eax, 0x3ff
pop ecx
cmp cx, ax
je 0x404c74
mov edx, esi
call fcn.00418e16
cmp eax, dword [0x41b518]
jne 0x41116b
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x411173
test eax, eax
jne 0x404c79
push 5
lea eax, [ebp - 0xc]
push eax
push 3
push esi
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
test eax, eax
je 0x4111ec
mov esi, 0x104
lea eax, [ebp - 0x41c]
push esi
push eax
push 0x3e9
push dword [0x41b518]
call dword [sym.imp.USER32.dll_LoadStringA]
test eax, eax
je 0x4111ec
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x41c]
push eax
push 0x4029dc
lea eax, [ebp - 0x214]
push esi
push eax
call fcn.0041435c
add esp, 0x14
lea eax, [ebp - 0x110]
push esi
push eax
push dword [0x41b518]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov cl, byte [ebp - 0x110]
lea edi, [ebp - 0x110]
mov eax, edi
jmp 0x411209
mov eax, dword [0x41b520]
jmp 0x411466
cmp cl, 0x5c
jne 0x411200
inc eax
mov edi, eax
jmp 0x411207
push eax
call dword [sym.imp.USER32.dll_CharNextA]
mov cl, byte [eax]
test cl, cl
jne 0x4111f6
lea eax, [ebp - 0x110]
lea ecx, [ebp - 0x214]
sub edi, eax
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x41121e
sub ecx, edx
lea eax, [edi + 1]
add eax, ecx
cmp eax, esi
ja 0x411262
push edi
lea eax, [ebp - 0x110]
push eax
lea eax, [ebp - 0x318]
push eax
call sub.msvcrt.dll_memcpy
lea eax, [ebp - 0x214]
push eax
mov eax, esi
sub eax, edi
push eax
lea eax, [ebp - 0x318]
add eax, edi
push eax
call dword [sym.imp.msvcrt.dll_strcpy_s]
add esp, 0x18
push 0x60
xor ebx, ebx
lea eax, [ebp - 0x318]
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryExA]
test eax, eax
jne 0x404c79
push 0x60
push ebx
lea eax, [ebp - 0x214]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryExA]
test eax, eax
jne 0x404c79
lea ecx, [ebp - 0xc]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x41129a
sub ecx, edx
cmp ecx, 2
jbe 0x41137c
lea eax, [ebp - 0xc]
mov byte [ebp - 0xa], bl
push eax
lea eax, [ebp - 0x41c]
push eax
push 0x4029dc
lea eax, [ebp - 0x214]
push esi
push eax
call dword [sym.imp.msvcrt.dll_sprintf_s]
mov cl, byte [ebp - 0x110]
lea edi, [ebp - 0x110]
add esp, 0x14
mov eax, edi
jmp 0x4112f3
cmp cl, 0x5c
jne 0x4112ea
inc eax
mov edi, eax
jmp 0x4112f1
push eax
call dword [sym.imp.USER32.dll_CharNextA]
mov cl, byte [eax]
test cl, cl
jne 0x4112e0
lea eax, [ebp - 0x110]
lea ecx, [ebp - 0x214]
sub edi, eax
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x411308
sub ecx, edx
lea eax, [edi + 1]
add eax, ecx
cmp eax, esi
ja 0x41134c
push edi
lea eax, [ebp - 0x110]
push eax
lea eax, [ebp - 0x318]
push eax
call sub.msvcrt.dll_memcpy
lea eax, [ebp - 0x214]
push eax
mov eax, esi
sub eax, edi
push eax
lea eax, [ebp - 0x318]
add eax, edi
push eax
call dword [sym.imp.msvcrt.dll_strcpy_s]
add esp, 0x18
push 0x60
push ebx
lea eax, [ebp - 0x318]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryExA]
test eax, eax
jne 0x404c79
push 0x60
push ebx
lea eax, [ebp - 0x214]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryExA]
test eax, eax
jne 0x404c79
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
push 5
lea ecx, [ebp - 0xc]
and eax, 0x3ff
push ecx
or eax, 0x400
push 3
push eax
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
test eax, eax
je 0x4111ec
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x41c]
push eax
push 0x4029dc
lea eax, [ebp - 0x214]
push esi
push eax
call dword [sym.imp.msvcrt.dll_sprintf_s]
mov cl, byte [ebp - 0x110]
lea edi, [ebp - 0x110]
add esp, 0x14
mov eax, edi
jmp 0x4113e7
cmp cl, 0x5c
jne 0x4113de
inc eax
mov edi, eax
jmp 0x4113e5
push eax
call dword [sym.imp.USER32.dll_CharNextA]
mov cl, byte [eax]
test cl, cl
jne 0x4113d4
lea eax, [ebp - 0x110]
lea ecx, [ebp - 0x214]
sub edi, eax
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4113fc
sub ecx, edx
lea eax, [edi + 1]
add eax, ecx
cmp eax, esi
ja 0x41143e
push edi
lea eax, [ebp - 0x110]
push eax
lea eax, [ebp - 0x318]
push eax
call sub.msvcrt.dll_memcpy
lea eax, [ebp - 0x214]
sub esi, edi
push eax
lea eax, [ebp - 0x318]
add eax, edi
push esi
push eax
call dword [sym.imp.msvcrt.dll_strcpy_s]
add esp, 0x18
push 0x60
push ebx
lea eax, [ebp - 0x318]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryExA]
test eax, eax
jne 0x404c79
push 0x60
push ebx
lea eax, [ebp - 0x214]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryExA]
test eax, eax
jne 0x404c79
jmp 0x404c74