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

Disassembly:
mov ecx, dword [0x99504c]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0xa18]
cmp eax, dword [ecx + 8]
jbe 0x5b5a97
sub esp, 0xa98
mov dword [esp + 0xa94], 0
mov ecx, dword [esp + 0xaa4]
mov dword [esp + 0xa94], ecx
xor eax, eax
jmp 0x5b559a
mov ecx, dword [esp + 0xaa4]
mov eax, 1
test eax, eax
jg 0x5b563e
mov ecx, dword [esp + 0xa94]
mov dword [esp + 0xa8c], ecx
lea edi, [esp + 0x134]
xor eax, eax
call fcn.004690f6
mov ecx, dword [esp + 0xa8c]
test byte [ecx], al
mov dword [esp], ecx
lea edx, [esp + 0x134]
mov dword [esp + 4], edx
mov dword [esp + 8], 0x28
call fcn.004034e0
movzx ecx, byte [esp + 0xc]
test cl, cl
je 0x5b558e
mov ecx, dword [esp + 0xa8c]
add ecx, 0x28
mov dword [esp + 0xa90], ecx
lea edi, [esp + 0x10c]
xor eax, eax
call fcn.004690f6
mov ecx, dword [esp + 0xa90]
mov dword [esp], ecx
lea ecx, [esp + 0x10c]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x28
call fcn.004034e0
movzx ecx, byte [esp + 0xc]
test cl, cl
je 0x5b558e
jmp 0x5b5a7e
nop
lea eax, [0x999440]
mov dword [esp], eax
lea eax, [0x758c94]
mov dword [esp + 4], eax
call fcn.00472ce0
lea edi, [esp + 0x58c]
mov ecx, 0x140
xor eax, eax
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x58c]
mov dword [esp], ecx
mov ecx, dword [esp + 0xaa4]
mov dword [esp + 4], ecx
call fcn.005b5b90
mov eax, dword [esp + 0xaa0]
mov dword [esp], eax
mov dword [esp + 4], 5
call fcn.005aeea0
lea edi, [esp + 0x48c]
lea esi, [esp + 8]
call fcn.00469390
mov eax, dword [esp + 0xaa8]
mov dword [esp], eax
mov dword [esp + 4], 8
call fcn.005aeea0
lea edi, [esp + 0x38c]
lea esi, [esp + 8]
call fcn.00469390
mov eax, 0xff
jmp 0x5b56d7
dec eax
test eax, eax
jl 0x5b56fe
cmp eax, 0x100
jae 0x5b5a74
movzx edx, byte [esp + eax + 0x48c]
test dl, dl
jne 0x5b56fe
movzx edx, byte [esp + eax + 0x38c]
test dl, dl
je 0x5b56d6
lea edi, [esp + 0x2ec]
xor eax, eax
call fcn.004690d8
lea edi, [esp + 0x1d4]
call fcn.004690e2
lea edi, [esp + 0x24c]
call fcn.004690d8
lea edi, [esp + 0x15c]
call fcn.004690e2
mov esi, dword [0x966df0]
nop
lea edi, [esp + 0x15c]
call fcn.004695ac
mov esi, dword [0x966df4]
nop
lea edi, [esp + 0x184]
call fcn.004695ac
mov esi, dword [0x966df4]
nop
lea edi, [esp + 0x1ac]
call fcn.004695ac
mov eax, 0xff
jmp 0x5b5792
lea eax, [esp + 0x15c]
mov dword [esp], eax
lea ecx, [esp + 0x24c]
mov dword [esp + 4], ecx
call fcn.005ad370
mov eax, dword [esp + 0x108]
dec eax
test eax, eax
jl 0x5b5a0b
mov dword [esp + 0x108], eax
lea eax, [esp + 0x24c]
mov dword [esp], eax
lea ecx, [esp + 0x15c]
mov dword [esp + 4], ecx
call fcn.005ae1d0
mov eax, dword [esp + 0x108]
cmp eax, 0x100
jae 0x5b5a6a
movzx ecx, byte [esp + eax + 0x48c]
test cl, cl
jg 0x5b586d
jge 0x5b58f0
mov eax, dword [esp + 0xa9c]
mov dword [esp], eax
lea ecx, [esp + 0x24c]
mov dword [esp + 4], ecx
call fcn.005ad420
mov eax, dword [esp + 0x108]
movzx ecx, byte [esp + eax + 0x48c]
mov edx, ecx
neg ecx
shr cl, 7
sub ecx, edx
sar cl, 1
movsx ecx, cl
cmp ecx, 8
jae 0x5b5a5e
lea eax, [ecx + ecx*4]
shl eax, 5
lea esi, [esp + eax + 0x58c]
lea edi, [esp + 0x2ec]
call fcn.00469480
lea eax, [esp + 0x24c]
mov dword [esp], eax
mov ecx, dword [esp + 0xa9c]
mov dword [esp + 4], ecx
lea edx, [esp + 0x2ec]
mov dword [esp + 8], edx
call fcn.005adb60
mov eax, dword [esp + 0x108]
jmp 0x5b58f0
mov eax, dword [esp + 0xa9c]
mov dword [esp], eax
lea ecx, [esp + 0x24c]
mov dword [esp + 4], ecx
call fcn.005ad420
mov eax, dword [esp + 0x108]
movzx ecx, byte [esp + eax + 0x48c]
mov edx, ecx
shr cl, 7
add ecx, edx
sar cl, 1
movsx ecx, cl
cmp ecx, 8
jae 0x5b5a52
lea eax, [ecx + ecx*4]
shl eax, 5
lea esi, [esp + eax + 0x58c]
lea edi, [esp + 0x2ec]
call fcn.00469480
lea eax, [esp + 0x24c]
mov dword [esp], eax
mov ecx, dword [esp + 0xa9c]
mov dword [esp + 4], ecx
lea edx, [esp + 0x2ec]
mov dword [esp + 8], edx
call fcn.005ad920
mov eax, dword [esp + 0x108]
movzx ecx, byte [esp + eax + 0x38c]
test cl, cl
jg 0x5b598f
jge 0x5b5770
mov eax, dword [esp + 0xa9c]
mov dword [esp], eax
lea ecx, [esp + 0x24c]
mov dword [esp + 4], ecx
call fcn.005ad420
mov eax, dword [esp + 0x108]
movzx ecx, byte [esp + eax + 0x38c]
mov edx, ecx
neg ecx
shr cl, 7
sub ecx, edx
sar cl, 1
movsx ecx, cl
cmp ecx, 0x40
jae 0x5b5a46
imul eax, ecx, 0x78
lea ecx, [0x997640]
lea esi, [eax + ecx]
lea edi, [esp + 0x1d4]
call fcn.004694e4
lea eax, [esp + 0x24c]
mov dword [esp], eax
mov ecx, dword [esp + 0xa9c]
mov dword [esp + 4], ecx
lea edx, [esp + 0x1d4]
mov dword [esp + 8], edx
call fcn.005adfc0
mov eax, dword [esp + 0x108]
jmp 0x5b5770
mov eax, dword [esp + 0xa9c]
mov dword [esp], eax
lea ecx, [esp + 0x24c]
mov dword [esp + 4], ecx
call fcn.005ad420
mov eax, dword [esp + 0x108]
movzx ecx, byte [esp + eax + 0x38c]
mov edx, ecx
shr cl, 7
add ecx, edx
sar cl, 1
movsx ecx, cl
cmp ecx, 0x40
jae 0x5b5a3a
imul eax, ecx, 0x78
lea ecx, [0x997640]
lea esi, [eax + ecx]
lea edi, [esp + 0x1d4]
call fcn.004694e4
lea eax, [esp + 0x24c]
mov dword [esp], eax
mov ecx, dword [esp + 0xa9c]
mov dword [esp + 4], ecx
lea edx, [esp + 0x1d4]
mov dword [esp + 8], edx
call fcn.005adda0
jmp 0x5b5770
mov eax, dword [esp + 0xa9c]
mov dword [esp], eax
lea ecx, [esp + 0x15c]
mov dword [esp + 4], ecx
call fcn.005ad4f0
mov eax, dword [esp + 0xa9c]
mov dword [esp + 0xaac], eax
add esp, 0xa98
ret
mov eax, ecx
mov ecx, 0x40
call fcn.00468ed0
mov eax, ecx
mov ecx, 0x40
call fcn.00468ed0
mov eax, ecx
mov ecx, 8
call fcn.00468ed0
mov eax, ecx
mov ecx, 8
call fcn.00468ed0
mov ecx, 0x100
call fcn.00468ed0
mov ecx, 0x100
call fcn.00468ed0
lea eax, [0x6f44e0]
mov dword [esp], eax
lea eax, [0x7b09d0]
mov dword [esp + 4], eax
call fcn.00438b10
nop
call fcn.00467a60
jmp fcn.005b5550