Function at 0x415425
Capabilities:
Get geographical location
Get system information on windows

Disassembly:
push ebp
lea ebp, [esp - 0x68]
lea eax, [ebp - 0x40]
sub esp, 0xa8
push eax
call fcn.004151d4
pop ecx
test al, al
jne 0x415446
xor eax, eax
inc eax
jmp 0x4156ac
push ebx
push esi
push edi
call fcn.0040107c
test eax, eax
je 0x41551e
cmp byte [0x44040a], 0
jne 0x41551e
mov esi, dword [ebp - 0x40]
xor ebx, ebx
mov dword [ebp + 0x78], ebx
cmp esi, ebx
je 0x4154e2
push 0x439e0c
lea edi, [ebp + 0x70]
call fcn.004015ab
push esi
lea edi, [ebp + 0x64]
call fcn.004015ab
push eax
lea eax, [ebp + 0x5c]
push 0x438ea4
push eax
call fcn.0040b229
add esp, 0xc
lea ecx, [ebp + 0x70]
push ecx
lea ecx, [ebp + 0x60]
push ecx
push eax
inc ebx
call fcn.004016e0
push eax
lea ecx, [ebp + 0x78]
call fcn.0040168b
lea edi, [ebp + 0x60]
call fcn.0040174e
lea edi, [ebp + 0x5c]
call fcn.0040174e
lea edi, [ebp + 0x64]
call fcn.0040174e
lea edi, [ebp + 0x70]
call fcn.0040174e
mov esi, dword [ebp + ebx*4 - 0x40]
test esi, esi
jne 0x41546f
mov eax, dword [ebp + 0x78]
test eax, eax
je 0x4154e2
mov eax, dword [eax]
jmp 0x4154e4
xor eax, eax
xor esi, esi
push esi
push esi
push eax
push dword [ebp + 0x7c]
call fcn.004010b5
add esp, 0x10
test eax, eax
jne 0x41550f
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov esi, 0x439e18
xor edi, edi
call fcn.0040b6a1
xor esi, esi
pop ecx
inc esi
lea edi, [ebp + 0x78]
call fcn.0040174e
mov eax, esi
jmp 0x4156a9
call fcn.0040107c
push 0x440180
test eax, eax
je 0x415543
call dword [sym.imp.KERNEL32.dll_GetNativeSystemInfo]
or dword [0x440170], 0xffffffff
xor esi, esi
mov dword [0x440174], esi
jmp 0x41555c
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov eax, dword [0x44018c]
cdq
mov dword [0x440170], eax
mov dword [0x440174], edx
xor esi, esi
push dword [ebp + 0x78]
lea edi, [ebp + 0x78]
call fcn.00401553
mov eax, dword [eax]
cmp eax, esi
je 0x415571
mov eax, dword [eax]
jmp 0x415573
xor eax, eax
push eax
call fcn.0041c1aa
pop ecx
lea edi, [ebp + 0x78]
mov dword [0x44017c], eax
call fcn.0040174e
push esi
push 0x4403f0
push esi
push 0xf003f
push esi
push esi
push esi
push 0x439c54
push SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
push 0x20
push 0x43f454
push 0xe
push 0x400
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
mov eax, dword [0x440794]
cmp eax, esi
je 0x4155c5
call eax
mov edi, dword [ebp + 0x7c]
mov ebx, dword [ebp + 0x70]
push 0x439e60
mov dword [0x4403e0], edi
mov dword [0x4403d8], ebx
call dword [sym.imp.USER32.dll_RegisterWindowMessageW]
mov dword [0x4401a4], eax
call dword [sym.imp.COMCTL32.dll_InitCommonControls]
call fcn.00415131
call fcn.0040b912
call fcn.0040505b
push dword [0x4403f4]
xor esi, esi
push 0x413a9c
push esi
push 0x439ef8
push ebx
call dword [sym.imp.USER32.dll_CreateDialogParamW]
mov dword [0x4403e8], eax
cmp eax, esi
jne 0x41562a
call dword [sym.imp.KERNEL32.dll_GetLastError]
xor eax, eax
inc eax
jmp 0x4156a9
push edi
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
push 0x439f10
push ebx
call dword [sym.imp.USER32.dll_LoadAcceleratorsW]
mov edi, dword [sym.imp.USER32.dll_GetMessageW]
mov dword [ebp + 0x7c], eax
jmp 0x415686
call dword [sym.imp.USER32.dll_GetActiveWindow]
mov ebx, eax
lea eax, [ebp + 0x40]
push eax
push dword [ebp + 0x7c]
push ebx
call dword [sym.imp.USER32.dll_TranslateAcceleratorW]
test eax, eax
jne 0x415686
lea eax, [ebp + 0x40]
push eax
push ebx
call dword [sym.imp.USER32.dll_IsDialogMessageW]
test eax, eax
jne 0x415686
lea eax, [ebp + 0x40]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [ebp + 0x40]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
push esi
push esi
push esi
lea eax, [ebp + 0x40]
push eax
call edi
test eax, eax
jne 0x415649
mov esi, 0x440a18
call fcn.00406e99
mov esi, 0x440ae0
call fcn.00406e99
xor eax, eax
pop edi
pop esi
pop ebx
add ebp, 0x68
leave
ret 0x10