Function at 0x10025447
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x40
push 8
call fcn.1007a1c9
add esp, 4
mov dword [ebp - 4], eax
mov edi, eax
mov esi, 0x1011ca45
lodsd eax, dword [esi]
stosd dword es:[edi], eax
lodsd eax, dword [esi]
stosd dword es:[edi], eax
mov dword [ebp - 8], 0
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
cmp dword [ebp + 8], 1
jne 0x10025554
mov eax, 0x10133236
push eax
mov ebx, eax
call fcn.10003e9d
pop eax
sub ebx, eax
push ecx
push ebx
push eax
shl ecx, 2
add ecx, ebx
push ecx
call fcn.1007a1c9
add esp, 4
pop esi
mov edi, eax
pop ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
pop ecx
test ecx, ecx
je 0x1002550a
push eax
lodsd eax, dword [esi]
push esi
push edi
push ecx
test eax, eax
je 0x100254fe
push eax
mov ebx, eax
call fcn.1000119b
inc eax
push eax
call fcn.1007a1c9
pop ecx
pop esi
mov edi, eax
rep movsb byte es:[edi], byte [esi]
pop ecx
pop edi
pop esi
stosd dword es:[edi], eax
dec ecx
jne 0x100254e1
pop eax
push eax
mov ebx, dword [ebp - 4]
push ebx
mov ecx, dword [ebx]
add ebx, 4
test ecx, ecx
je 0x10025529
mov eax, dword [ebx]
add ebx, 4
dec ecx
je 0x10025525
imul eax, dword [ebx]
jmp 0x1002551a
mov ecx, eax
test ecx, ecx
je 0x10025548
push ecx
mov eax, dword [ebx]
test eax, eax
je 0x10025541
push ebx
push eax
call fcn.1007a1cf
add esp, 4
pop ebx
add ebx, 4
pop ecx
dec ecx
jne 0x1002552f
call fcn.1007a1cf
add esp, 4
pop eax
mov dword [ebp - 4], eax
cmp dword [ebp + 8], 2
jne 0x10025605
mov eax, 0x10133397
push eax
mov ebx, eax
call fcn.10003e9d
pop eax
sub ebx, eax
push ecx
push ebx
push eax
shl ecx, 2
add ecx, ebx
push ecx
call fcn.1007a1c9
add esp, 4
pop esi
mov edi, eax
pop ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
pop ecx
test ecx, ecx
je 0x100255bb
push eax
lodsd eax, dword [esi]
push esi
push edi
push ecx
test eax, eax
je 0x100255af
push eax
mov ebx, eax
call fcn.1000119b
inc eax
push eax
call fcn.1007a1c9
pop ecx
pop esi
mov edi, eax
rep movsb byte es:[edi], byte [esi]
pop ecx
pop edi
pop esi
stosd dword es:[edi], eax
dec ecx
jne 0x10025592
pop eax
push eax
mov ebx, dword [ebp - 4]
push ebx
mov ecx, dword [ebx]
add ebx, 4
test ecx, ecx
je 0x100255da
mov eax, dword [ebx]
add ebx, 4
dec ecx
je 0x100255d6
imul eax, dword [ebx]
jmp 0x100255cb
mov ecx, eax
test ecx, ecx
je 0x100255f9
push ecx
mov eax, dword [ebx]
test eax, eax
je 0x100255f2
push ebx
push eax
call fcn.1007a1cf
add esp, 4
pop ebx
add ebx, 4
pop ecx
dec ecx
jne 0x100255e0
call fcn.1007a1cf
add esp, 4
pop eax
mov dword [ebp - 4], eax
cmp dword [ebp + 8], 3
jne 0x1002568f
push 0
push 0
push 0
push VariantClear
push 0
push 0x1011ca39
push VariantClear
push 0
push 0x1013341b
push 3
mov ebx, 0x1007bbd0
call fcn.1007a1e7
add esp, 0x28
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
push eax
mov ebx, dword [ebp - 4]
push ebx
mov ecx, dword [ebx]
add ebx, 4
test ecx, ecx
je 0x10025664
mov eax, dword [ebx]
add ebx, 4
dec ecx
je 0x10025660
imul eax, dword [ebx]
jmp 0x10025655
mov ecx, eax
test ecx, ecx
je 0x10025683
push ecx
mov eax, dword [ebx]
test eax, eax
je 0x1002567c
push ebx
push eax
call fcn.1007a1cf
add esp, 4
pop ebx
add ebx, 4
pop ecx
dec ecx
jne 0x1002566a
call fcn.1007a1cf
add esp, 4
pop eax
mov dword [ebp - 4], eax
mov ebx, dword [ebp + 0xc]
push dword [ebx]
push str.http:__mobsec_dianhua.baidu.com_dianhua_api_open_location_tel
mov ecx, 2
call fcn.10001206
add esp, 8
mov dword [ebp - 0x28], eax
push VariantClear
push 0
mov eax, dword [ebp - 0x28]
test eax, eax
jne 0x100256bc
mov eax, 0x1011ca30
push eax
push 1
mov eax, 6
mov ebx, 0x100e4cc0
call fcn.1007a1ed
add esp, 0x10
mov dword [ebp - 0x2c], eax
mov ebx, dword [ebp - 0x28]
test ebx, ebx
je 0x100256e7
push ebx
call fcn.1007a1cf
add esp, 4
push 0
push 0
push 0
push VariantClear
push 0
push 0x10134078
push VariantClear
push 0
push 0x1013407c
push reloc.WS2_32.dll_getpeername
push 0
mov eax, dword [ebp - 0x2c]
test eax, eax
jne 0x10025718
mov eax, 0x1011ca45
push eax
push 4
mov eax, 5
mov ebx, 0x100e4a20
call fcn.1007a1ed
add esp, 0x34
mov dword [ebp - 0x30], eax
mov ebx, dword [ebp - 0x2c]
test ebx, ebx
je 0x10025743
push ebx
call fcn.1007a1cf
add esp, 4
push reloc.WS2_32.dll_getpeername
push 0
mov eax, dword [ebp - 0x30]
test eax, eax
jne 0x10025756
mov eax, 0x1011ca45
push eax
push 1
mov ebx, 0x1007c530
call fcn.1007a1e7
add esp, 0x10
mov dword [ebp - 0x34], eax
mov ebx, dword [ebp - 0x30]
test ebx, ebx
je 0x1002577c
push ebx
call fcn.1007a1cf
add esp, 4
mov eax, dword [ebp - 0x34]
push eax
mov ebx, dword [ebp - 8]
test ebx, ebx
je 0x10025790
push ebx
call fcn.1007a1cf
add esp, 4
pop eax
mov dword [ebp - 8], eax
push reloc.OLEAUT32.dll_SysReAllocString
push 0
push 0
push 0
push 0
push 0
push VariantClear
push 0
push str.operator
push VariantClear
push 0
mov eax, dword [ebp - 8]
test eax, eax
jne 0x100257c5
mov eax, 0x1011ca30
push eax
push 4
mov ebx, 0x1007ae90
call fcn.1007a1e7
add esp, 0x34
mov dword [ebp - 0x30], eax
fild dword [ebp - 0x30]
fstp qword [ebp - 0x30]
fld qword [ebp - 0x30]
fadd qword [0x1013408b]
fstp qword [ebp - 0x38]
fld qword [ebp - 0x38]
call fcn.1000127b
mov dword [ebp - 0xc], eax
push reloc.OLEAUT32.dll_SysReAllocString
push 0
push 0
push 0x80000301
push 0
push dword [ebp - 0xc]
push VariantClear
push 0
push 0x1011ca39
push VariantClear
push 0
mov eax, dword [ebp - 8]
test eax, eax
jne 0x1002582d
mov eax, 0x1011ca30
push eax
push 4
mov ebx, 0x1007ae90
call fcn.1007a1e7
add esp, 0x34
mov dword [ebp - 0x10], eax
fild dword [ebp - 0x10]
fstp qword [ebp - 0x2c]
fld qword [ebp - 0x2c]
fild dword [ebp - 0xc]
fstp qword [ebp - 0x34]
fsub qword [ebp - 0x34]
fsub qword [0x1011ca56]
fstp qword [ebp - 0x3c]
fld qword [ebp - 0x3c]
call fcn.1000127b
push 0x80000301
push 0
push eax
push 0x80000301
push 0
push dword [ebp - 0xc]
push VariantClear
push 0
mov eax, dword [ebp - 8]
test eax, eax
jne 0x1002588b
mov eax, 0x1011ca30
push eax
push 3
mov ebx, 0x1007ac30
call fcn.1007a1e7
add esp, 0x28
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x40]
push eax
mov ebx, dword [ebp - 0x14]
test ebx, ebx
je 0x100258b5
push ebx
call fcn.1007a1cf
add esp, 4
pop eax
mov dword [ebp - 0x14], eax
push reloc.OLEAUT32.dll_SysReAllocString
push 0
push 0
push 0
push 0
push 0
push VariantClear
push 0
push 0x10134093
push VariantClear
push 0
mov eax, dword [ebp - 8]
test eax, eax
jne 0x100258ea
mov eax, 0x1011ca30
push eax
push 4
mov ebx, 0x1007ae90
call fcn.1007a1e7
add esp, 0x34
mov dword [ebp - 0x30], eax
fild dword [ebp - 0x30]
fstp qword [ebp - 0x30]
fld qword [ebp - 0x30]
fadd qword [0x1013408b]
fstp qword [ebp - 0x38]
fld qword [ebp - 0x38]
call fcn.1000127b
mov dword [ebp - 0xc], eax
push reloc.OLEAUT32.dll_SysReAllocString
push 0
push 0
push 0x80000301
push 0
push dword [ebp - 0xc]
push VariantClear
push 0
push 0x1011ca39
push VariantClear
push 0
mov eax, dword [ebp - 8]
test eax, eax
jne 0x10025952
mov eax, 0x1011ca30
push eax
push 4
mov ebx, 0x1007ae90
call fcn.1007a1e7
add esp, 0x34
mov dword [ebp - 0x10], eax
fild dword [ebp - 0x10]
fstp qword [ebp - 0x2c]
fld qword [ebp - 0x2c]
fild dword [ebp - 0xc]
fstp qword [ebp - 0x34]
fsub qword [ebp - 0x34]
fsub qword [0x1011ca3b]
fstp qword [ebp - 0x3c]
fld qword [ebp - 0x3c]
call fcn.1000127b
push 0x80000301
push 0
push eax
push 0x80000301
push 0
push dword [ebp - 0xc]
push VariantClear
push 0
mov eax, dword [ebp - 8]
test eax, eax
jne 0x100259b0
mov eax, 0x1011ca30
push eax
push 3
mov ebx, 0x1007ac30
call fcn.1007a1e7
add esp, 0x28
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x40]
push eax
mov ebx, dword [ebp - 0x18]
test ebx, ebx
je 0x100259da
push ebx
call fcn.1007a1cf
add esp, 4
pop eax
mov dword [ebp - 0x18], eax
push reloc.OLEAUT32.dll_SysReAllocString
push 0
push 0
push 0
push 0
push 0
push VariantClear
push 0
push str.city
push VariantClear
push 0
mov eax, dword [ebp - 8]
test eax, eax
jne 0x10025a0f
mov eax, 0x1011ca30
push eax
push 4
mov ebx, 0x1007ae90
call fcn.1007a1e7
add esp, 0x34
mov dword [ebp - 0x30], eax
fild dword [ebp - 0x30]
fstp qword [ebp - 0x30]
fld qword [ebp - 0x30]
fadd qword [0x101340a1]
fstp qword [ebp - 0x38]
fld qword [ebp - 0x38]
call fcn.1000127b
mov dword [ebp - 0xc], eax
push reloc.OLEAUT32.dll_SysReAllocString
push 0
push 0
push 0x80000301
push 0
push dword [ebp - 0xc]
push VariantClear
push 0
push 0x1011ca39
push VariantClear
push 0
mov eax, dword [ebp - 8]
test eax, eax
jne 0x10025a77
mov eax, 0x1011ca30
push eax
push 4
mov ebx, 0x1007ae90
call fcn.1007a1e7
add esp, 0x34
mov dword [ebp - 0x10], eax
fild dword [ebp - 0x10]
fstp qword [ebp - 0x2c]
fld qword [ebp - 0x2c]
fild dword [ebp - 0xc]
fstp qword [ebp - 0x34]
fsub qword [ebp - 0x34]
fsub qword [0x1013282a]
fstp qword [ebp - 0x3c]
fld qword [ebp - 0x3c]
call fcn.1000127b
push 0x80000301
push 0
push eax
push 0x80000301
push 0
push dword [ebp - 0xc]
push VariantClear
push 0
mov eax, dword [ebp - 8]
test eax, eax
jne 0x10025ad5
mov eax, 0x1011ca30
push eax
push 3
mov ebx, 0x1007ac30
call fcn.1007a1e7
add esp, 0x28
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x40]
push eax
mov ebx, dword [ebp - 0x1c]
test ebx, ebx
je 0x10025aff
push ebx
call fcn.1007a1cf
add esp, 4
pop eax
mov dword [ebp - 0x1c], eax
mov ebx, dword [ebp - 4]
call fcn.10001262
xor ecx, ecx
push eax
lea eax, [ebp - 0x20]
mov ebx, eax
pop eax
inc ecx
push ecx
push ebx
mov dword [ebx], ecx
push eax
cmp ecx, eax
jg 0x10025d1b
cmp dword [ebp + 8], 1
je 0x10025b3a
cmp dword [ebp + 8], 2
je 0x10025b3a
xor eax, eax
jmp 0x10025b3f
mov eax, 1
test eax, eax
je 0x10025c28
mov ebx, dword [ebp - 4]
mov ecx, dword [ebx]
inc ecx
shl ecx, 2
add ebx, ecx
push ebx
mov eax, dword [ebp - 0x20]
dec eax
pop ebx
shl eax, 2
add ebx, eax
mov dword [ebp - 0x28], ebx
push reloc.OLEAUT32.dll_SysReAllocString
push 0
push 0
push 0
push 0
push 0
push VariantClear
push 0
mov eax, dword [ebp - 0x18]
test eax, eax
jne 0x10025b85
mov eax, 0x1011ca30
push eax
push VariantClear
push 0
mov ebx, dword [ebp - 0x28]
mov eax, dword [ebx]
test eax, eax
jne 0x10025b9b
mov eax, 0x1011ca30
push eax
push 4
mov ebx, 0x1007ae90
call fcn.1007a1e7
add esp, 0x34
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0xffffffff
jle 0x10025c28
mov ebx, dword [ebp - 4]
mov ecx, dword [ebx]
inc ecx
shl ecx, 2
add ebx, ecx
push ebx
mov eax, dword [ebp - 0x20]
dec eax
pop ebx
shl eax, 2
add ebx, eax
mov dword [ebp - 0x28], ebx
push 0x80000301
push 0
push 2
push VariantClear
push 0
mov ebx, dword [ebp - 0x28]
mov eax, dword [ebx]
test eax, eax
jne 0x10025bf5
mov eax, 0x1011ca30
push eax
push 2
mov ebx, 0x1007abe0
call fcn.1007a1e7
add esp, 0x1c
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
push eax
mov ebx, dword [ebp - 0x24]
test ebx, ebx
je 0x10025c1f
push ebx
call fcn.1007a1cf
add esp, 4
pop eax
mov dword [ebp - 0x24], eax
jmp 0x10025d1b
cmp dword [ebp + 8], 3
jne 0x10025d13
mov ebx, dword [ebp - 4]
mov ecx, dword [ebx]
inc ecx
shl ecx, 2
add ebx, ecx
push ebx
mov eax, dword [ebp - 0x20]
dec eax
pop ebx
shl eax, 2
add ebx, eax
mov dword [ebp - 0x28], ebx
push reloc.OLEAUT32.dll_SysReAllocString
push 0
push 0
push 0
push 0
push 0
push VariantClear
push 0
mov eax, dword [ebp - 0x1c]
test eax, eax
jne 0x10025c70
mov eax, 0x1011ca30
push eax
push VariantClear
push 0
mov ebx, dword [ebp - 0x28]
mov eax, dword [ebx]
test eax, eax
jne 0x10025c86
mov eax, 0x1011ca30
push eax
push 4
mov ebx, 0x1007ae90
call fcn.1007a1e7
add esp, 0x34
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0xffffffff
jle 0x10025d13
mov ebx, dword [ebp - 4]
mov ecx, dword [ebx]
inc ecx
shl ecx, 2
add ebx, ecx
push ebx
mov eax, dword [ebp - 0x20]
dec eax
pop ebx
shl eax, 2
add ebx, eax
mov dword [ebp - 0x28], ebx
push 0x80000301
push 0
push 3
push VariantClear
push 0
mov ebx, dword [ebp - 0x28]
mov eax, dword [ebx]
test eax, eax
jne 0x10025ce0
mov eax, 0x1011ca30
push eax
push 2
mov ebx, 0x1007abe0
call fcn.1007a1e7
add esp, 0x1c
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
push eax
mov ebx, dword [ebp - 0x24]
test ebx, ebx
je 0x10025d0a
push ebx
call fcn.1007a1cf
add esp, 4
pop eax
mov dword [ebp - 0x24], eax
jmp 0x10025d1b
pop eax
pop ebx
pop ecx
jmp 0x10025b14
add esp, 0xc
cmp dword [ebp + 8], 1
je 0x10025d36
cmp dword [ebp + 8], 2
je 0x10025d36
xor eax, eax
jmp 0x10025d3b
mov eax, 1
test eax, eax
je 0x10025d76
push 0x1011ca30
push dword [ebp - 0x24]
call fcn.1000102c
add esp, 8
cmp eax, 0
jne 0x10025d76
mov eax, 0x101340a9
push eax
mov ebx, dword [ebp - 0x24]
test ebx, ebx
je 0x10025d72
push ebx
call fcn.1007a1cf
add esp, 4
pop eax
mov dword [ebp - 0x24], eax
cmp dword [ebp + 8], 3
jne 0x10025db3
push 0x1011ca30
push dword [ebp - 0x24]
call fcn.1000102c
add esp, 8
cmp eax, 0
jne 0x10025db3
mov eax, 0x101340ac
push eax
mov ebx, dword [ebp - 0x24]
test ebx, ebx
je 0x10025daf
push ebx
call fcn.1007a1cf
add esp, 4
pop eax
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
test eax, eax
je 0x10025dcf
push eax
mov ebx, eax
call fcn.1000119b
inc eax
push eax
call fcn.1007a1c9
pop ecx
pop esi
mov edi, eax
rep movsb byte es:[edi], byte [esi]
jmp 0x10025dd4
push eax
mov ebx, dword [ebp - 4]
push ebx
mov ecx, dword [ebx]
add ebx, 4
test ecx, ecx
je 0x10025df3
mov eax, dword [ebx]
add ebx, 4
dec ecx
je 0x10025def
imul eax, dword [ebx]
jmp 0x10025de4
mov ecx, eax
test ecx, ecx
je 0x10025e12
push ecx
mov eax, dword [ebx]
test eax, eax
je 0x10025e0b
push ebx
push eax
call fcn.1007a1cf
add esp, 4
pop ebx
add ebx, 4
pop ecx
dec ecx
jne 0x10025df9
call fcn.1007a1cf
add esp, 4
mov ebx, dword [ebp - 8]
test ebx, ebx
je 0x10025e2a
push ebx
call fcn.1007a1cf
add esp, 4
mov ebx, dword [ebp - 0x14]
test ebx, ebx
je 0x10025e3a
push ebx
call fcn.1007a1cf
add esp, 4
mov ebx, dword [ebp - 0x18]
test ebx, ebx
je 0x10025e4a
push ebx
call fcn.1007a1cf
add esp, 4
mov ebx, dword [ebp - 0x1c]
test ebx, ebx
je 0x10025e5a
push ebx
call fcn.1007a1cf
add esp, 4
mov ebx, dword [ebp - 0x24]
test ebx, ebx
je 0x10025e6a
push ebx
call fcn.1007a1cf
add esp, 4
pop eax
mov esp, ebp
pop ebp
ret 8