Function at 0x5cd86f80
Capabilities:
Get geographical location

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x420
mov eax, dword [0x5cd942c4]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [0x5cd94614]
push edi
test eax, eax
jne 0x5cd86feb
push esi
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
mov esi, eax
mov dword [ebp - 0x420], 0
push 2
lea eax, [ebp - 0x420]
push eax
push 0x20000070
push esi
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
test eax, eax
je 0x5cd86fd8
cmp dword [ebp - 0x420], 1
je 0x5cd883ee
cmp byte [0x5cd94624], 0
je 0x5cd8840b
mov eax, dword [0x5cd9461c]
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop edi
call fcn.5cd87900
mov esp, ebp
pop ebp
ret
cmp dword [0x5cd94620], 0x7d0
je 0x5cd86fe5
cmp byte [0x5cd94624], 0
jne 0x5cd86fe5
mov eax, esi
mov ecx, 9
and eax, 0x3ff
cmp cx, ax
je 0x5cd86fe5
mov edx, esi
call fcn.5cd922cd
cmp eax, dword [0x5cd9461c]
jne 0x5cd88438
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x5cd88440
test eax, eax
jne 0x5cd86fea
push 5
lea eax, [ebp - 0xc]
push eax
push 3
push esi
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
test eax, eax
je 0x5cd884cc
push 0x104
lea eax, [ebp - 0x41c]
push eax
push 0x3e9
push dword [0x5cd9461c]
call dword [sym.imp.USER32.dll_LoadStringA]
test eax, eax
je 0x5cd884cc
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x41c]
push eax
push 0x5cd84334
lea eax, [ebp - 0x214]
push 0x104
push eax
call fcn.5cd91b93
add esp, 0x14
lea eax, [ebp - 0x110]
push 0x104
push eax
push dword [0x5cd9461c]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov cl, byte [ebp - 0x110]
lea esi, [ebp - 0x110]
mov eax, esi
test cl, cl
je 0x5cd884eb
cmp cl, 0x5c
jne 0x5cd884de
inc eax
mov esi, eax
jmp 0x5cd884e5
mov eax, dword [0x5cd94614]
test eax, eax
jne 0x5cd86fea
jmp 0x5cd86fe5
push eax
call dword [sym.imp.USER32.dll_CharNextA]
mov cl, byte [eax]
test cl, cl
jne 0x5cd884c2
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 0x5cd884fc
sub ecx, edx
lea eax, [esi + 1]
add eax, ecx
mov edi, 0x104
cmp eax, edi
ja 0x5cd88545
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 0
lea eax, [ebp - 0x318]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryExA]
test eax, eax
jne 0x5cd86fea
push 0x60
push eax
lea eax, [ebp - 0x214]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryExA]
test eax, eax
jne 0x5cd86fea
lea ecx, [ebp - 0xc]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x5cd8857c
sub ecx, edx
cmp ecx, 2
jbe 0x5cd88668
mov byte [ebp - 0xa], al
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x41c]
push eax
push 0x5cd84334
lea eax, [ebp - 0x214]
push 0x104
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
test cl, cl
je 0x5cd885df
cmp cl, 0x5c
jne 0x5cd885d2
inc eax
mov esi, eax
jmp 0x5cd885d9
push eax
call dword [sym.imp.USER32.dll_CharNextA]
mov cl, byte [eax]
test cl, cl
jne 0x5cd885c8
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 0x5cd885f0
sub ecx, edx
lea eax, [esi + 1]
add eax, ecx
cmp eax, 0x104
ja 0x5cd88637
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 0
lea eax, [ebp - 0x318]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryExA]
test eax, eax
jne 0x5cd86fea
push 0x60
push eax
lea eax, [ebp - 0x214]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryExA]
test eax, eax
jne 0x5cd86fea
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 0x5cd884cc
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x41c]
push eax
push 0x5cd84334
lea eax, [ebp - 0x214]
push 0x104
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
test cl, cl
je 0x5cd886dd
cmp cl, 0x5c
jne 0x5cd886d0
inc eax
mov esi, eax
jmp 0x5cd886d7
push eax
call dword [sym.imp.USER32.dll_CharNextA]
mov cl, byte [eax]
test cl, cl
jne 0x5cd886c6
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 0x5cd886ee
sub ecx, edx
lea eax, [esi + 1]
add eax, ecx
cmp eax, 0x104
ja 0x5cd88733
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 0
lea eax, [ebp - 0x318]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryExA]
test eax, eax
jne 0x5cd86fea
push 0x60
push eax
lea eax, [ebp - 0x214]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryExA]
test eax, eax
jne 0x5cd86fea
jmp 0x5cd86fe5