Function at 0x23a206d0
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x23a46efc
mov eax, dword fs:[0]
push eax
sub esp, 0x128
mov eax, dword [0x23a7ca94]
xor eax, esp
mov dword [esp + 0x120], eax
push ebx
push esi
push edi
mov eax, dword [0x23a7ca94]
xor eax, esp
push eax
lea eax, [esp + 0x138]
mov dword fs:[0], eax
mov edi, dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 0
mov esi, ecx
mov eax, dword [esi + 0x290]
push 0x146
push eax
call edi
test eax, eax
jle 0x23a20758
mov edi, edi
mov ecx, dword [esi + 0x290]
push 0
push 0
push 0x144
push ecx
call edi
mov edx, dword [esi + 0x290]
push 0
push 0
push 0x146
push edx
call edi
test eax, eax
jg 0x23a20730
lea eax, [esp + 0x38]
push eax
push str.LastRelativeRange
push SysReAllocString
mov ecx, 0x23a7cd30
mov edi, 5
call dword [sym.imp.actBasic.dll_public:_unsigned_long_int___thiscall_CApp::GetDWORD_struct_HKEY_____wchar_t_const___unsigned_long_int__const]
test eax, eax
jne 0x23a2077f
mov edi, dword [esp + 0x38]
push edi
push 1
push 0xd2
mov ecx, esi
call fcn.23a205a0
push edi
push 2
push 0xd3
mov ecx, esi
call fcn.23a205a0
push edi
push 3
push 0xd4
mov ecx, esi
call fcn.23a205a0
push edi
push 4
push 0xd5
mov ecx, esi
call fcn.23a205a0
push edi
push 5
push 0xd6
mov ecx, esi
call fcn.23a205a0
mov ebx, dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
lea ecx, [esp + 0x24]
push ecx
lea edx, [esi + 0x470]
push edx
call ebx
mov eax, 1
xor edx, edx
mov word [esp + 0x2a], ax
xor eax, eax
mov word [esp + 0x2e], dx
lea edx, [esp + 0x3c]
mov word [esp + 0x30], ax
xor ecx, ecx
push edx
lea eax, [esp + 0x28]
push eax
mov word [esp + 0x34], cx
mov word [esp + 0x3a], cx
call dword [sym.imp.KERNEL32.dll_SystemTimeToFileTime]
lea ecx, [esp + 0x24]
push ecx
lea edx, [esi + 0x478]
push edx
call ebx
xor edx, edx
mov eax, 1
mov word [esp + 0x2e], dx
mov word [esp + 0x2a], ax
xor eax, eax
xor ecx, ecx
lea edx, [esp + 0x44]
push edx
mov word [esp + 0x30], cx
mov word [esp + 0x34], ax
mov word [esp + 0x36], cx
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x48]
push ecx
call dword [sym.imp.KERNEL32.dll_SystemTimeToFileTime]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x54]
mov dword [esp + 0x1c], edx
push ecx
lea edx, [esp + 0x20]
push edx
mov dword [esp + 0x28], eax
call ebx
mov ax, word [esp + 0x54]
cmp ax, word [esp + 0x24]
mov dword [esp + 0x14], 6
jne 0x23a208c1
mov cx, word [esp + 0x56]
cmp cx, word [esp + 0x26]
jne 0x23a208c1
push edi
push 6
push 0xd7
mov ecx, esi
call fcn.23a205a0
mov dword [esp + 0x14], 7
mov ebx, 1
jmp 0x23a208c3
xor ebx, ebx
lea edx, [esp + 0x44]
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x48]
push ecx
call dword [sym.imp.KERNEL32.dll_SystemTimeToFileTime]
neg ebx
push ebx
lea ecx, [esp + 0x20]
call fcn.23a05cc0
lea ecx, [esp + 0x34]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_class]
mov ecx, esi
mov dword [esp + 0x140], 0
call fcn.23a203d0
mov ebx, eax
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x40]
push eax
add ebx, 0x64
call dword [sym.imp.KERNEL32.dll_CompareFileTime]
test eax, eax
jg 0x23a209c2
push ebx
lea ecx, [esp + 0x20]
push ecx
call dword [sym.imp.KERNEL32.dll_CompareFileTime]
test eax, eax
jg 0x23a2099b
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x20]
push eax
call dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
movzx eax, word [esp + 0x26]
push 0x64
lea edx, [esp + 0x68]
push edx
add eax, 0x37
push eax
xor ecx, ecx
push 0x400
mov word [esp + 0x74], cx
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
movzx ecx, word [esp + 0x24]
push ecx
lea edx, [esp + 0x68]
push edx
lea eax, [esp + 0x3c]
push str._s__u
push eax
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Format_1]
mov ecx, dword [esp + 0x24]
add esp, 0x10
push edi
push ecx
lea ecx, [esp + 0x3c]
call dword [sym.imp.mfc90u.dll_]
push eax
mov ecx, esi
call fcn.23a202e0
push 0xffffffffffffffff
lea ecx, [esp + 0x20]
call fcn.23a05cc0
inc dword [esp + 0x14]
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x40]
push eax
call dword [sym.imp.KERNEL32.dll_CompareFileTime]
test eax, eax
jle 0x23a20923
push edi
push 0
push 0xda
mov ecx, esi
call fcn.23a205a0
mov ecx, dword [esi + 0x290]
mov edi, dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 0
push 0x147
push ecx
call edi
cmp eax, 0xffffffff
jne 0x23a20a00
mov edx, dword [esi + 0x290]
push 0
push 0
push 0x14e
push edx
call edi
lea ecx, [esp + 0x34]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov ecx, dword [esp + 0x138]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x120]
xor ecx, esp
call fcn.23a41d28
mov esp, ebp
pop ebp
ret