Function at 0x401706
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x2748
call fcn.00406970
push ebx
push esi
push edi
mov esi, ecx
push dword [ebp + 0xc]
push 0x413f90
push 3
call fcn.00402356
mov al, byte [0x413c70]
mov ebx, 0xf9
mov byte [ebp - 0xbf0], al
mov ecx, ebx
xor eax, eax
lea edi, [ebp - 0xbef]
rep stosd dword es:[edi], eax
push dword [ebp + 0xc]
mov ecx, esi
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0xbf0]
push eax
push 6
call fcn.00402356
mov al, byte [0x413c70]
mov ecx, ebx
mov byte [ebp - 0x1b90], al
xor eax, eax
lea edi, [ebp - 0x1b8f]
push dword [ebp + 0xc]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x1b90]
mov ecx, esi
push eax
push 7
call fcn.00402356
mov al, byte [0x413c70]
mov ecx, ebx
mov byte [ebp - 0x2360], al
xor eax, eax
lea edi, [ebp - 0x235f]
push dword [ebp + 0xc]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x2360]
mov ecx, esi
push eax
push 4
call fcn.00402356
mov al, byte [0x413c70]
mov ecx, ebx
mov byte [ebp - 0x13c0], al
xor eax, eax
lea edi, [ebp - 0x13bf]
push dword [ebp + 0xc]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x13c0]
mov ecx, esi
push eax
push 8
call fcn.00402356
mov al, byte [0x413c70]
mov ecx, ebx
mov byte [ebp - 0xfd8], al
xor eax, eax
lea edi, [ebp - 0xfd7]
push dword [ebp + 0xc]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0xfd8]
mov ecx, esi
push eax
push 0xa
call fcn.00402356
mov al, byte [0x413c70]
mov ecx, ebx
mov byte [ebp - 0x808], al
xor eax, eax
lea edi, [ebp - 0x807]
push dword [ebp + 0xc]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x808]
mov ecx, esi
push eax
push 0xb
call fcn.00402356
mov al, byte [0x413c70]
mov ecx, ebx
mov byte [ebp - 0x1f78], al
xor eax, eax
lea edi, [ebp - 0x1f77]
push dword [ebp + 0xc]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x1f78]
mov ecx, esi
push eax
push 0xc
call fcn.00402356
mov al, byte [0x413c70]
mov ecx, ebx
mov byte [ebp - 0x420], al
xor eax, eax
lea edi, [ebp - 0x41f]
push dword [ebp + 0xc]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x420]
mov ecx, esi
push eax
push 5
call fcn.00402356
mov al, byte [0x413c70]
mov ecx, ebx
mov byte [ebp - 0x17a8], al
xor eax, eax
lea edi, [ebp - 0x17a7]
push dword [ebp + 0xc]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x17a8]
mov ecx, esi
push eax
push 9
call fcn.00402356
mov al, byte [0x413c70]
mov ecx, ebx
mov byte [ebp - 0x2748], al
xor eax, eax
lea edi, [ebp - 0x2747]
push dword [ebp + 0xc]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x2748]
mov ecx, esi
push eax
push 0xd
call fcn.00402356
mov cl, byte [0x413c70]
xor eax, eax
lea edi, [ebp - 0x37]
mov byte [ebp - 0x38], cl
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov byte [ebp - 0x24], cl
xor eax, eax
lea edi, [ebp - 0x23]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosb byte es:[edi], al
lea eax, [ebp - 0x420]
push 0x3b
push eax
call fcn.00402aa0
pop ecx
xor edi, edi
pop ecx
mov dword [ebp - 0x10], eax
mov ecx, dword [0x413c74]
push str.Country
mov dword [ebp - 8], edi
call fcn.00402e88
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0x14]
push eax
call fcn.00402d60
mov eax, dword [esi + 0xb4]
pop ecx
cmp eax, edi
je 0x401964
push eax
call fcn.004063b8
pop ecx
push edi
push edi
push 0x14b
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_SendMessageA]
mov eax, dword [ebp - 0x10]
imul eax, eax, 0x798
push eax
call fcn.004064d0
cmp dword [ebp - 0x10], edi
pop ecx
mov dword [esi + 0xb4], eax
mov dword [ebp - 4], edi
jle 0x401d01
mov ebx, dword [sym.imp.KERNEL32.DLL_lstrcatA]
mov eax, dword [esi + 0xb4]
push dword [ebp + 0xc]
mov ecx, esi
lea eax, [edi + eax + 0x58d]
push eax
push 0x1e
call fcn.00402356
push 0x3b
lea eax, [ebp - 0xbf0]
push dword [ebp - 4]
push eax
mov eax, dword [esi + 0xb4]
lea eax, [edi + eax + 3]
push eax
call fcn.00402ac9
add esp, 0x10
cmp dword [ebp - 0xc], 0
je 0x4019e9
mov eax, dword [esi + 0xb4]
push dword [ebp - 0xc]
lea eax, [edi + eax + 3]
push eax
call dword [sym.imp.KERNEL32.DLL_lstrcmpA]
test eax, eax
jne 0x4019e9
mov eax, dword [ebp - 4]
mov dword [ebp - 8], eax
push 0x3b
lea eax, [ebp - 0x420]
push dword [ebp - 4]
push eax
mov eax, edi
add eax, dword [esi + 0xb4]
push eax
call fcn.00402ac9
add esp, 0x10
cmp dword [ebp - 8], 0
jne 0x401a29
lea eax, [ebp - 0x14]
push eax
mov eax, edi
add eax, dword [esi + 0xb4]
push eax
call dword [sym.imp.KERNEL32.DLL_lstrcmpA]
test eax, eax
jne 0x401a29
mov eax, dword [ebp - 4]
mov dword [ebp - 8], eax
push 0x3b
lea eax, [ebp - 0x1b90]
push dword [ebp - 4]
push eax
mov eax, dword [esi + 0xb4]
lea eax, [edi + eax + 0x287]
push eax
call fcn.00402ac9
mov eax, dword [esi + 0xb4]
add esp, 0x10
lea eax, [edi + eax + 0x287]
push eax
call dword [sym.imp.KERNEL32.DLL_lstrlenA]
test eax, eax
jne 0x401b35
cmp byte [0x413f98], 0x31
jne 0x401ad2
mov eax, dword [esi + 0xb4]
push 0x410160
lea eax, [edi + eax + 0x287]
push eax
call dword [sym.imp.KERNEL32.DLL_lstrcpyA]
mov eax, dword [esi + 0xb4]
push 0x4142ac
lea eax, [edi + eax + 0x287]
push eax
call ebx
mov eax, dword [esi + 0xb4]
lea eax, [edi + eax + 0x287]
push eax
call dword [sym.imp.KERNEL32.DLL_lstrlenA]
mov ecx, dword [esi + 0xb4]
add eax, edi
and byte [eax + ecx + 0x283], 0
mov eax, dword [esi + 0xb4]
and byte [edi + eax + 0x293], 0
jmp 0x401aeb
mov eax, dword [esi + 0xb4]
push 0x413d88
lea eax, [edi + eax + 0x287]
push eax
call dword [sym.imp.KERNEL32.DLL_lstrcpyA]
mov eax, dword [esi + 0xb4]
push 0x41015c
lea eax, [edi + eax + 0x287]
push eax
call ebx
mov eax, dword [esi + 0xb4]
add eax, edi
push eax
add eax, 0x287
push eax
call ebx
mov eax, dword [esi + 0xb4]
lea eax, [edi + eax + 0x287]
push eax
call dword [sym.imp.KERNEL32.DLL_lstrlenA]
mov ecx, dword [esi + 0xb4]
add eax, edi
and byte [eax + ecx + 0x287], 0
push 0x3b
lea eax, [ebp - 0x13c0]
push dword [ebp - 4]
push eax
mov eax, dword [esi + 0xb4]
lea eax, [edi + eax + 0x388]
push eax
call fcn.00402ac9
mov eax, dword [esi + 0xb4]
add esp, 0x10
lea eax, [edi + eax + 0x388]
push eax
call dword [sym.imp.KERNEL32.DLL_lstrlenA]
test eax, eax
jne 0x401b8a
lea eax, [ebp - 0x2360]
push eax
mov eax, dword [esi + 0xb4]
lea eax, [edi + eax + 0x388]
push eax
call dword [sym.imp.KERNEL32.DLL_lstrcpyA]
push 0x3b
lea eax, [ebp - 0x808]
push dword [ebp - 4]
push eax
mov eax, dword [esi + 0xb4]
lea eax, [edi + eax + 0x489]
push eax
call fcn.00402ac9
mov eax, dword [esi + 0xb4]
add esp, 0x10
lea eax, [edi + eax + 0x489]
push eax
call dword [sym.imp.KERNEL32.DLL_lstrlenA]
test eax, eax
jne 0x401bdf
lea eax, [ebp - 0xfd8]
push eax
mov eax, dword [esi + 0xb4]
lea eax, [edi + eax + 0x489]
push eax
call dword [sym.imp.KERNEL32.DLL_lstrcpyA]
mov ecx, dword [ebp + 0xc]
push 0x410158
call fcn.004029b1
test eax, eax
mov dword [ebp - 0x18], eax
je 0x401c40
mov eax, dword [esi + 0xb4]
push 0x410154
lea eax, [edi + eax + 0x489]
push eax
call fcn.00406450
pop ecx
test eax, eax
pop ecx
je 0x401c18
push 0x410150
jmp 0x401c1d
push 0x410154
mov eax, dword [esi + 0xb4]
lea eax, [edi + eax + 0x489]
push eax
call ebx
mov eax, dword [esi + 0xb4]
push dword [ebp - 0x18]
lea eax, [edi + eax + 0x489]
push eax
call ebx
push 0x3b
lea eax, [ebp - 0x17a8]
push dword [ebp - 4]
push eax
mov eax, dword [esi + 0xb4]
lea eax, [edi + eax + 0x185]
push eax
call fcn.00402ac9
push 0x3b
lea eax, [ebp - 0x1f78]
push dword [ebp - 4]
push eax
mov eax, dword [esi + 0xb4]
lea eax, [edi + eax + 0x691]
push eax
call fcn.00402ac9
mov eax, dword [esi + 0xb4]
push 0x3b
push dword [ebp - 4]
and byte [edi + eax + 0x6cd], 0
lea eax, [ebp - 0x2748]
push eax
lea eax, [ebp - 0x38]
push eax
call fcn.00402ac9
push 0x7e
lea eax, [ebp - 0x38]
push 0
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.00402ac9
add esp, 0x40
lea eax, [ebp - 0x38]
push eax
call fcn.0040695e
imul eax, eax, 0x3c
pop ecx
mov ecx, dword [esi + 0xb4]
mov dword [edi + ecx + 0x794], eax
mov eax, dword [esi + 0xb4]
lea eax, [edi + eax + 3]
push eax
push 0
push 0x143
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_SendMessageA]
inc dword [ebp - 4]
add edi, 0x798
mov eax, dword [ebp - 4]
cmp eax, dword [ebp - 0x10]
jl 0x40198c
xor edi, edi
cmp dword [ebp - 0xc], edi
je 0x401d24
push dword [ebp - 0xc]
push 0xffffffffffffffff
push 0x14c
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_SendMessageA]
cmp eax, 0xffffffff
mov dword [ebp - 8], eax
jne 0x401d24
mov dword [ebp - 8], edi
push edi
push dword [ebp - 8]
push 0x14e
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_SendMessageA]
mov eax, dword [ebp - 0x10]
pop edi
pop esi
pop ebx
leave
ret 8