Function at 0x4a7a30
Capabilities:
Get geographical location
Reference sql statements

Disassembly:
sub esp, 0x20
push ebx
push ebp
mov ebp, dword [esp + 0x2c]
mov edx, ecx
push esi
push edi
mov edi, 0x20
mov dword [esp + 0x10], edx
xor esi, esi
mov dword [esp + 0x14], edi
test ebp, ebp
je 0x4a7fec
mov ebx, dword [esp + 0x38]
cmp ebx, 0x400
jb 0x4a7fec
cmp dword [ebp], 0x41544b4f
jne 0x4a7fec
cmp dword [ebp + 4], 0x474e4f53
jne 0x4a7fec
cmp dword [ebp + 8], 0x444f4d43
jne 0x4a7fec
cmp byte [ebp + 0x10], 0
jne 0x4a7fec
cmp byte [ebp + 0x12], 0
jne 0x4a7fec
cmp byte [ebp + 0x14], 0
jne 0x4a7fec
cmp byte [ebp + 0x16], 0
jne 0x4a7fec
cmp dword [ebp + 0xc], 0x8000000
jne 0x4a7fec
cmp dword [ebp + 0x18], 0x504d4153
jne 0x4a7fec
mov dword [edx + 0xe920], 0x8000
movzx eax, byte [ebp + 0x15]
movzx ecx, byte [ebp + 0x17]
add ecx, eax
movzx eax, byte [ebp + 0x13]
add ecx, eax
movzx eax, byte [ebp + 0x11]
add eax, 4
add eax, ecx
mov dword [edx + 0xe910], eax
cmp eax, 0x80
jbe 0x4a7b07
mov dword [edx + 0xe910], 0x80
push dword [ebp + 0x1c]
call fcn.004a8060
mov edx, dword [esp + 0x14]
mov ecx, eax
shr ecx, 5
add esp, 4
mov dword [esp + 0x2c], ecx
mov dword [edx + 0xe924], ecx
cmp ecx, 0xf0
jb 0x4a7b37
mov dword [edx + 0xe924], 0xef
mov eax, 1
mov dword [esp + 0x1c], eax
cmp ecx, eax
jb 0x4a7c3b
mov esi, dword [esp + 0x10]
lea edx, [ebp + 0x38]
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], 2
mov dword [esp + 0x28], 0x40
lea ecx, [esi + 0xe9bc]
add esi, 0x8244
mov dword [esp + 0x18], ecx
cmp edi, ebx
jae 0x4a7fdd
cmp eax, 0xf0
jae 0x4a7c0e
mov eax, dword [edx - 0x18]
mov dword [ecx], eax
mov eax, dword [edx - 0x14]
mov dword [ecx + 4], eax
mov eax, dword [edx - 0x10]
mov dword [ecx + 8], eax
mov eax, dword [edx - 0xc]
mov dword [ecx + 0xc], eax
mov eax, dword [edx - 8]
mov dword [ecx + 0x10], eax
xor eax, eax
mov word [esi + 0x1e], ax
push dword [edx - 4]
call fcn.004a8060
mov edx, dword [esp + 0x24]
and eax, 0xfffffffe
mov dword [esi - 4], eax
add esp, 4
movzx eax, word [edx]
rol ax, 8
movzx ecx, ax
mov dword [esi], ecx
movzx eax, word [edx + 2]
rol ax, 8
movzx eax, ax
add ecx, eax
mov eax, dword [esi]
add eax, 2
mov dword [esi + 4], ecx
cmp eax, ecx
jae 0x4a7beb
mov eax, dword [esp + 0x24]
mov word [esi + 0x1e], ax
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x18]
mov word [esi + 0x1c], ax
movzx eax, byte [edx + 5]
shl ax, 2
mov word [esi + 0x1a], ax
mov eax, dword [esp + 0x1c]
mov dword [esi + 0x14], 0x20ab
inc eax
add edi, 0x20
add edx, 0x20
mov dword [esp + 0x14], edi
add ecx, 0x20
mov dword [esp + 0x20], edx
add esi, 0x40
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], ecx
cmp eax, dword [esp + 0x2c]
jbe 0x4a7b73
mov edx, dword [esp + 0x10]
xor esi, esi
cmp edi, ebx
jae 0x4a7fdd
cmp dword [edi + ebp], 0x45455053
jne 0x4a7c6c
movzx eax, byte [edi + ebp + 9]
mov dword [edx + 0xe900], eax
push dword [edi + ebp + 4]
call fcn.004a8060
add edi, 8
add esp, 4
add edi, eax
mov dword [esp + 0x14], edi
cmp edi, ebx
jae 0x4a7fdd
cmp dword [edi + ebp], 0x4e454c53
jne 0x4a7c92
push dword [edi + ebp + 4]
call fcn.004a8060
add edi, 8
add esp, 4
add edi, eax
mov dword [esp + 0x14], edi
cmp edi, ebx
jae 0x4a7fdd
cmp dword [edi + ebp], 0x4e454c50
lea eax, [edi + ebp]
jne 0x4a7cbe
push dword [eax + 4]
movzx esi, byte [eax + 9]
call fcn.004a8060
add edi, 8
add esp, 4
add edi, eax
mov dword [esp + 0x14], edi
cmp edi, ebx
jae 0x4a7fdd
cmp dword [edi + ebp], 0x54544150
lea eax, [edi + ebp]
mov dword [esp + 0x2c], eax
jne 0x4a7d46
cmp esi, 0x100
jb 0x4a7ce3
mov esi, 0xff
xor ecx, ecx
test esi, esi
je 0x4a7d05
mov ebp, dword [esp + 0x2c]
mov edx, dword [esp + 0x10]
mov al, byte [ecx + ebp + 0xa]
mov byte [edx + ecx + 0xd060], al
inc ecx
cmp ecx, esi
jb 0x4a7cf1
mov ebp, dword [esp + 0x34]
cmp esi, 1
jbe 0x4a7d31
mov eax, dword [esp + 0x10]
mov edx, 0xffff2fa1
lea ecx, [eax + 0xd05f]
add ecx, esi
sub edx, eax
lea ecx, [ecx]
cmp byte [ecx], 0
jne 0x4a7d31
mov byte [ecx], 0xff
dec ecx
lea eax, [edx + ecx]
cmp eax, 1
ja 0x4a7d20
push dword [edi + ebp + 4]
call fcn.004a8060
add edi, 8
add esp, 4
add edi, eax
mov dword [esp + 0x14], edi
mov edx, dword [esp + 0x10]
lea eax, [edi + 0xa]
xor ecx, ecx
mov dword [esp + 0x18], ecx
cmp eax, ebx
jae 0x4a7f51
lea eax, [edx + 0xce80]
mov dword [esp + 0x20], eax
lea eax, [edx + 0xcac0]
mov dword [esp + 0x1c], eax
nop
cmp dword [edi + ebp], 0x444f4250
jne 0x4a7f51
movzx esi, byte [edi + ebp + 9]
test esi, esi
jne 0x4a7d8b
mov esi, 0x40
cmp ecx, 0xf0
jae 0x4a7f19
push dword [edx + 0xe910]
push esi
call fcn.00495350
mov ecx, dword [esp + 0x24]
add esp, 8
mov dword [ecx], eax
test eax, eax
je 0x4a7fdd
mov ecx, dword [esp + 0x20]
xor ebx, ebx
mov edx, dword [esp + 0x10]
mov word [ecx], si
mov ecx, dword [edx + 0xe910]
imul ecx, esi
mov dword [esp + 0x2c], ecx
test ecx, ecx
je 0x4a7f11
lea esi, [edi + 0xc]
mov edi, 2
add esi, ebp
sub edi, ebp
mov ebp, ecx
jmp 0x4a7df0
lea ecx, [edi + esi]
cmp ecx, dword [esp + 0x38]
ja 0x4a7f09
movzx ecx, byte [esi - 2]
test ecx, ecx
je 0x4a7e12
add cl, 0x30
mov byte [eax], cl
mov cl, byte [esi - 1]
inc cl
mov byte [eax + 1], cl
movzx ecx, byte [esi]
movzx edx, byte [esi + 1]
dec ecx
mov byte [eax + 5], dl
cmp ecx, 0x1e
ja case.0x4a7e2d.3
movzx ecx, byte [ecx + 0x4a8018]
jmp dword [ecx*4 + 0x4a7ff8]
test edx, edx
je case.0x4a7e2d.3
mov byte [eax + 3], 2
jmp case.0x4a7e2d.3
test edx, edx
je case.0x4a7e2d.3
mov byte [eax + 3], 3
jmp case.0x4a7e2d.3
mov byte [eax + 3], 1
jmp case.0x4a7e2d.3
and dl, 0xf
mov byte [eax + 3], 0x13
mov byte [eax + 5], dl
jmp case.0x4a7e2d.3
mov byte [eax + 3], 0xc
jmp case.0x4a7e2d.3
mov byte [eax + 3], 0x10
jmp case.0x4a7e2d.3
cmp edx, 0x40
ja 0x4a7e8b
mov byte [eax + 3], 0xd
jmp case.0x4a7e2d.3
cmp edx, 0x50
ja 0x4a7ea2
and dl, 0xf
mov byte [eax + 3], 0xb
mov byte [eax + 5], dl
jne case.0x4a7e2d.3
mov byte [eax + 5], 0xf
jmp case.0x4a7e2d.3
cmp edx, 0x60
ja 0x4a7ebb
shl dl, 4
mov byte [eax + 3], 0xb
mov byte [eax + 5], dl
test dl, dl
jne case.0x4a7e2d.3
mov byte [eax + 5], 0xf0
jmp case.0x4a7e2d.3
cmp edx, 0x70
ja 0x4a7eda
mov cl, dl
mov byte [eax + 3], 0x13
and cl, 0xf
or cl, 0xb0
mov byte [eax + 5], cl
test dl, 0xf
jne case.0x4a7e2d.3
mov byte [eax + 5], 0xbf
jmp case.0x4a7e2d.3
cmp edx, 0x80
ja case.0x4a7e2d.3
mov cl, dl
mov byte [eax + 3], 0x13
and cl, 0xf
or cl, 0xa0
mov byte [eax + 5], cl
test dl, 0xf
jne case.0x4a7e2d.3
mov byte [eax + 5], 0xaf
inc ebx
add eax, 6
add esi, 4
cmp ebx, ebp
jb 0x4a7df0
mov edi, dword [esp + 0x14]
mov ebp, dword [esp + 0x34]
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x38]
push dword [edi + ebp + 4]
add dword [esp + 0x20], 4
inc ecx
add dword [esp + 0x24], 2
mov dword [esp + 0x1c], ecx
call fcn.004a8060
mov edx, dword [esp + 0x14]
add eax, 8
add edi, eax
add esp, 4
mov dword [esp + 0x14], edi
lea eax, [edi + 0xa]
cmp eax, ebx
jae 0x4a7f51
mov ecx, dword [esp + 0x18]
jmp 0x4a7d70
lea eax, [edi + 0xa]
mov esi, 1
cmp eax, ebx
jae 0x4a7fdd
lea ecx, [edx + 0x8240]
mov dword [esp + 0x38], ecx
jmp 0x4a7f70
cmp dword [edi + ebp], 0x444f4253
jne 0x4a7fdd
cmp esi, 0xf0
jae 0x4a7f99
mov eax, ebx
sub eax, edi
sub eax, 8
push eax
lea eax, [ebp + 8]
add eax, edi
push eax
push 0
push ecx
mov ecx, edx
call fcn.004960e0
mov ecx, dword [edi + ebp + 4]
inc esi
mov edx, ecx
mov eax, ecx
shr eax, 0x10
and edx, 0xff0000
or edx, eax
mov eax, ecx
shl eax, 0x10
and ecx, 0xff00
or eax, ecx
shr edx, 8
mov ecx, dword [esp + 0x38]
shl eax, 8
add ecx, 0x40
or edx, eax
mov dword [esp + 0x38], ecx
add edx, 8
add edi, edx
mov edx, dword [esp + 0x10]
lea eax, [edi + 0xa]
cmp eax, ebx
jb 0x4a7f70
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x20
ret 8
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x20
ret 8