Function at 0x401018
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff1c
test ah, ah
je 0x401035
mov dword [0x41f0f2], 0x10ecb
xchg dword [0x41f039], esi
mov dword [0x41f014], ebx
mov dword [0x41f015], 0x11e5d
mov dword [0x41f0f1], esi
mov dword [0x41f01d], 0x1618a
mov eax, 0x4016fc
mov dword [ebp - 4], eax
xor eax, eax
mov dword [ebp - 8], eax
mov dword [ebp - 0xc], 0xffffffff
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 8]
push eax
mov eax, dword [ebp - 4]
push eax
call sub.advapi32.dll_ObjectCloseAuditAlarmW
test eax, eax
je 0x401092
lea edi, [0x41f083]
mov dword [edi + 0x12], 0x25
mov dword [0x41f0b9], esi
inc eax
sub dword [0x41f013], esi
cmp byte [0x41f106], 0
jg 0x4010ad
mov dword [0x41f0fb], edx
mov dword [0x41f041], ebx
xchg dword [0x41f0f2], esi
mov byte [0x41f058], 0x23
mov dword [0x41f091], 0x14161
mov dword [0x41f086], 0x1061d
mov dword [ebp - 0x14], 0x1f480
mov eax, 0x401724
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], 0x1ea18
mov eax, dword [ebp - 0x1c]
push eax
mov eax, dword [ebp - 0x18]
push eax
mov eax, dword [ebp - 0x14]
push eax
mov eax, dword [ebp - 0x10]
push eax
call sub.kernel32.dll_GetLocaleInfoA
test eax, eax
jne 0x401115
mov dword [0x41f096], edx
mov dword [0x41f035], ecx
add dword [0x41f08d], edx
mov dword [0x41f06c], eax
mov dword [ebp - 0x24], 0x1d660
mov eax, 0x40173c
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x2c], 0x15c58
mov eax, dword [ebp - 0x2c]
push eax
mov eax, dword [ebp - 0x28]
push eax
mov eax, dword [ebp - 0x24]
push eax
mov eax, dword [ebp - 0x20]
push eax
call sub.kernel32.dll_GetLocaleInfoA
mov dword [ebp - 0x30], 0x1e244
mov dword [ebp - 0x34], 0x10084
mov eax, dword [ebp - 0x34]
push eax
mov eax, dword [ebp - 0x30]
push eax
call sub.user32.dll_GetWindow
test eax, eax
je 0x40116f
sub dword [0x41f0ca], edx
add ebx, 0xbc
mov dword [esp - 0xc], esi
mov byte [ebp - 0xe1], 0
mov eax, 0x40174c
mov dword [ebp - 0x38], eax
xor eax, eax
mov dword [ebp - 0x3c], eax
xor eax, eax
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x40]
push eax
mov eax, dword [ebp - 0x3c]
push eax
mov eax, dword [ebp - 0x38]
push eax
call sub.advapi32.dll_ObjectCloseAuditAlarmW
test eax, eax
jne 0x4011aa
mov dword [0x41f08e], ebx
mov dword [0x41f075], esi
dec eax
mov byte [0x41f109], 0xd2
mov byte [0x41f03b], 0x2d
mov dword [0x41f092], ecx
inc byte [ebp - 0xe1]
cmp byte [ebp - 0xe1], 3
jne 0x401176
mov eax, dword [ebp - 0x44]
push eax
call sub.kernel32.dll_SetThreadLocale
xchg dword [0x41f0f8], eax
mov dword [esp - 4], esi
mov word [0x41f0c8], 0xb58f
add dword [0x41f0b8], ecx
mov byte [0x41f0b7], 0xb
mov dword [0x41f087], 0x1667b
and eax, 0xbf
mov dword [0x41f011], ebx
mov dword [0x41f09a], edx
mov eax, dword [ebp - 0x48]
push eax
call sub.kernel32.dll_SetThreadLocale
test eax, eax
jne 0x401234
mov dword [0x41f081], 0x119d1
and dword [0x41f05b], ebx
mov dword [0x41f036], eax
sub edx, 0x4e
add dword [0x41f101], ebx
mov word [0x41f0bd], 0x93a3
mov dword [esp - 4], eax
mov dword [0x41f096], 0x12ca4
mov eax, 0x401754
mov dword [ebp - 0x4c], eax
xor eax, eax
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x54], 0xffffffff
mov eax, dword [ebp - 0x54]
push eax
mov eax, dword [ebp - 0x50]
push eax
mov eax, dword [ebp - 0x4c]
push eax
call sub.advapi32.dll_ObjectCloseAuditAlarmW
test eax, eax
je 0x40128a
dec byte [0x41f019]
add ebx, 0x65
mov dword [esp - 0x10], esi
dec byte [0x41f044]
mov dword [0x41f0d0], ebx
xchg dword [0x41f0a2], edx
add dword [0x41f039], ecx
mov edx, 0x114
mov dword [ebp - 0x58], 0x11c8a
mov dword [ebp - 0x5c], 0x18f3d
mov eax, dword [ebp - 0x5c]
push eax
mov eax, dword [ebp - 0x58]
push eax
call sub.user32.dll_GetWindow
test eax, eax
jne 0x4012db
mov byte [0x41f103], 6
mov esi, eax
mov dword [0x41f086], ebx
add dword [0x41f076], edx
mov byte [ebp - 0xe1], 0
mov dword [ebp - 0x64], 0x1cd74
mov eax, 0x40176c
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x6c], 0x110bf
mov eax, dword [ebp - 0x6c]
push eax
mov eax, dword [ebp - 0x68]
push eax
mov eax, dword [ebp - 0x64]
push eax
mov eax, dword [ebp - 0x60]
push eax
call sub.kernel32.dll_GetLocaleInfoA
test eax, eax
je 0x401326
mov dword [0x41f106], eax
mov word [0x41f07d], 0xefcb
mov dword [0x41f0da], ebx
inc byte [ebp - 0xe1]
cmp byte [ebp - 0xe1], 3
jne 0x4012e2
mov dword [ebp - 0x74], 0x15262
mov eax, 0x401778
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x7c], 0x1645a
mov eax, dword [ebp - 0x7c]
push eax
mov eax, dword [ebp - 0x78]
push eax
mov eax, dword [ebp - 0x74]
push eax
mov eax, dword [ebp - 0x70]
push eax
call sub.kernel32.dll_GetLocaleInfoA
mov dword [0x41f06d], 0x129d1
add ecx, dword [0x41f092]
and eax, 0xe1
sub dword [0x41f012], ebx
mov dword [0x41f022], esi
mov dword [0x41f03e], edx
mov dword [0x41f0d1], 0x1718a
mov dword [0x41f0fa], esi
mov dword [ebp - 0x80], 0x1c9c0
mov dword [ebp - 0x84], 0x1a116
mov eax, dword [ebp - 0x84]
push eax
mov eax, dword [ebp - 0x80]
push eax
call sub.user32.dll_GetWindow
test eax, eax
je 0x4013ee
sub dword [0x41f0f8], eax
mov dword [0x41f080], ecx
add dword [0x41f078], eax
cmp word [0x41f0ea], 0
jl 0x4013de
mov dword [0x41f0f1], edx
mov dword [0x41f06c], 0x11981
mov dword [0x41f0e7], eax
xchg dword [0x41f0f8], eax
mov dword [esp - 4], esi
mov word [0x41f0c8], 0xb58f
add dword [0x41f0b8], ecx
mov eax, dword [ebp - 0x88]
push eax
call sub.kernel32.dll_SetThreadLocale
call fcn.00416218
mov dword [0x41f0a7], esi
mov dword [0x41f108], edx
mov dword [0x41f073], 0x163c9
mov dword [0x41f027], 0x12bbe
mov dword [ebp - 0x90], 0x1453e
mov eax, 0x40178c
mov dword [ebp - 0x94], eax
mov dword [ebp - 0x98], 0x1bfbe
mov eax, dword [ebp - 0x98]
push eax
mov eax, dword [ebp - 0x94]
push eax
mov eax, dword [ebp - 0x90]
push eax
mov eax, dword [ebp - 0x8c]
push eax
call sub.kernel32.dll_GetLocaleInfoA
test eax, eax
jne 0x40148d
mov dword [0x41f031], esi
mov ecx, 0xbb
mov dword [0x41f032], eax
mov ecx, 0x34
add dword [0x41f045], eax
mov byte [0x41f0d9], 0xa
mov dword [0x41f0ed], esi
mov dword [0x41f03b], edx
mov byte [ebp - 0xe1], 0
mov dword [ebp - 0x9c], 0x11f2b
mov dword [ebp - 0xa0], 0x1c1ff
mov eax, dword [ebp - 0xa0]
push eax
mov eax, dword [ebp - 0x9c]
push eax
call sub.user32.dll_GetWindow
test eax, eax
jne 0x4014f1
mov byte [0x41f028], 0xd0
inc edi
mov dword [0x41f056], ecx
mov dword [0x41f0ba], edx
mov dword [0x41f0a7], esi
mov dword [0x41f108], edx
mov dword [0x41f073], 0x163c9
mov dword [0x41f027], 0x12bbe
inc byte [ebp - 0xe1]
cmp byte [ebp - 0xe1], 1
jne 0x4014b2
mov dword [ebp - 0xa8], 0x12fda
mov eax, 0x40179c
mov dword [ebp - 0xac], eax
mov dword [ebp - 0xb0], 0x19e24
mov eax, dword [ebp - 0xb0]
push eax
mov eax, dword [ebp - 0xac]
push eax
mov eax, dword [ebp - 0xa8]
push eax
mov eax, dword [ebp - 0xa4]
push eax
call sub.kernel32.dll_GetLocaleInfoA
mov dword [ebp - 0xb4], 0x1650c
mov dword [ebp - 0xb8], 0x11b6e
mov eax, dword [ebp - 0xb8]
push eax
mov eax, dword [ebp - 0xb4]
push eax
call sub.user32.dll_GetWindow
mov dword [0x41f09b], edi
mov dword [0x41f08f], edx
mov word [0x41f0c4], 0xcddc
cmp dword [0x41f054], edi
jge 0x4015ae
mov esi, ecx
add dword [0x41f070], ecx
jmp 0x4015c6
mov dword [0x41f05b], edx
dec dword [0x41f0a5]
mov dword [0x41f0b9], ecx
and dword [0x41f09c], eax
mov eax, 0x4017a0
mov dword [ebp - 0xbc], eax
xor eax, eax
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xc4], 0xffffffff
mov eax, dword [ebp - 0xc4]
push eax
mov eax, dword [ebp - 0xc0]
push eax
mov eax, dword [ebp - 0xbc]
push eax
call sub.advapi32.dll_ObjectCloseAuditAlarmW
mov eax, dword [ebp - 0xc8]
push eax
call sub.kernel32.dll_SetThreadLocale
test eax, eax
jne 0x401621
mov dword [0x41f034], 0x17e6e
mov dword [0x41f0ba], eax
mov dword [esp - 0x28], edx
call fcn.00416218
mov byte [ebp - 0xe1], 0
mov eax, 0x4017b0
mov dword [ebp - 0xcc], eax
xor eax, eax
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xd4], 0xffffffff
mov eax, dword [ebp - 0xd4]
push eax
mov eax, dword [ebp - 0xd0]
push eax
mov eax, dword [ebp - 0xcc]
push eax
call sub.advapi32.dll_ObjectCloseAuditAlarmW
test eax, eax
jne 0x40168e
xchg dword [0x41f065], edi
xchg dword [0x41f01c], esi
cmp edi, 0xffffffff
jle 0x40167f
mov dword [esp - 0xc], ecx
jmp 0x40168e
mov dword [0x41f061], edx
mov word [0x41f065], 0x9849
inc byte [ebp - 0xe1]
cmp byte [ebp - 0xe1], 3
jne 0x40162d
mov eax, 0x4017d4
mov dword [ebp - 0xd8], eax
xor eax, eax
mov dword [ebp - 0xdc], eax
mov dword [ebp - 0xe0], 0xffffffff
mov eax, dword [ebp - 0xe0]
push eax
mov eax, dword [ebp - 0xdc]
push eax
mov eax, dword [ebp - 0xd8]
push eax
call sub.advapi32.dll_ObjectCloseAuditAlarmW
test eax, eax
jne 0x4016f8
mov ecx, dword [esp + 0x12]
mov dword [0x41f0df], 0x12753
mov dword [0x41f08e], ecx
and esi, dword [0x41f029]
mov dword [0x41f08b], ecx
mov esp, ebp
pop ebp
ret