Function at 0x100160e0
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10092107
mov eax, dword fs:[0]
push eax
sub esp, 0x80
mov eax, dword [0x1013c270]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
xorps xmm0, xmm0
mov dword [ebp - 0x78], 0xf
push 0x19
push str.SoftwarexiaoyuCityCheck
lea ecx, [ebp - 0x8c]
movq qword [ebp - 0x38], xmm0
movups xmmword [ebp - 0x58], xmm0
mov dword [ebp - 0x7c], 0
movups xmmword [ebp - 0x48], xmm0
mov byte [ebp - 0x8c], 0
call fcn.10002cf0
push 0
push 0
lea eax, [ebp - 0x8c]
mov dword [ebp - 4], 0
push eax
push reloc.WS2_32.dll_accept
lea ecx, [ebp - 0x58]
call fcn.10010390
mov eax, dword [ebp - 0x78]
mov byte [ebp - 4], 2
cmp eax, 0x10
jb 0x10016184
inc eax
lea ecx, [ebp - 0x8c]
push eax
push dword [ebp - 0x8c]
call fcn.10002c10
push 4
push 0x10094ec8
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x78], 0xf
mov dword [ebp - 0x7c], 0
mov byte [ebp - 0x8c], 0
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
call fcn.10002cf0
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 3
push eax
lea eax, [ebp - 0x74]
push eax
lea ecx, [ebp - 0x58]
call fcn.10010460
mov edi, eax
cmp esi, edi
je 0x1001620c
mov eax, dword [esi + 0x14]
cmp eax, 0x10
jb 0x100161e7
inc eax
mov ecx, esi
push eax
push dword [esi]
call fcn.10002c10
mov dword [esi + 0x14], 0xf
cmp dword [esi + 0x14], 0x10
mov dword [esi + 0x10], 0
jb 0x100161ff
mov eax, dword [esi]
jmp 0x10016201
mov eax, esi
push edi
mov ecx, esi
mov byte [eax], 0
call fcn.100023b0
mov eax, dword [ebp - 0x60]
cmp eax, 0x10
jb 0x10016221
inc eax
lea ecx, [ebp - 0x74]
push eax
push dword [ebp - 0x74]
call fcn.10002c10
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x60], 0xf
mov dword [ebp - 0x64], 0
mov byte [ebp - 0x74], 0
mov byte [ebp - 4], 2
cmp eax, 0x10
jb 0x1001624c
inc eax
lea ecx, [ebp - 0x28]
push eax
push dword [ebp - 0x28]
call fcn.10002c10
cmp dword [esi + 0x10], 0
mov byte [ebp - 0x59], 1
je 0x10016364
xorps xmm0, xmm0
mov dword [ebp - 0x14], 0
push 4
push 0x100abd50
lea ecx, [ebp - 0x74]
movlpd qword [ebp - 0x30], xmm0
movq qword [ebp - 0x1c], xmm0
mov dword [ebp - 0x60], 0xf
mov dword [ebp - 0x64], 0
mov byte [ebp - 0x74], 0
call fcn.10002cf0
lea eax, [ebp - 0x74]
mov byte [ebp - 4], 5
push eax
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebp - 0x58]
call fcn.100105b0
mov eax, dword [ebp - 0x60]
mov byte [ebp - 4], 2
cmp eax, 0x10
jb 0x100162bc
inc eax
lea ecx, [ebp - 0x74]
push eax
push dword [ebp - 0x74]
call fcn.10002c10
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
cmp ecx, eax
je 0x100162d6
sub eax, ecx
push eax
push ecx
lea eax, [ebp - 0x30]
push eax
call fcn.1006d790
add esp, 0xc
push 0
call fcn.1006fc72
add esp, 4
sub eax, dword [ebp - 0x30]
sbb edx, dword [ebp - 0x2c]
push 0
push 0x15180
push edx
push eax
call fcn.10054ea0
mov ecx, eax
mov eax, edx
cdq
xor eax, edx
xor ecx, edx
sub ecx, edx
sbb eax, edx
test eax, eax
jg 0x10016310
jl 0x1001630c
cmp ecx, 5
jae 0x10016310
mov byte [ebp - 0x59], 0
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
je 0x1001635a
mov eax, dword [ebp - 0x14]
sub eax, ecx
cmp eax, 0x1000
jb 0x10016351
test cl, 0x1f
je 0x1001632d
call fcn.1006f4f6
mov eax, dword [ecx - 4]
cmp eax, ecx
jb 0x10016339
call fcn.1006f4f6
sub ecx, eax
cmp ecx, 4
jae 0x10016345
call fcn.1006f4f6
cmp ecx, 0x23
jbe 0x1001634f
call fcn.1006f4f6
mov ecx, eax
push ecx
call fcn.100547d8
add esp, 4
cmp byte [ebp - 0x59], 0
je 0x100164cd
lea eax, [ebp - 0x74]
mov ecx, esi
push eax
call fcn.10015eb0
mov edi, eax
cmp esi, edi
je 0x100163ad
mov eax, dword [esi + 0x14]
cmp eax, 0x10
jb 0x10016388
inc eax
mov ecx, esi
push eax
push dword [esi]
call fcn.10002c10
mov dword [esi + 0x14], 0xf
cmp dword [esi + 0x14], 0x10
mov dword [esi + 0x10], 0
jb 0x100163a0
mov eax, dword [esi]
jmp 0x100163a2
mov eax, esi
push edi
mov ecx, esi
mov byte [eax], 0
call fcn.100023b0
mov eax, dword [ebp - 0x60]
mov byte [ebp - 4], 2
cmp eax, 0x10
jb 0x100163fb
mov ecx, dword [ebp - 0x74]
inc eax
cmp eax, 0x1000
jb 0x100163f2
test cl, 0x1f
je 0x100163ce
call fcn.1006f4f6
mov eax, dword [ecx - 4]
cmp eax, ecx
jb 0x100163da
call fcn.1006f4f6
sub ecx, eax
cmp ecx, 4
jae 0x100163e6
call fcn.1006f4f6
cmp ecx, 0x23
jbe 0x100163f0
call fcn.1006f4f6
mov ecx, eax
push ecx
call fcn.100547d8
add esp, 4
push 0x10094ec8
lea ecx, [ebp - 0x74]
call fcn.10002df0
push esi
lea eax, [ebp - 0x74]
mov byte [ebp - 4], 7
push eax
lea ecx, [ebp - 0x58]
call fcn.10010410
mov eax, dword [ebp - 0x60]
cmp eax, 0x10
jb 0x1001642e
inc eax
lea ecx, [ebp - 0x74]
push eax
push dword [ebp - 0x74]
call fcn.10002c10
push 0
call fcn.1006fc72
xorps xmm0, xmm0
mov dword [ebp - 0x14], 0
movq qword [ebp - 0x1c], xmm0
lea esi, [ebp - 0x30]
add esp, 4
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
mov byte [ebp - 4], 8
mov edi, 8
nop
push esi
lea ecx, [ebp - 0x1c]
call fcn.10001bd0
inc esi
sub edi, 1
jne 0x10016470
push 4
push 0x100abd50
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x60], 0xf
mov dword [ebp - 0x64], edi
mov byte [ebp - 0x74], 0
call fcn.10002cf0
lea eax, [ebp - 0x1c]
mov byte [ebp - 4], 9
push eax
lea eax, [ebp - 0x74]
push eax
lea ecx, [ebp - 0x58]
call fcn.10010560
mov eax, dword [ebp - 0x60]
cmp eax, 0x10
jb 0x100164c5
inc eax
lea ecx, [ebp - 0x74]
push eax
push dword [ebp - 0x74]
call fcn.10002c10
lea ecx, [ebp - 0x1c]
call fcn.10001c70
lea ecx, [ebp - 0x58]
call fcn.100103e0
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.10054c42
mov esp, ebp
pop ebp
ret