Function at 0x417279
Capabilities:
Get geographical location

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x62c
mov eax, dword [0x41a140]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [0x41a63c]
push esi
push edi
test eax, eax
jne 0x41737e
push ebx
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
and dword [ebp - 0x628], 0
mov ebx, eax
push 2
lea eax, [ebp - 0x628]
push eax
push 0x20000070
push ebx
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
test eax, eax
je 0x4172eb
cmp dword [ebp - 0x628], 1
sete al
test al, al
je 0x4172eb
cmp dword [0x41a628], 0x7d0
je 0x417378
mov byte [0x41a62c], 1
cmp byte [0x41a62e], 0
jne 0x417378
movzx eax, bx
push 9
mov dword [ebp - 0x62c], eax
and eax, 0x3ff
pop ecx
cmp cx, ax
je 0x417378
mov edi, 0x104
lea eax, [ebp - 0x624]
push edi
push eax
push dword [0x41a630]
xor esi, esi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
je 0x417343
push dword [ebp - 0x62c]
lea ecx, [ebp - 0x624]
push 8
pop edx
call fcn.0041915b
mov esi, eax
cmp esi, dword [0x41a630]
jne 0x417354
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x41735c
test esi, esi
jne 0x41766f
push 5
lea eax, [ebp - 0xc]
push eax
push 3
push ebx
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
test eax, eax
jne 0x41738c
mov eax, dword [0x41a63c]
test eax, eax
jne 0x41737d
mov eax, dword [0x41a630]
pop ebx
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.00419610
leave
ret
push edi
lea eax, [ebp - 0x41c]
push eax
push 0x3e9
push dword [0x41a630]
call dword [sym.imp.USER32.dll_LoadStringA]
test eax, eax
je 0x41736f
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x41c]
push eax
push 0x402adc
lea eax, [ebp - 0x214]
push edi
push eax
call fcn.0040542b
add esp, 0x14
lea eax, [ebp - 0x110]
push edi
push eax
push dword [0x41a630]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov cl, byte [ebp - 0x110]
lea esi, [ebp - 0x110]
mov eax, esi
jmp 0x417400
cmp cl, 0x5c
jne 0x4173f7
inc eax
mov esi, eax
jmp 0x4173fe
push eax
call dword [sym.imp.USER32.dll_CharNextA]
mov cl, byte [eax]
test cl, cl
jne 0x4173ed
lea eax, [ebp - 0x110]
lea ecx, [ebp - 0x214]
sub esi, eax
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x417415
sub ecx, edx
lea eax, [esi + 1]
add eax, ecx
cmp eax, edi
ja 0x417459
push esi
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, edi
sub eax, esi
push eax
lea eax, [ebp - 0x318]
add eax, esi
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]
mov esi, eax
test esi, esi
jne 0x41766f
push 0x60
push ebx
lea eax, [ebp - 0x214]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryExA]
mov esi, eax
test esi, esi
jne 0x41766f
lea ecx, [ebp - 0xc]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x417495
sub ecx, edx
cmp ecx, 2
jbe 0x41757b
lea eax, [ebp - 0xc]
mov byte [ebp - 0xa], bl
push eax
lea eax, [ebp - 0x41c]
push eax
push 0x402adc
lea eax, [ebp - 0x214]
push edi
push eax
call dword [sym.imp.msvcrt.dll_sprintf_s]
mov cl, byte [ebp - 0x110]
lea esi, [ebp - 0x110]
add esp, 0x14
mov eax, esi
jmp 0x4174ee
cmp cl, 0x5c
jne 0x4174e5
inc eax
mov esi, eax
jmp 0x4174ec
push eax
call dword [sym.imp.USER32.dll_CharNextA]
mov cl, byte [eax]
test cl, cl
jne 0x4174db
lea eax, [ebp - 0x110]
lea ecx, [ebp - 0x214]
sub esi, eax
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x417503
sub ecx, edx
lea eax, [esi + 1]
add eax, ecx
cmp eax, edi
ja 0x417547
push esi
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, edi
sub eax, esi
push eax
lea eax, [ebp - 0x318]
add eax, 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]
mov esi, eax
test esi, esi
jne 0x41766f
push 0x60
push ebx
lea eax, [ebp - 0x214]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryExA]
mov esi, eax
test esi, esi
jne 0x41766f
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 0x41736f
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x41c]
push eax
push 0x402adc
lea eax, [ebp - 0x214]
push edi
push eax
call dword [sym.imp.msvcrt.dll_sprintf_s]
mov cl, byte [ebp - 0x110]
lea esi, [ebp - 0x110]
add esp, 0x14
mov eax, esi
jmp 0x4175e6
cmp cl, 0x5c
jne 0x4175dd
inc eax
mov esi, eax
jmp 0x4175e4
push eax
call dword [sym.imp.USER32.dll_CharNextA]
mov cl, byte [eax]
test cl, cl
jne 0x4175d3
lea eax, [ebp - 0x110]
lea ecx, [ebp - 0x214]
sub esi, eax
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4175fb
sub ecx, edx
lea eax, [esi + 1]
add eax, ecx
cmp eax, edi
ja 0x41763d
push esi
lea eax, [ebp - 0x110]
push eax
lea eax, [ebp - 0x318]
push eax
call sub.msvcrt.dll_memcpy
lea eax, [ebp - 0x214]
sub edi, esi
push eax
lea eax, [ebp - 0x318]
add eax, esi
push 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]
mov esi, eax
test esi, esi
jne 0x41766f
push 0x60
push ebx
lea eax, [ebp - 0x214]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryExA]
mov esi, eax
test esi, esi
jne 0x41766f
mov esi, dword [0x41a630]
mov eax, esi
jmp 0x41737d