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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x4529ef
sub esp, 0x48
mov edx, dword [esp + 0x50]
movzx ebx, byte [edx + 0xf]
and ebx, 0x1f
cmp bl, 0xb
jbe 0x45280c
cmp bl, 0x11
jbe 0x4527cc
cmp bl, 0x16
je 0x452827
cmp bl, 0x19
jne 0x4527c2
mov ebx, dword [edx + 0x28]
mov dword [esp + 0x30], ebx
mov ebp, dword [esp + 0x54]
mov esi, dword [esp + 0x4c]
xor eax, eax
jmp 0x45299d
cmp bl, 0x1a
je 0x452827
jmp 0x45290d
cmp bl, 0xc
je 0x452827
cmp bl, 0x11
jne 0x45290d
cmp dword [edx + 0x28], 1
jne 0x45290d
mov eax, dword [edx + 0x20]
mov ecx, dword [esp + 0x4c]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 8], eax
call fcn.00452770
movzx eax, byte [esp + 0xc]
mov byte [esp + 0x58], al
add esp, 0x48
ret
cmp bl, 6
ja 0x45281e
lea ecx, [ebx - 1]
cmp cl, 4
jbe 0x452827
jmp 0x45297f
cmp bl, 0xa
ja 0x452908
mov ecx, dword [edx]
mov edx, dword [esp + 0x4c]
mov ebx, dword [edx + 0x18]
mov ebp, dword [0x92b300]
cmp ebp, ebx
jle 0x4528fd
mov dword [esp + 0x24], ecx
lea edi, [esp + 0x34]
xor eax, eax
call fcn.004627ab
mov dword [esp + 0x34], 2
mov ecx, dword [edx + 0xc]
mov eax, ebx
mov ebx, dword [esp + 0x54]
add ecx, ebx
mov dword [esp + 0x38], ecx
mov ecx, dword [edx + 0x18]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x44], ecx
mov ecx, dword [edx + 4]
lea ebx, [ecx + 1]
mov esi, ebp
mov ebp, dword [edx]
mov edi, edx
mov edx, dword [edx + 8]
cmp edx, ebx
jae 0x4528dc
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], esi
lea eax, [0x6da9c0]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ebx
call fcn.00449730
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x4c]
mov dword [edi + 8], edx
mov edx, dword [0x92b5b0]
test edx, edx
jne 0x4528cd
mov dword [edi], eax
jmp 0x4528d2
call fcn.00462510
mov esi, dword [esp + 0x2c]
mov ebp, eax
mov eax, dword [esp + 0x30]
lea edx, [ecx + 1]
mov dword [edi + 4], edx
lea ecx, [ecx + ecx*4]
lea ecx, [ebp + ecx*4]
mov edx, edi
mov edi, ecx
mov ebx, esi
lea esi, [esp + 0x34]
call fcn.00462c8e
inc dword [edx + 0x18]
cmp ebx, eax
setg al
mov byte [esp + 0x58], al
add esp, 0x48
ret
cmp bl, 0xb
jne 0x45290d
mov dword [esp], edx
call fcn.0045abc0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov dword [esp], 0
lea edx, [0x6fb1f3]
mov dword [esp + 4], edx
mov dword [esp + 8], 0x16
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
lea eax, [0x7086d0]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], 0x37
call fcn.0044f020
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00409020
mov eax, dword [esp + 8]
lea ecx, [0x6b76c0]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004350f0
cmp bl, 6
je 0x45290d
jmp 0x45290d
mov edi, dword [esp + 0x28]
lea eax, [edi + 1]
mov ebx, dword [esp + 0x30]
mov ebp, dword [esp + 0x54]
mov esi, dword [esp + 0x4c]
mov edx, dword [esp + 0x50]
cmp eax, ebx
jge 0x4529e0
mov edi, dword [edx + 0x24]
mov ecx, dword [edx + 0x28]
cmp eax, ecx
jae 0x4529e9
mov dword [esp + 0x28], eax
lea ecx, [eax + eax*2]
mov edx, dword [edi + ecx*4 + 4]
mov ecx, dword [edi + ecx*4 + 8]
mov dword [esp], esi
mov dword [esp + 4], edx
shr ecx, 1
add ecx, ebp
mov dword [esp + 8], ecx
call fcn.00452770
movzx eax, byte [esp + 0xc]
test al, al
jne 0x452986
mov byte [esp + 0x58], 0
add esp, 0x48
ret
mov byte [esp + 0x58], 1
add esp, 0x48
ret
call fcn.00462590
nop
call fcn.00461140
jmp fcn.00452770