Function at 0x4bb4e0
Capabilities:
Get geographical location

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x4bbb96
sub esp, 0x3c
movzx edx, byte [esp + 0x50]
test dl, dl
je 0x4bbaad
mov edx, dword [esp + 0x44]
test edx, edx
setb bl
mov ebp, dword [esp + 0x48]
test ebp, ebp
xchg edi, ebx
sete bl
xchg edi, ebx
mov eax, ebp
xchg ebp, ebx
setl bl
xchg ebp, ebx
and ebx, edi
or ebp, ebx
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x4bbaa4
xor ebx, ebx
sub ebx, edx
mov edx, 0
sbb edx, eax
xchg ebp, eax
mov byte [esp + 0x1b], al
xchg ebp, eax
mov edi, dword [esp + 0x40]
mov eax, ebp
lea ebp, [edi + 0x18]
mov ecx, edx
movzx edx, byte [edi + 4]
test dl, dl
je 0x4bba8e
mov edx, dword [edi + 0x10]
add edx, dword [edi + 0x14]
add edx, 3
cmp edx, 0x44
jg 0x4bba4e
mov edx, 0x44
mov dword [esp + 0x28], edx
mov esi, ebp
movzx ebp, byte [edi + 5]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x4bba01
mov ebp, dword [edi + 0x14]
test ebp, ebp
jne 0x4bb5a5
test ebx, ebx
xchg edi, ebx
sete bl
xchg edi, ebx
test ecx, ecx
sete dl
and edx, edi
test dl, dl
jne 0x4bb9d2
mov dword [esp + 0x20], ebp
mov edx, dword [esp + 0x4c]
cmp edx, 8
jg 0x4bb88f
cmp edx, 2
jne 0x4bb818
mov edi, dword [esp + 0x28]
jmp 0x4bb5e0
mov byte [ebp + esi - 1], bl
mov ebx, ecx
shl ebx, 0x1f
mov ebp, dword [esp + 0x34]
shr ebp, 1
or ebx, ebp
shr ecx, 1
mov edx, dword [esp + 0x4c]
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x24], edi
test ecx, ecx
sete dl
xchg ebp, ebx
seta bl
xchg ebp, ebx
cmp ebx, 2
xchg edi, ebx
setae bl
xchg edi, ebx
and edi, edx
or ebp, edi
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x4bb622
mov dword [esp + 0x34], ebx
and ebx, 1
add ebx, 0x30
mov ebp, dword [esp + 0x24]
lea edi, [ebp - 1]
mov edx, dword [esp + 0x28]
cmp edi, edx
jb 0x4bb5c5
jmp 0x4bbb50
mov edx, dword [esp + 0x24]
test ecx, ecx
jne 0x4bbb43
mov ecx, dword [esp + 0x5c]
cmp ebx, ecx
jae 0x4bbb3c
lea ebp, [edx - 1]
mov edi, dword [esp + 0x58]
movzx ebx, byte [edi + ebx]
mov edi, dword [esp + 0x28]
cmp ebp, edi
jae 0x4bbb33
mov byte [edx + esi - 1], bl
mov edx, dword [esp + 0x20]
jmp 0x4bb664
mov byte [ebp + esi - 1], 0x30
mov ebp, edi
mov edi, ebx
test ebp, ebp
jle 0x4bb811
mov ebx, edi
sub edi, ebp
cmp edx, edi
jle 0x4bb680
lea edi, [ebp - 1]
cmp edi, ebx
jb 0x4bb65b
jmp 0x4bbb2a
mov edx, dword [esp + 0x40]
movzx edi, byte [edx + 8]
xchg edi, eax
test al, al
xchg edi, eax
je 0x4bb80a
mov edi, dword [esp + 0x4c]
cmp edi, 2
jne 0x4bb78f
lea edi, [ebp - 1]
cmp edi, ebx
jae 0x4bbb21
mov byte [ebp + esi - 1], 0x62
lea edi, [ebp - 2]
cmp edi, ebx
jae 0x4bbb18
mov byte [ebp + esi - 2], 0x30
mov ebp, dword [esp + 0x54]
cmp ebp, 0x4f
jne 0x4bb786
lea ebp, [edi - 1]
cmp ebp, ebx
jae 0x4bbae1
mov byte [edi + esi - 1], 0x6f
lea ebp, [edi - 2]
cmp ebp, ebx
jae 0x4bbad8
mov byte [edi + esi - 2], 0x30
test al, al
je 0x4bb747
lea eax, [ebp - 1]
cmp eax, ebx
jae 0x4bbad1
mov byte [ebp + esi - 1], 0x2d
movzx ebp, byte [edx + 0xa]
mov byte [edx + 0xa], 0
cmp eax, ebx
ja 0x4bbabc
xchg ebp, eax
mov byte [esp + 0x1a], al
xchg ebp, eax
mov dword [esp], edx
sub ebx, eax
mov ecx, ebx
neg ebx
sar ebx, 0x1f
and eax, ebx
add eax, esi
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ecx
call fcn.004babc0
movzx eax, byte [esp + 0x1a]
mov ecx, dword [esp + 0x40]
mov byte [ecx + 0xa], al
add esp, 0x3c
ret
movzx edi, byte [edx + 7]
xchg edi, eax
test al, al
xchg edi, eax
je 0x4bb763
lea eax, [ebp - 1]
cmp eax, ebx
jae 0x4bbaca
mov byte [ebp + esi - 1], 0x2b
jmp 0x4bb700
movzx edi, byte [edx + 9]
xchg edi, eax
test al, al
xchg edi, eax
je 0x4bb77f
lea eax, [ebp - 1]
cmp eax, ebx
jae 0x4bbac3
mov byte [ebp + esi - 1], 0x20
jmp 0x4bb700
mov eax, ebp
jmp 0x4bb700
test al, al
mov ebp, edi
jmp 0x4bb6ee
cmp edi, 8
jne 0x4bb7c3
cmp ebp, ebx
jae 0x4bbb0f
movzx edi, byte [esi + ebp]
xchg edi, eax
cmp al, 0x30
xchg edi, eax
je 0x4bb7bc
lea edi, [ebp - 1]
cmp edi, ebx
jae 0x4bbb06
mov byte [ebp + esi - 1], 0x30
jmp 0x4bb6bf
mov edi, ebp
jmp 0x4bb6bf
cmp edi, 0x10
jne 0x4bb803
cmp ecx, 0x10
jbe 0x4bbafc
lea edi, [ebp - 1]
mov ecx, edx
mov edx, dword [esp + 0x58]
movzx edx, byte [edx + 0x10]
cmp edi, ebx
jae 0x4bbaf3
mov byte [ebp + esi - 1], dl
lea edx, [ebp - 2]
cmp edx, ebx
jae 0x4bbaea
mov byte [ebp + esi - 2], 0x30
mov edi, edx
mov edx, ecx
jmp 0x4bb6bf
mov edi, ebp
jmp 0x4bb6bf
mov edi, ebp
jmp 0x4bb6bf
mov ebx, edi
jmp 0x4bb680
cmp edx, 8
jne 0x4bbb7d
mov edi, dword [esp + 0x28]
jmp 0x4bb844
mov byte [ebp + esi - 1], bl
mov ebx, ecx
shl ebx, 0x1d
mov ebp, dword [esp + 0x34]
shr ebp, 3
or ebx, ebp
shr ecx, 3
mov edx, dword [esp + 0x4c]
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x24], edi
cmp ebx, 8
setae dl
test ecx, ecx
xchg ebp, ebx
sete bl
xchg ebp, ebx
xchg edi, ebx
seta bl
xchg edi, ebx
and ebp, edx
or edi, ebp
xchg edi, eax
test al, al
xchg edi, eax
je 0x4bb886
mov dword [esp + 0x34], ebx
and ebx, 7
add ebx, 0x30
mov ebp, dword [esp + 0x24]
lea edi, [ebp - 1]
mov edx, dword [esp + 0x28]
cmp edi, edx
jb 0x4bb827
jmp 0x4bbb59
mov edx, dword [esp + 0x24]
jmp 0x4bb626
cmp edx, 0xa
jne 0x4bb940
mov dword [esp + 0x38], esi
mov edi, dword [esp + 0x28]
jmp 0x4bb8bf
mov edi, dword [esp + 0x38]
mov byte [eax + edi - 1], dl
movzx eax, byte [esp + 0x1b]
mov edx, dword [esp + 0x4c]
mov ecx, esi
mov edi, ebp
mov ebp, dword [esp + 0x20]
mov esi, dword [esp + 0x38]
mov dword [esp + 0x24], edi
test ecx, ecx
seta dl
xchg ebp, ebx
sete bl
xchg ebp, ebx
cmp ebx, 0xa
xchg edi, ebx
setae bl
xchg edi, ebx
and edi, ebp
or edi, edx
xchg edi, eax
test al, al
xchg edi, eax
je 0x4bb937
mov eax, ebx
add ebx, 0x30
mov dword [esp + 0x34], ebx
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 0xa
mov dword [esp + 0xc], 0
call fcn.00454400
mov eax, dword [esp + 0x10]
mov ecx, 0xa
mov ebx, eax
mul ecx
mov edx, dword [esp + 0x34]
sub edx, eax
mov eax, dword [esp + 0x24]
lea ebp, [eax - 1]
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x28]
cmp ebp, edi
jb 0x4bb8a2
jmp 0x4bbb74
mov edx, dword [esp + 0x24]
jmp 0x4bb626
cmp edx, 0x10
jne 0x4bbb7d
mov edi, dword [esp + 0x28]
jmp 0x4bb972
mov byte [edi + esi - 1], bl
mov ebx, ecx
shl ebx, 0x1c
mov edi, dword [esp + 0x34]
shr edi, 4
or ebx, edi
shr ecx, 4
mov edi, dword [esp + 0x5c]
mov edx, dword [esp + 0x4c]
mov edi, ebp
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x24], edi
test ecx, ecx
seta dl
cmp ebx, 0x10
xchg ebp, ebx
setae bl
xchg ebp, ebx
test ecx, ecx
xchg edi, ebx
sete bl
xchg edi, ebx
and edi, ebp
or edi, edx
xchg edi, eax
test al, al
xchg edi, eax
je 0x4bb9c9
mov edx, ebx
and ebx, 0xf
mov ebp, dword [esp + 0x5c]
cmp ebx, ebp
jae 0x4bbb6b
mov dword [esp + 0x34], edx
mov edi, dword [esp + 0x24]
lea ebp, [edi - 1]
mov edx, dword [esp + 0x58]
movzx ebx, byte [edx + ebx]
mov edx, dword [esp + 0x28]
cmp ebp, edx
jb 0x4bb94f
jmp 0x4bbb62
mov edx, dword [esp + 0x24]
jmp 0x4bb626
mov eax, dword [esp + 0x40]
movzx ecx, byte [eax + 0xa]
mov byte [esp + 0x19], cl
mov byte [eax + 0xa], 0
mov edx, dword [eax + 0x10]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.004baa60
movzx eax, byte [esp + 0x19]
mov ecx, dword [esp + 0x40]
mov byte [ecx + 0xa], al
add esp, 0x3c
ret
movzx ebp, byte [edi + 0xa]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x4bba47
movzx ebp, byte [edi + 4]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x4bba47
mov ebp, dword [edi + 0x10]
test al, al
je 0x4bba22
dec ebp
jmp 0x4bb5a5
movzx edx, byte [edi + 7]
test dl, dl
je 0x4bba30
mov edx, dword [esp + 0x28]
jmp 0x4bba1c
movzx edx, byte [edi + 9]
test dl, dl
je 0x4bba3e
mov edx, dword [esp + 0x28]
jmp 0x4bba1c
mov edx, dword [esp + 0x28]
jmp 0x4bb5a5
xor ebp, ebp
jmp 0x4bb5a5
mov dword [esp + 0x1c], edx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x2c], ecx
lea eax, [0x776ce0]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], edx
call fcn.00443670
mov ebp, dword [esp + 0xc]
movzx eax, byte [esp + 0x1b]
mov ecx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x30]
mov edi, dword [esp + 0x40]
mov edx, dword [esp + 0x1c]
jmp 0x4bb572
movzx edx, byte [edi + 5]
test dl, dl
jne 0x4bb55b
mov edx, 0x44
jmp 0x4bb572
mov ebx, edx
mov edx, eax
jmp 0x4bb53e
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x44]
xor ebp, ebp
jmp 0x4bb529
mov ecx, ebx
call fcn.00459700
mov ecx, ebx
call fcn.004596a0
mov ecx, ebx
call fcn.004596a0
mov ecx, ebx
call fcn.004596a0
mov eax, ebp
mov ecx, ebx
call fcn.004596a0
mov eax, ebp
mov ecx, ebx
call fcn.004596a0
mov eax, edx
mov ecx, ebx
call fcn.004596a0
mov eax, edi
mov ecx, ebx
call fcn.004596a0
mov eax, 0x10
call fcn.004596a0
mov eax, edi
mov ecx, ebx
call fcn.004596a0
mov eax, ebp
mov ecx, ebx
call fcn.004596a0
mov eax, edi
mov ecx, ebx
call fcn.004596a0
mov eax, edi
mov ecx, ebx
call fcn.004596a0
mov eax, edi
mov ecx, ebx
call fcn.004596a0
mov eax, ebp
mov ecx, edi
call fcn.004596a0
mov eax, ebx
call fcn.004596b0
mov esi, ecx
mov eax, ebx
mov ecx, dword [esp + 0x5c]
call fcn.00459780
mov eax, edi
mov ecx, edx
call fcn.004596a0
mov eax, edi
mov ecx, edx
call fcn.004596a0
mov eax, ebp
mov ecx, edx
call fcn.004596a0
mov eax, ebx
mov ecx, ebp
call fcn.004596b0
mov eax, ebp
mov ecx, edi
call fcn.004596a0
lea eax, [0x776aa0]
mov dword [esp], eax
lea eax, [0x873530]
mov dword [esp + 4], eax
call fcn.00430590
nop
call fcn.00457de0
jmp fcn.004bb4e0