Function at 0x401b40
Capabilities:
Get geographical location

Disassembly:
push edi
lea edi, [esp + 8]
and esp, 0xfffffff8
push dword [edi - 4]
push ebp
mov ebp, esp
push edi
push esi
mov esi, eax
push ebx
mov ebx, edx
sub esp, 0x13c
mov eax, dword [edx + 4]
mov dword [ebp - 0x128], ecx
mov dword [ebp - 0x124], 0
test eax, eax
je 0x401ca0
mov dword [esp], eax
call dword [sym.imp.oleaut32.dll_SysAllocString]
sub esp, 4
mov edi, eax
test eax, eax
je 0x401c91
mov eax, dword [esi]
lea edx, [ebp - 0x124]
mov dword [esp], esi
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], edi
call dword [eax + 0x18]
sub esp, 0x18
mov esi, eax
mov dword [esp], edi
call dword [sym.imp.oleaut32.dll_SysFreeString]
sub esp, 4
test esi, esi
js 0x401c91
mov eax, dword [ebp - 0x124]
lea ecx, [ebp - 0x120]
mov edx, dword [eax]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], ecx
mov dword [esp + 8], 0
mov ecx, dword [ebx + 8]
mov dword [esp], eax
mov dword [esp + 4], ecx
call dword [edx + 0x10]
sub esp, 0x18
test eax, eax
js 0x401d28
mov eax, dword [ebx + 0x10]
mov esi, dword [ebp - 0x118]
cmp eax, 2
je 0x401d48
cmp eax, 3
je 0x401f98
cmp eax, 1
je 0x401e40
mov eax, dword [ebx]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_wcslen]
mov edi, dword [ebp - 0x128]
mov ebx, dword [ebx]
mov dword [esp], 1
sub edi, eax
call dword [sym.imp.ucrtbase.dll___acrt_iob_func]
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], 0x405074
mov dword [esp + 0xc], edi
mov dword [esp + 8], ebx
mov dword [esp + 4], str._s:_s__s_n
mov dword [esp], eax
call sym._fwprintf
lea eax, [ebp - 0x120]
mov dword [esp], eax
call dword [sym.imp.oleaut32.dll_VariantClear]
sub esp, 4
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
lea esp, [edi - 8]
pop edi
ret
mov edi, dword [edx + 8]
test edi, edi
je 0x401d00
mov eax, dword [edx]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_wcslen]
mov esi, dword [ebp - 0x128]
mov ebx, dword [ebx]
mov dword [esp], 1
sub esi, eax
call dword [sym.imp.ucrtbase.dll___acrt_iob_func]
mov dword [esp + 0x14], edi
mov dword [esp + 0xc], esi
mov dword [esp + 8], ebx
mov dword [esp + 0x10], 0x405074
mov dword [esp + 4], str._s:_s__s_n
mov dword [esp], eax
call sym._fwprintf
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
lea esp, [edi - 8]
pop edi
ret
mov eax, dword [ebp - 0x128]
mov dword [esp + 8], eax
mov eax, dword [edx + 0x10]
mov dword [esp], esi
mov dword [esp + 4], eax
call dword [edx + 0xc]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
lea esp, [edi - 8]
pop edi
ret
mov eax, dword [ebp - 0x124]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
sub esp, 4
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
lea esp, [edi - 8]
pop edi
ret
xor eax, eax
lea edi, [ebp - 0x100]
mov ecx, 0x10
xor edx, edx
rep stosd dword es:[edi], eax
lea edi, [ebp - 0xc0]
mov ecx, 0x2a
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x110]
mov word [edi], dx
lea edi, [ebp - 0xc0]
mov dword [esp], esi
lea esi, [ebp - 0x100]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x405528
call sym._swscanf
mov eax, dword [ebp - 0x110]
mov dword [esp + 4], esi
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x20
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_LCIDToLocaleName]
mov eax, dword [ebp - 0x110]
sub esp, 0x10
mov dword [esp + 8], edi
mov dword [esp + 0xc], 0x55
mov dword [esp + 4], 0x72
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_GetLocaleInfoW]
mov eax, dword [ebx]
sub esp, 0x10
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_wcslen]
mov ecx, dword [ebp - 0x128]
mov ebx, dword [ebx]
mov dword [esp], 1
sub ecx, eax
mov dword [ebp - 0x128], ecx
call dword [sym.imp.ucrtbase.dll___acrt_iob_func]
mov ecx, dword [ebp - 0x128]
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], 0x405074
mov dword [esp + 0xc], ecx
mov dword [esp + 8], ebx
mov dword [esp + 4], str._s:_s__s__s_n
mov dword [esp], eax
call sym._fwprintf
jmp 0x401c7f
xor eax, eax
lea edi, [ebp - 0x100]
mov ecx, 0x10
mov dword [ebp - 0x110], 0
rep stosd dword es:[edi], eax
lea edi, [ebp - 0xc0]
mov ecx, 0x10
mov dword [ebp - 0x10c], 0
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x104]
mov dword [esp], esi
lea edi, [ebp - 0x110]
mov dword [esp + 0x1c], eax
lea eax, [ebp - 0x106]
lea esi, [ebp - 0x100]
mov dword [esp + 0x18], eax
lea eax, [ebp - 0x108]
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x10a]
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x10e]
mov dword [esp + 8], edi
mov dword [esp + 0xc], eax
mov dword [esp + 4], str._04u_02u_02u_02u_02u_02u
mov dword [ebp - 0x108], 0
mov dword [ebp - 0x104], 0
call sym._swscanf
mov dword [esp + 0x10], esi
mov dword [esp + 8], edi
mov dword [esp + 0x14], 0x20
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0
mov dword [esp], 0x800
call dword [sym.imp.kernel32.dll_GetDateFormatW]
lea edx, [ebp - 0xc0]
sub esp, 0x18
mov dword [esp + 0x10], edx
mov dword [esp + 8], edi
mov dword [esp + 0x14], 0x20
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0
mov dword [esp], 0x800
call dword [sym.imp.kernel32.dll_GetTimeFormatW]
mov eax, dword [ebx]
sub esp, 0x18
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_wcslen]
mov edi, dword [ebp - 0x128]
mov ebx, dword [ebx]
mov dword [esp], 1
sub edi, eax
call dword [sym.imp.ucrtbase.dll___acrt_iob_func]
lea edx, [ebp - 0xc0]
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], edx
mov dword [esp + 0x10], 0x405074
mov dword [esp + 0xc], edi
mov dword [esp + 8], ebx
mov dword [esp + 4], str._s:_s__s___s_n
mov dword [esp], eax
call sym._fwprintf
jmp 0x401c7f
lea eax, [ebp - 0xc0]
mov dword [esp], esi
mov dword [esp + 8], eax
mov dword [esp + 4], str._I64u
mov dword [ebp - 0xc0], 0
mov dword [ebp - 0xbc], 0
call sym._swscanf
mov eax, dword [ebx]
mov edi, dword [ebp - 0xbc]
mov esi, dword [ebp - 0xc0]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_wcslen]
mov edx, dword [ebp - 0x128]
mov ebx, dword [ebx]
shrd esi, edi, 0xa
mov dword [esp], 1
shr edi, 0xa
sub edx, eax
mov dword [ebp - 0x128], edx
call dword [sym.imp.ucrtbase.dll___acrt_iob_func]
mov edx, dword [ebp - 0x128]
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], edi
mov dword [esp + 0x10], 0x405074
mov dword [esp + 0xc], edx
mov dword [esp + 8], ebx
mov dword [esp + 4], str._s:_s__I64u_MB_n
mov dword [esp], eax
call sym._fwprintf
jmp 0x401c7f