Function at 0x4665a0
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 0x466a8f
add esp, 0xffffff80
mov ecx, dword [esp + 0x84]
test ecx, ecx
je 0x466a76
movzx ebp, byte [ecx + 0xf]
and ebp, 0x1f
xchg ebp, eax
cmp al, 0x13
xchg ebp, eax
jne 0x466a76
lea edi, [esp + 0x38]
xor eax, eax
call fcn.004690f8
mov ecx, dword [esp + 0x84]
movzx ebp, byte [ecx + 0xc]
xchg ebp, eax
test al, 1
xchg ebp, eax
je 0x4665fc
mov edx, 0x34
jmp 0x466601
mov edx, 0x24
movzx ebp, word [ecx + 0x20]
test bp, bp
jne 0x466610
xor ebp, ebp
xor esi, esi
jmp 0x466622
movzx ebp, bp
lea esi, [edx + ecx]
cmp ebp, 0x10000
ja 0x466a6a
mov dword [esp + 0x18], ebp
mov dword [esp + 0x28], esi
xor edx, edx
jmp 0x46665d
mov dword [esp + 0x24], edx
mov eax, dword [esi + edx*4]
lea ecx, [esp + 0x38]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00455be0
mov eax, dword [esp + 0x24]
lea edx, [eax + 1]
xor eax, eax
mov ecx, dword [esp + 0x84]
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x28]
cmp ebp, edx
jg 0x46662e
mov ebp, dword [esp + 0x48]
add ebp, 3
and ebp, 0xfffffffc
mov dword [esp + 0x48], ebp
mov dword [esp + 0x54], ebp
movzx esi, word [ecx + 0x22]
and esi, 0x7fff
nop
test si, si
jne 0x466687
xor edx, edx
jmp 0x4666aa
movzx edi, word [ecx + 0x20]
lea edx, [esi + edi]
movzx edx, dx
cmp edx, 0x20000
ja 0x466a60
movzx edi, di
cmp edi, edx
ja 0x466a57
sub edx, edi
cmp edx, 1
jne 0x466a3f
test si, si
jne 0x4666be
xor edx, edx
xor edi, edi
jmp 0x46670e
movzx edi, byte [ecx + 0xc]
xchg edi, eax
test al, 1
xchg edi, eax
je 0x4666d0
mov edx, 0x34
jmp 0x4666d5
mov edx, 0x24
movzx edi, word [ecx + 0x20]
lea ebx, [esi + edi]
movzx ebx, bx
add edx, ecx
cmp ebx, 0x20000
ja 0x466a33
movzx edi, di
cmp edi, ebx
ja 0x466a2a
sub ebx, edi
mov dword [esp + 0x14], ebx
neg ebx
shl edi, 2
sar ebx, 0x1f
and edi, ebx
add edi, edx
mov edx, dword [esp + 0x14]
test edx, edx
jbe 0x466a21
mov edi, dword [edi]
cmp dword [edi], 4
jne 0x466a09
test si, si
jne 0x46672c
xor ebx, ebx
xor edx, edx
jmp 0x466779
movzx edi, byte [ecx + 0xc]
xchg edi, eax
test al, 1
xchg edi, eax
je 0x46673e
mov edx, 0x34
jmp 0x466743
mov edx, 0x24
movzx edi, word [ecx + 0x20]
add esi, edi
movzx esi, si
add ecx, edx
cmp esi, 0x20000
ja 0x4669fd
movzx edx, di
cmp edx, esi
ja 0x4669f4
sub esi, edx
mov ebx, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
shl edx, 2
sar esi, 0x1f
and edx, esi
add edx, ecx
test ebx, ebx
jbe 0x4669eb
mov ecx, dword [edx]
movzx ecx, byte [ecx + 0xf]
and ecx, 0x1f
cmp cl, 0xd
je 0x4669d3
cmp cl, 0xe
je 0x4669d3
mov ecx, dword [0x995008]
test ecx, ecx
jne 0x4667ad
lea ecx, [ebp + 4]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x48]
add ecx, 3
and ecx, 0xfffffffc
add ecx, dword [esp + 0x4c]
cmp ecx, 0x100
ja 0x4669bb
movzx ecx, byte [esp + 0x8c]
test cl, cl
je 0x4667d9
mov edx, dword [esp + 0x44]
jmp 0x4667db
xor edx, edx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x30], 0
mov byte [esp + 0x34], 0
mov eax, dword [esp + 0x88]
mov dword [esp + 0x30], eax
mov byte [esp + 0x34], cl
nop
nop
nop
lea eax, [0x981660]
mov dword [esp], eax
call fcn.0040a350
mov eax, dword [0x994ee4]
lea ecx, [0x6f7140]
mov dword [esp], ecx
mov dword [esp + 4], eax
lea eax, [esp + 0x30]
mov dword [esp + 8], eax
call fcn.0040d520
movzx eax, byte [esp + 0x10]
test al, al
jne 0x466955
mov ecx, dword [0x994ee4]
test ecx, ecx
jne 0x46686b
call fcn.0040cf60
mov eax, dword [0x995310]
mov ecx, dword [esp]
test eax, eax
je 0x466865
call fcn.00468e70
mov dword [edi], ecx
mov edx, dword [0x994ee4]
mov dword [edi + 4], edx
mov dword [0x994ee4], ecx
mov ecx, dword [0x994ee8]
cmp ecx, 0x7d0
jge 0x466994
mov dword [esp + 0x20], ecx
lea edi, [esp + 0x58]
xor eax, eax
call fcn.004690f6
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x5c], ecx
lea edi, [esp + 0x60]
lea esi, [esp + 0x38]
call fcn.004695c0
mov eax, dword [esp + 0x20]
cmp eax, 0x7d0
jae 0x46698a
lea ecx, [eax + eax*4]
mov dword [esp + 0x24], ecx
mov edx, dword [0x995310]
lea ebx, [0x981664]
lea edi, [ebx + ecx*8]
test edx, edx
je 0x4668f4
mov dword [esp + 0x2c], edi
lea eax, [0x70f6e0]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x58]
mov dword [esp + 8], eax
call fcn.00411b70
mov edi, dword [esp + 0x2c]
lea esi, [esp + 0x58]
call fcn.004695ac
mov eax, dword [0x994ee4]
lea ecx, [0x6f7140]
mov dword [esp], ecx
mov dword [esp + 4], eax
lea eax, [esp + 0x30]
mov dword [esp + 8], eax
call fcn.0040d8a0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x20]
mov dword [eax], ecx
inc dword [0x994ee8]
nop
nop
nop
lea eax, [0x981660]
mov dword [esp], eax
call fcn.0040a550
lea eax, [0x469dc0]
mov ecx, dword [esp + 0x24]
add eax, ecx
mov dword [esp + 0x90], eax
sub esp, 0xffffff80
ret
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
lea eax, [eax + eax*4]
mov dword [esp + 0x24], eax
nop
nop
nop
lea ecx, [0x981660]
mov dword [esp], ecx
call fcn.0040a550
lea eax, [0x469dc0]
mov ecx, dword [esp + 0x24]
add eax, ecx
mov dword [esp + 0x90], eax
sub esp, 0xffffff80
ret
mov ecx, 0x7d0
call fcn.00468ed0
nop
nop
nop
lea eax, [0x981660]
mov dword [esp], eax
call fcn.0040a550
lea eax, [0x743de4]
mov dword [esp], eax
mov dword [esp + 4], 0x1b
call fcn.00439230
lea eax, [0x6f44e0]
mov dword [esp], eax
lea eax, [0x7b0114]
mov dword [esp + 4], eax
call fcn.00438b10
lea eax, [0x6f44e0]
mov dword [esp], eax
lea eax, [0x7b010c]
mov dword [esp + 4], eax
call fcn.00438b10
xor eax, eax
mov ecx, eax
call fcn.00468ed0
mov eax, edx
mov ecx, esi
call fcn.00468f80
mov edx, esi
mov ebx, 0x20000
call fcn.00468f50
lea eax, [0x6f44e0]
mov dword [esp], eax
lea eax, [0x7b0104]
mov dword [esp + 4], eax
call fcn.00438b10
xor eax, eax
mov ecx, eax
call fcn.00468ed0
mov eax, edi
mov ecx, ebx
call fcn.00468f80
mov edx, ebx
mov ebx, 0x20000
call fcn.00468f50
lea eax, [0x6f44e0]
mov dword [esp], eax
lea eax, [0x7b0104]
mov dword [esp + 4], eax
call fcn.00438b10
mov eax, edi
mov ecx, edx
call fcn.00468f80
mov ebx, 0x20000
call fcn.00468f50
mov edx, ebp
mov ebx, 0x10000
call fcn.00468f50
lea eax, [0x6f44e0]
mov dword [esp], eax
lea eax, [0x7b0104]
mov dword [esp + 4], eax
call fcn.00438b10
nop
call fcn.00467a60
jmp fcn.004665a0