Function at 0x4cfb30
Capabilities:
Reference http user-agent string

Disassembly:
mov ecx, dword [0x99504c]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x4cfecf
sub esp, 0x4c
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
xor edx, edx
xor ebx, ebx
jmp 0x4cfb56
inc edx
cmp eax, edx
jle 0x4cfbaf
movzx ebp, byte [ecx + edx]
xchg ebp, eax
cmp al, 0x80
xchg ebp, eax
jae 0x4cfb85
test bl, bl
je 0x4cfb70
mov ebx, 1
jmp 0x4cfb55
xchg ebp, eax
cmp al, 0x41
xchg ebp, eax
jb 0x4cfb81
xchg ebp, eax
cmp al, 0x5a
xchg ebp, eax
setbe bl
jmp 0x4cfb55
xor ebx, ebx
jmp 0x4cfb55
lea edx, [0x758960]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.004cf730
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], ecx
add esp, 0x4c
ret
test bl, bl
je 0x4cfbf1
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
lea ecx, [esp + 0x3c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004cbd10
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
xor edx, edx
xor ebx, ebx
jmp 0x4cfbfe
mov dword [esp + 0x58], ecx
mov dword [esp + 0x5c], eax
add esp, 0x4c
ret
inc edx
cmp eax, edx
jle 0x4cfd86
movzx ebp, byte [ecx + edx]
lea esi, [ebp - 0x41]
xchg esi, eax
cmp al, 0x19
xchg esi, eax
ja 0x4cfbfd
mov dword [esp + 0x24], edx
xchg ebp, eax
mov byte [esp + 0x23], al
xchg ebp, eax
cmp ebx, edx
jge 0x4cfcfa
ja 0x4cfec5
mov esi, edx
sub edx, ebx
mov edi, edx
neg edx
sar edx, 0x1f
and ebx, edx
mov edx, dword [esp + 0x3c]
add ebx, ecx
nop
test edx, edx
je 0x4cfc56
lea ecx, [esp + 0x3c]
cmp edx, ecx
jne 0x4cfead
mov ecx, dword [esp + 0x50]
jmp 0x4cfc5e
lea edx, [esp + 0x3c]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
lea eax, [edi + ecx]
mov esi, dword [esp + 0x40]
cmp edx, eax
jae 0x4cfcb3
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x28], edi
mov dword [esp + 0x34], ebx
mov dword [esp], esi
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov dword [esp + 0xc], edi
lea eax, [0x6f4820]
mov dword [esp + 0x10], eax
call fcn.0044e6e0
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x34]
mov edi, dword [esp + 0x28]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x28], eax
mov dword [esp + 0x38], esi
add ecx, esi
mov dword [esp], ecx
mov dword [esp + 4], ebx
mov dword [esp + 8], edi
call fcn.004697f0
mov eax, dword [esp + 0x28]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x24]
movzx ebp, byte [esp + 0x23]
mov ebx, dword [esp + 0x3c]
nop
nop
test ebx, ebx
je 0x4cfd11
lea esi, [esp + 0x3c]
cmp ebx, esi
je 0x4cfd19
jmp 0x4cfe95
lea ebx, [esp + 0x3c]
mov dword [esp + 0x3c], ebx
mov ebx, dword [esp + 0x48]
mov esi, dword [esp + 0x44]
inc esi
mov edi, dword [esp + 0x40]
cmp ebx, esi
jae 0x4cfd71
mov dword [esp], edi
mov dword [esp + 4], esi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x6f4820]
mov dword [esp + 0x10], eax
call fcn.0044e6e0
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
mov dword [esp + 0x48], eax
mov dword [esp + 0x40], edi
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x24]
movzx ebp, byte [esp + 0x23]
mov dword [esp + 0x44], esi
add ebp, 0x20
xchg ebp, eax
mov byte [esi + edi - 1], al
xchg ebp, eax
lea ebx, [edx + 1]
jmp 0x4cfbfd
cmp eax, ebx
jle 0x4cfe4a
jb 0x4cfe8c
sub eax, ebx
mov edx, eax
neg eax
sar eax, 0x1f
and ebx, eax
mov eax, dword [esp + 0x3c]
add ecx, ebx
nop
test eax, eax
je 0x4cfdb7
lea ebx, [esp + 0x3c]
cmp eax, ebx
je 0x4cfdbf
jmp 0x4cfe74
lea eax, [esp + 0x3c]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x48]
mov ebx, dword [esp + 0x44]
lea ebp, [ebx + edx]
mov esi, dword [esp + 0x40]
cmp eax, ebp
jae 0x4cfe14
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x28], ebx
mov dword [esp], esi
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
lea eax, [0x6f4820]
mov dword [esp + 0x10], eax
call fcn.0044e6e0
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x28], eax
mov dword [esp + 0x38], esi
add ebx, esi
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.004697f0
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
mov ecx, eax
neg eax
mov edx, dword [esp + 0x44]
cmp edx, eax
ja 0x4cfe66
mov dword [esp + 0x58], ecx
mov dword [esp + 0x5c], edx
add esp, 0x4c
ret
test ecx, ecx
je 0x4cfe6f
call fcn.0045ff10
call fcn.0045ff50
lea eax, [0x6f44e0]
mov dword [esp], eax
lea eax, [0x7b028c]
mov dword [esp + 4], eax
call fcn.00438b10
mov ecx, eax
mov eax, ebx
call fcn.00468f30
lea eax, [0x6f44e0]
mov dword [esp], eax
lea eax, [0x7b028c]
mov dword [esp + 4], eax
call fcn.00438b10
lea eax, [0x6f44e0]
mov dword [esp], eax
lea eax, [0x7b028c]
mov dword [esp + 4], eax
call fcn.00438b10
mov eax, ebx
mov ecx, edx
call fcn.00468f30
nop
call fcn.00467a60
jmp fcn.004cfb30