Function at 0x5a4140
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 0x5a437e
sub esp, 0x30
mov eax, dword [esp + 0x34]
mov ecx, dword [eax]
test ecx, ecx
jne 0x5a4361
movzx ecx, byte [esp + 0x38]
mov edx, ecx
and ecx, 0x1f
cmp cl, 0x1f
je 0x5a42dd
nop
mov byte [esp + 0x23], 0
mov byte [esp + 0x23], dl
mov ecx, dword [eax]
test ecx, ecx
je 0x5a418f
mov edx, eax
jmp 0x5a42bc
mov ecx, dword [eax + 0x18]
test ecx, ecx
jne 0x5a4365
mov ecx, dword [eax + 0xc]
inc ecx
test ecx, ecx
jg 0x5a41eb
lea eax, [0x701240]
mov dword [esp], eax
call fcn.0040c500
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x1b
lea ecx, [0x7440d8]
mov dword [eax], ecx
lea ecx, [0x7b0bb8]
mov edx, dword [esp + 0x34]
mov dword [edx], ecx
mov ebx, dword [0x995310]
test ebx, ebx
je 0x5a41e6
call fcn.00468e70
mov dword [edi], eax
mov ebx, dword [edx + 4]
mov dword [edi + 4], ebx
mov dword [edx + 4], eax
mov eax, edx
movzx ecx, byte [eax + 0x14]
test cl, cl
je 0x5a4245
mov ecx, dword [eax + 0xc]
inc ecx
cmp dword [eax + 0x10], ecx
jge 0x5a4245
lea eax, [0x701240]
mov dword [esp], eax
call fcn.0040c500
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x36
lea ecx, [0x74f236]
mov dword [eax], ecx
lea ecx, [0x7b0bb8]
mov edx, dword [esp + 0x34]
mov dword [edx], ecx
mov ecx, dword [0x995310]
test ecx, ecx
je 0x5a4240
call fcn.00468e70
mov dword [edi], eax
mov ecx, dword [edx + 4]
mov dword [edi + 4], ecx
mov dword [edx + 4], eax
jmp 0x5a42bc
mov ecx, dword [eax + 0x10]
mov edx, dword [eax + 0xc]
lea ebx, [edx + 1]
mov ebp, dword [eax + 8]
cmp ecx, ebx
jae 0x5a428f
mov dword [esp + 0x24], edx
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 1
lea eax, [0x6f4820]
mov dword [esp + 0x10], eax
call fcn.0044e6e0
mov ebp, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x24]
movzx esi, byte [esp + 0x23]
xchg esi, eax
mov byte [ebp + edx], al
xchg esi, eax
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ecx
mov ecx, dword [0x995310]
test ecx, ecx
je 0x5a42b7
call fcn.00468e70
mov dword [edi], ebp
mov ecx, dword [eax + 8]
mov dword [edi + 4], ecx
mov dword [eax + 8], ebp
mov edx, eax
mov dword [esp], edx
mov dword [esp + 4], 1
mov byte [esp + 8], 1
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xc], eax
call fcn.005a69a0
add esp, 0x30
ret
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
lea eax, [0x703e60]
mov dword [esp + 0x28], eax
movzx eax, dl
lea ecx, [0x945c20]
lea eax, [ecx + eax*8]
mov dword [esp + 0x2c], eax
lea eax, [0x7510d8]
mov dword [esp], eax
mov dword [esp + 4], 0x42
lea eax, [esp + 0x28]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call fcn.004c1f50
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x34]
mov dword [edx], eax
mov eax, dword [0x995310]
test eax, eax
je 0x5a435a
call fcn.00468e70
mov dword [edi], ecx
mov eax, dword [edx + 4]
mov dword [edi + 4], eax
mov dword [edx + 4], ecx
add esp, 0x30
ret
add esp, 0x30
ret
lea eax, [0x6f44e0]
mov dword [esp], eax
lea eax, [0x7b06f0]
mov dword [esp + 4], eax
call fcn.00438b10
nop
call fcn.00467a60
jmp fcn.005a4140