Function at 0x410260
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x434de2
mov eax, dword fs:[0]
push eax
sub esp, 0x88
mov eax, dword [0x44d080]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x94], edi
mov dword [ebp - 0x94], edi
mov dword [ebp - 0x14], 0
lea eax, [ebp - 0x14]
mov dword [ebp - 4], 0
push eax
push 0x447164
push 1
push 0
push 0x447184
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov ecx, dword [ebp - 0x14]
xor edx, edx
test eax, eax
cmovs ecx, edx
sub esp, 0x18
mov dword [ebp - 0x14], ecx
xor eax, eax
mov ecx, esp
mov dword [ebp - 0x94], esp
push 4
push str._xml
mov dword [ecx + 0x10], edx
mov dword [ecx + 0x14], 7
mov word [ecx], ax
call fcn.0040b840
sub esp, 0x18
mov byte [ebp - 4], 1
mov ecx, esp
xor eax, eax
push 0xa
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 7
push str.ip_api.com
mov word [ecx], ax
call fcn.0040b840
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 0
call fcn.0040f360
mov byte [ebp - 4], 2
lea eax, [ebp - 0x78]
cmp dword [ebp - 0x64], 8
cmovae eax, dword [ebp - 0x78]
add esp, 0x2c
mov ecx, esp
mov dword [ebp - 0x94], esp
push eax
call fcn.00401600
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x14]
test ecx, ecx
je 0x410888
mov byte [ebp - 4], 2
call fcn.004018c0
cmp ax, 0xffff
jne 0x4107e4
push 0x11
xor eax, eax
mov dword [ebp - 0x50], 0
push str.SelectionLanguage
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x4c], 7
mov word [ebp - 0x60], ax
call fcn.0040b840
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x48]
push 5
xor eax, eax
mov dword [ebp - 0x38], 0
push str.XPath
mov dword [ebp - 0x34], 7
mov word [ebp - 0x48], ax
call fcn.0040b840
mov byte [ebp - 4], 5
lea esi, [ebp - 0x48]
cmp dword [ebp - 0x34], 8
mov eax, 8
mov word [ebp - 0x88], ax
cmovae esi, dword [ebp - 0x48]
push esi
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov dword [ebp - 0x80], eax
test eax, eax
jne 0x4103e5
test esi, esi
jne 0x410892
mov byte [ebp - 4], 6
lea eax, [ebp - 0x88]
cmp dword [ebp - 0x4c], 8
push eax
push ecx
lea eax, [ebp - 0x60]
mov dword [ebp - 0x94], esp
cmovae eax, dword [ebp - 0x60]
mov ecx, esp
push eax
call fcn.00401600
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x14]
test ecx, ecx
je 0x41089c
mov byte [ebp - 4], 6
call fcn.004019a0
lea eax, [ebp - 0x88]
mov byte [ebp - 4], 5
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
push 0x12
xor eax, eax
mov dword [ebp - 0x20], 0
push str._query_countryCode
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x1c], 7
mov word [ebp - 0x30], ax
call fcn.0040b840
mov byte [ebp - 4], 8
lea eax, [ebp - 0x30]
cmp dword [ebp - 0x1c], 8
push ecx
cmovae eax, dword [ebp - 0x30]
mov ecx, esp
mov dword [ebp - 0x94], esp
push eax
mov dword [ebp - 0x18], 0
call fcn.00401600
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x14]
test ecx, ecx
je 0x4108a6
lea eax, [ebp - 0x18]
mov byte [ebp - 4], 8
push eax
call fcn.004017e0
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0x18]
test ecx, ecx
je 0x4106ee
lea eax, [ebp - 0x94]
push eax
call fcn.00401720
mov byte [ebp - 4], 0xb
mov edx, dword [eax]
test edx, edx
je 0x4104c0
mov edx, dword [edx]
jmp 0x4104c2
xor edx, edx
mov ecx, edx
mov dword [ebp - 0x80], 0
xor eax, eax
mov dword [ebp - 0x7c], 7
mov word [ebp - 0x90], ax
lea esi, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4104e0
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x90]
call fcn.0040b840
mov esi, dword [ebp - 0x94]
test esi, esi
je 0x410557
lea eax, [esi + 8]
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jne 0x41054d
test esi, esi
je 0x41054d
mov eax, dword [esi]
test eax, eax
je 0x41052b
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov dword [esi], 0
mov eax, dword [esi + 4]
test eax, eax
je 0x410542
push eax
call fcn.00419c7b
add esp, 4
mov dword [esi + 4], 0
push 0xc
push esi
call fcn.00419f4a
add esp, 8
mov dword [ebp - 0x94], 0
movups xmm0, xmmword [ebp - 0x90]
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0
movups xmmword [edi], xmm0
movq xmm0, qword [ebp - 0x80]
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x18]
movq qword [edi + 0x10], xmm0
test eax, eax
je 0x41058a
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0x1c]
cmp edx, 8
jb 0x4105c8
mov ecx, dword [ebp - 0x30]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4105be
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4108b0
push edx
push ecx
call fcn.00419f4a
add esp, 8
xor eax, eax
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x34]
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 7
mov word [ebp - 0x30], ax
cmp edx, 8
jb 0x41061a
mov ecx, dword [ebp - 0x48]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x410610
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4108b5
push edx
push ecx
call fcn.00419f4a
add esp, 8
xor eax, eax
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x34], 7
mov word [ebp - 0x48], ax
cmp edx, 8
jb 0x41066c
mov ecx, dword [ebp - 0x60]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x410662
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4108ba
push edx
push ecx
call fcn.00419f4a
add esp, 8
xor eax, eax
mov dword [ebp - 0x50], 0
mov byte [ebp - 4], al
mov edx, dword [ebp - 0x64]
mov dword [ebp - 0x4c], 7
mov word [ebp - 0x60], ax
cmp edx, 8
jb 0x4106bd
mov ecx, dword [ebp - 0x78]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4106b3
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4108bf
push edx
push ecx
call fcn.00419f4a
add esp, 8
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x64], 7
mov word [ebp - 0x78], ax
test ecx, ecx
je 0x41086b
mov edx, dword [ecx]
push ecx
call dword [edx + 8]
jmp 0x41086b
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0x1c]
cmp edx, 8
jb 0x41072c
mov ecx, dword [ebp - 0x30]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x410722
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4108c4
push edx
push ecx
call fcn.00419f4a
add esp, 8
xor eax, eax
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x34]
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 7
mov word [ebp - 0x30], ax
cmp edx, 8
jb 0x41077e
mov ecx, dword [ebp - 0x48]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x410774
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4108c9
push edx
push ecx
call fcn.00419f4a
add esp, 8
xor eax, eax
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x34], 7
mov word [ebp - 0x48], ax
cmp edx, 8
jb 0x4107d0
mov ecx, dword [ebp - 0x60]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4107c6
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4108ce
push edx
push ecx
call fcn.00419f4a
add esp, 8
xor eax, eax
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 7
mov word [ebp - 0x60], ax
push 3
xor eax, eax
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 7
mov ecx, edi
push 0x447638
mov word [edi], ax
call fcn.0040b840
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x64]
cmp edx, 8
jb 0x410843
mov ecx, dword [ebp - 0x78]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x410839
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4108d3
push edx
push ecx
call fcn.00419f4a
add esp, 8
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov word [ebp - 0x78], ax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x64], 7
test eax, eax
je 0x41086b
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00419c6a
mov esp, ebp
pop ebp
ret
push 0x80004003
call fcn.004198c0
push 0x8007000e
call fcn.004198c0
push 0x80004003
call fcn.004198c0
push 0x80004003
call fcn.004198c0
call fcn.0042045f
call fcn.0042045f
call fcn.0042045f
call fcn.0042045f
call fcn.0042045f
call fcn.0042045f
call fcn.0042045f
call fcn.0042045f
int3