Function at 0x413e40
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 0x4140ae
sub esp, 0x28
movzx edx, byte [esp + 0x30]
movzx eax, dl
cmp eax, 0x88
jae 0x4140a3
mov ecx, dword [esp + 0x2c]
test byte [ecx], al
mov ebx, dword [ecx + eax*4 + 0x14]
movzx ebp, word [ebx + 0x3c]
cmp dword [ebx + 0x1c], ebp
jne 0x41408d
mov dword [esp + 0x20], eax
lea ebp, [0x9955e0]
cmp ebx, ebp
je 0x413fa3
mov ebp, dword [0x974fb0]
add ebp, 3
cmp dword [ebx + 0x34], ebp
jne 0x414077
mov dword [esp + 0x1c], ebx
shl eax, 7
lea edx, [0x975050]
add eax, edx
mov dword [esp], eax
mov dword [esp + 4], ebx
call fcn.004149a0
lea eax, [0x99b460]
mov dword [esp], eax
call fcn.00432a30
mov eax, dword [esp + 0x1c]
movzx ecx, word [eax + 0x3c]
movzx edx, word [eax + 0x42]
movzx ebx, byte [esp + 0x30]
shr bl, 1
movsx ebx, bl
mov esi, ecx
sub ecx, edx
cmp ebx, 0x44
jae 0x41406b
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 4]
mov dword [esp + 0x24], eax
test byte [eax], al
sub esi, edx
mov edx, 0
sbb edx, 0
mov dword [esp + 0x18], edx
lea ebx, [eax + ebx*8 + 0x48]
mov dword [esp], ebx
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
call fcn.00402cc0
movzx eax, byte [esp + 0x30]
cmp al, 5
jne 0x413f58
mov eax, dword [esp + 0x24]
add eax, 0x30
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx + 0x10]
mov dword [esp], eax
mov dword [esp + 8], 0
mov dword [esp + 4], edx
call fcn.00402cc0
mov eax, dword [esp + 0x2c]
mov dword [eax + 0x10], 0
lea eax, [0x99b460]
mov dword [esp], eax
call fcn.00432b20
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x44]
mov eax, dword [esp + 0x14]
mul ecx
mov ebp, dword [esp + 0x18]
imul ebp, ecx
lea ecx, [ebp + edx]
nop
lea edx, [0x995dc8]
mov dword [esp], edx
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
call fcn.00402cc0
mov eax, dword [esp + 0x1c]
mov word [eax + 0x42], 0
mov eax, dword [esp + 0x20]
shl eax, 7
lea edx, [0x975050]
add eax, edx
mov dword [esp], eax
call fcn.00414600
mov eax, dword [esp + 4]
test eax, eax
je 0x414055
movzx ecx, word [eax + 0x3c]
cmp dword [eax + 0x1c], ecx
je 0x41403f
mov dword [esp + 0x1c], eax
mov ecx, dword [0x974fb0]
add ecx, 3
mov dword [eax + 0x34], ecx
movzx ecx, word [eax + 0x3c]
mov word [eax + 0x42], cx
movzx ecx, word [eax + 0x3c]
imul ecx, dword [eax + 0x44]
mov edx, dword [eax + 0x10]
shl edx, 0xd
mov ebx, dword [esp + 0x2c]
mov ebp, dword [ebx + 4]
lea esi, [0x995ca0]
mov dword [esp], esi
sub edx, ecx
mov ecx, 0
sbb ecx, 0
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], ebp
call fcn.00421d80
mov eax, dword [esp + 0x2c]
mov dword [eax + 4], 0
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
mov dword [eax + ecx*4 + 0x14], edx
add esp, 0x28
ret
lea eax, [0x740e88]
mov dword [esp], eax
mov dword [esp + 4], 0x16
call fcn.00439230
lea eax, [0x73cf84]
mov dword [esp], eax
mov dword [esp + 4], 0xd
call fcn.00439230
mov eax, ebx
mov ecx, 0x44
call fcn.00468ed0
lea eax, [0x740e72]
mov dword [esp], eax
mov dword [esp + 4], 0x16
call fcn.00439230
lea eax, [0x74a4ff]
mov dword [esp], eax
mov dword [esp + 4], 0x28
call fcn.00439230
mov ecx, 0x88
call fcn.00468ed0
nop
call fcn.00467a60
jmp fcn.00413e40