Function at 0x1001a4ee
Capabilities:
Get geographical location

Disassembly:
sub esp, 0x18
mov eax, dword [esp + 0x20]
xorps xmm0, xmm0
push ebx
push ebp
push esi
mov esi, dword [esp + 0x28]
xor ebx, ebx
movdqu xmmword [eax], xmm0
push edi
mov edi, ecx
mov dword [esp + 0x18], ebx
movdqu xmmword [eax + 0x10], xmm0
xor ecx, ecx
xor edx, edx
movq qword [eax + 0x20], xmm0
xor eax, eax
mov dword [edi + 0x56], eax
mov word [edi + 0x54], ax
mov dword [edi + 0xe0], eax
movzx eax, word [esi]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], ecx
cmp eax, 0x3b
je 0x1001a238
test ax, ax
je 0x1001a238
movzx eax, word [esi + 2]
add esi, 2
cmp eax, 0x3b
jne 0x1001a227
movzx eax, word [esi]
mov ebp, dword [esp + 0x38]
test ax, ax
je 0x1001a39d
cmp ax, 0x20
jne 0x1001a259
mov edi, edi
add esi, 2
cmp word [esi], 0x20
je 0x1001a250
cmp word [esi], 0x3b
jne 0x1001a391
movzx eax, word [esi + 2]
add esi, 2
test ax, ax
je 0x1001a391
cmp eax, 0x20
jne 0x1001a289
jmp 0x1001a280
add esi, 2
cmp word [esi], 0x20
je 0x1001a280
movzx eax, word [esi]
test ax, ax
je 0x1001a391
mov ebp, esi
cmp ax, 0x3d
je 0x1001a2b1
cmp ax, 0x20
je 0x1001a2b1
movzx eax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x1001a297
jmp 0x1001a2b7
cmp word [esi], 0
jne 0x1001a2cb
mov ebx, dword [esp + 0x38]
mov ecx, ebx
push 1
push 0xfffffc15
call fcn.1001c1e0
jmp 0x1001a2cf
mov ebx, dword [esp + 0x38]
mov edi, esi
sub edi, ebp
sar edi, 1
cmp word [esi], 0x20
jne 0x1001a2e9
jmp 0x1001a2e0
add esi, 2
cmp word [esi], 0x20
je 0x1001a2e0
cmp word [esi], 0x3d
jne 0x1001a2f8
add esi, 2
cmp word [esi], 0
jne 0x1001a306
push 1
push 0xfffffc15
mov ecx, ebx
call fcn.1001c1e0
cmp word [esi], 0x20
mov ebx, esi
jne 0x1001a319
mov edi, edi
add esi, 2
cmp word [esi], 0x20
je 0x1001a310
cmp dword [esp + 0x20], 0
jne 0x1001a3f4
push 3
push ebp
push 0x10001e2c
call fcn.10043310
add esp, 0xc
test eax, eax
jne 0x1001a3f4
cmp edi, 3
jne 0x1001a3f4
movzx eax, word [ebx]
xor ecx, ecx
mov dword [esp + 0x20], 1
mov esi, ebx
test ax, ax
je 0x1001a587
mov edx, dword [esp + 0x30]
cmp ax, 0x3b
je 0x1001a587
cmp ax, 0x5c
jne 0x1001a378
cmp word [esi + 2], 0
je 0x1001a3dd
cmp ecx, 0x14
jge 0x1001a3dd
add esi, 2
mov word [edx + ecx*2], ax
inc ecx
movzx eax, word [esi]
test ax, ax
jne 0x1001a361
mov ebp, dword [esp + 0x38]
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
test byte [ebp], 8
jne 0x1001a5d6
cmp dword [esp + 0x34], 0
jne 0x1001a5d6
cmp dword [esp + 0x24], 0
jne 0x1001a5d6
test ebx, ebx
jne 0x1001a5a8
push 1
push 0xfffffbdb
mov ecx, ebp
call fcn.1001c1e0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret 0x10
mov ebp, dword [esp + 0x38]
mov ecx, ebp
push 1
push 0xfffff88f
call fcn.1001c1e0
jmp case.default.0x1001a4e7
cmp word [esi], 0
jne 0x1001a411
mov ebp, dword [esp + 0x38]
mov ecx, ebp
push 1
push 0xfffffc15
call fcn.1001c1e0
jmp case.default.0x1001a4e7
push 6
push ebp
push 0x10001e34
call fcn.10043310
add esp, 0xc
test eax, eax
jne 0x1001a42e
cmp edi, 6
jne 0x1001a42e
xor edi, edi
jmp 0x1001a4ac
push 2
push ebp
push 0x10001e44
call fcn.10043310
add esp, 0xc
test eax, eax
jne 0x1001a44c
cmp edi, 2
jne 0x1001a44c
lea edi, [eax + 1]
jmp 0x1001a4ac
push 7
push ebp
push 0x10001e4c
call fcn.10043310
add esp, 0xc
test eax, eax
jne 0x1001a46a
cmp edi, 7
jne 0x1001a46a
lea edi, [eax + 2]
jmp 0x1001a4ac
push 4
push ebp
push 0x10001e5c
call fcn.10043310
add esp, 0xc
test eax, eax
jne 0x1001a488
cmp edi, 4
jne 0x1001a488
lea edi, [eax + 3]
jmp 0x1001a4ac
push 7
push ebp
push 0x10001e68
call fcn.10043310
add esp, 0xc
test eax, eax
jne 0x1001a561
cmp edi, 7
jne 0x1001a561
lea edi, [eax + 4]
push 0
lea eax, [esp + 0x30]
push eax
push esi
call fcn.10044d20
mov ecx, dword [esp + 0x38]
add esp, 0xc
mov ebp, dword [esp + 0x38]
mov ebx, eax
cmp esi, ecx
jne 0x1001a4dc
push 1
push 0xfffffc15
mov ecx, ebp
call fcn.1001c1e0
mov ecx, dword [esp + 0x2c]
mov esi, ecx
cmp edi, 3
ja case.default.0x1001a4e7
jmp dword [edi*4 + 0x1001a5e0]
mov eax, dword [esp + 0x1c]
mov edx, 1
mov dword [esp + 0x14], edx
mov word [eax + 0x56], bx
jmp 0x1001a58f
mov eax, dword [esp + 0x1c]
mov ecx, 1
mov edx, dword [esp + 0x14]
mov dword [esp + 0x10], ecx
mov word [eax + 0x58], bx
jmp 0x1001a593
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov word [eax + 0x54], bx
mov ebx, 1
mov dword [esp + 0x18], ebx
jmp 0x1001a597
mov edi, dword [esp + 0x1c]
mov eax, 1
push ebx
mov dword [edi + 0xe0], ebx
mov word [edi + 0x56], bx
mov word [edi + 0x54], ax
call fcn.100320b0
mov word [edi + 0x58], ax
mov dword [esp + 0x24], 1
jmp case.default.0x1001a4e7
movzx eax, word [esi]
test ax, ax
je 0x1001a38d
lea ecx, [ecx]
cmp ax, 0x3b
je 0x1001a587
movzx eax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x1001a570
jmp 0x1001a38d
mov ebp, dword [esp + 0x38]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
movzx eax, word [esi]
test ax, ax
jne 0x1001a248
jmp 0x1001a39d
test edx, edx
jne 0x1001a5c4
push 1
push 0xfffffbda
mov ecx, ebp
call fcn.1001c1e0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret 0x10
test ecx, ecx
jne 0x1001a5d6
push 1
push 0xfffffbd9
mov ecx, ebp
call fcn.1001c1e0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret 0x10