Function at 0x5a6c90
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 0x5a7218
sub esp, 0x4c
mov eax, dword [esp + 0x50]
mov ecx, dword [eax + 0x18]
test ecx, ecx
je 0x5a7050
mov dword [esp], ecx
call fcn.005a6c90
mov eax, dword [0x995310]
mov ecx, dword [esp + 0x50]
mov edx, dword [ecx + 0x18]
test eax, eax
je 0x5a6cd9
mov ebx, dword [ecx + 0x18]
call fcn.00468e60
mov dword [edi], ebx
mov dword [ecx + 0x18], 0
mov ebx, dword [edx]
test ebx, ebx
jne 0x5a702d
mov ebx, dword [edx + 0xc]
mov ebp, dword [edx + 0x20]
mov esi, ebx
sub ebx, ebp
mov eax, dword [edx + 0x1c]
sub ebx, eax
test ebx, ebx
jl 0x5a71ff
mov dword [esp + 0x30], edx
movzx edi, byte [edx + 0x24]
xchg edi, eax
test al, al
xchg edi, eax
je 0x5a7025
cmp ebp, 1
jne 0x5a71e7
mov ebp, ebx
sar ebx, 0x1f
test ebx, ebx
sete bl
xchg edi, ebx
setg bl
xchg edi, ebx
cmp ebp, 0xfffffffe
seta cl
and ebx, ecx
or edi, ebx
xchg edi, eax
test al, al
xchg edi, eax
jne 0x5a6fda
cmp ebp, 0xffffff
jle 0x5a6d55
mov ecx, 0xffffff84
mov ebx, 5
jmp 0x5a6d97
cmp ebp, 0xffff
jle 0x5a6d69
mov ecx, 0xffffff83
mov ebx, 4
jmp 0x5a6d97
cmp ebp, 0xff
jle 0x5a6d7d
mov ecx, 0xffffff82
mov ebx, 3
jmp 0x5a6d97
cmp ebp, 0x7f
jle 0x5a6d8e
mov ecx, 0xffffff81
mov ebx, 2
jmp 0x5a6d97
mov ecx, ebp
mov ebx, 1
xor ebp, ebp
cmp esi, eax
jbe 0x5a71e0
mov esi, dword [edx + 8]
mov byte [esi + eax], cl
dec ebx
movzx ebx, bl
test ebx, ebx
je 0x5a6fcc
mov dword [esp + 0x24], ebx
mov dword [esp + 0x20], ebp
lea eax, [0x6f4820]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], ebx
call fcn.0044e560
mov eax, dword [esp + 0x30]
mov ecx, dword [eax]
mov edx, dword [esp + 0xc]
test ecx, ecx
jne 0x5a6f4f
mov ecx, dword [eax + 0x18]
test ecx, ecx
jne 0x5a71c8
mov dword [esp + 0x38], edx
mov ecx, dword [eax + 0xc]
mov ebx, dword [esp + 0x24]
add ecx, ebx
cmp ebx, ecx
jle 0x5a6e4e
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 + 0x30]
mov dword [edx], ecx
mov ebx, dword [0x995310]
test ebx, ebx
je 0x5a6e41
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
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x24]
movzx ecx, byte [eax + 0x14]
test cl, cl
je 0x5a6eae
mov ecx, dword [eax + 0xc]
add ecx, ebx
cmp dword [eax + 0x10], ecx
jge 0x5a6eae
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 + 0x30]
mov dword [edx], ecx
mov ecx, dword [0x995310]
test ecx, ecx
je 0x5a6ea4
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
jmp 0x5a6f4f
mov ecx, dword [eax + 0x10]
mov ebp, dword [eax + 0xc]
lea esi, [ebx + ebp]
mov edi, dword [eax + 8]
cmp ecx, esi
jae 0x5a6ef8
mov dword [esp + 0x2c], ebp
mov dword [esp], edi
mov dword [esp + 4], esi
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
lea eax, [0x6f4820]
mov dword [esp + 0x10], eax
call fcn.0044e6e0
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x28], esi
mov dword [esp + 0x34], edi
lea eax, [edi + ebp]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.004697f0
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x30]
mov dword [ecx + 0xc], eax
mov eax, dword [esp + 0x2c]
mov dword [ecx + 0x10], eax
mov eax, dword [0x995310]
test eax, eax
jne 0x5a6f39
mov edx, dword [esp + 0x34]
jmp 0x5a6f4a
call fcn.00468e70
mov edx, dword [esp + 0x34]
mov dword [edi], edx
mov ebx, dword [ecx + 8]
mov dword [edi + 4], ebx
mov dword [ecx + 8], edx
mov eax, ecx
mov edx, dword [eax + 0x1c]
add edx, dword [eax + 0x20]
mov ecx, dword [eax + 0xc]
mov ebx, dword [esp + 0x24]
lea ebp, [edx + ebx]
cmp ecx, ebp
jb 0x5a71c1
mov dword [esp + 0x2c], ecx
mov esi, dword [eax + 8]
mov edi, dword [eax + 0x10]
mov dword [esp + 0x28], edi
sub edi, ebp
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and edi, ebp
sub ecx, ebp
lea ebp, [esi + edi]
mov edi, dword [esp + 0x2c]
cmp edi, edx
jb 0x5a71b8
sub edi, edx
mov ebx, dword [esp + 0x28]
sub ebx, edx
neg ebx
sar ebx, 0x1f
and edx, ebx
add edx, esi
cmp edi, ecx
jl 0x5a6faa
mov edi, ecx
cmp edx, ebp
je 0x5a6fc2
mov dword [esp], ebp
mov dword [esp + 4], edx
mov dword [esp + 8], edi
call fcn.004697f0
mov eax, dword [esp + 0x30]
mov edx, eax
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x20]
inc dword [edx + 0x1c]
mov dword [edx + 0x20], ebx
mov ecx, dword [esp + 0x50]
mov ebx, ebp
jmp 0x5a7025
lea eax, [0x701240]
mov dword [esp], eax
call fcn.0040c500
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x1c
lea ecx, [0x744b92]
mov dword [eax], ecx
lea ecx, [0x7b0bb8]
mov edx, dword [esp + 0x50]
mov dword [edx], ecx
mov ecx, dword [0x995310]
test ecx, ecx
je 0x5a701e
call fcn.00468e70
mov dword [edi], eax
mov ecx, dword [edx + 4]
mov dword [edi + 4], ecx
mov dword [edx + 4], eax
add esp, 0x4c
ret
mov ebp, dword [edx + 0x20]
dec ebp
mov eax, ebx
jmp 0x5a705e
mov eax, dword [edx + 4]
mov dword [ecx], ebx
mov edx, dword [0x995310]
test edx, edx
je 0x5a7049
call fcn.00468e70
mov dword [edi], eax
mov edx, dword [ecx + 4]
mov dword [edi + 4], edx
mov dword [ecx + 4], eax
add esp, 0x4c
ret
add esp, 0x4c
ret
mov esi, dword [edx + 8]
mov byte [esi + edi], bl
dec ebp
sar ebx, 8
test ebp, ebp
jl 0x5a7073
mov esi, dword [edx + 0xc]
mov edi, dword [edx + 0x1c]
add edi, ebp
cmp esi, edi
ja 0x5a7054
jmp 0x5a71af
test ebx, ebx
jne 0x5a70d0
movzx ebx, byte [ecx + 0x14]
test bl, bl
je 0x5a70a3
mov ebx, dword [ecx + 0xc]
test ebx, ebx
jbe 0x5a71a6
mov ebx, dword [edx + 0xc]
test ebx, ebx
jbe 0x5a719d
mov eax, dword [ecx + 8]
mov ebx, dword [edx + 8]
cmp ebx, eax
jne 0x5a7185
mov eax, dword [edx + 0xc]
mov ebx, dword [edx + 0x10]
mov edx, dword [edx + 8]
mov dword [ecx + 0xc], eax
mov dword [ecx + 0x10], ebx
mov eax, dword [0x995310]
test eax, eax
je 0x5a70c9
call fcn.00468e70
mov dword [edi], edx
mov eax, dword [ecx + 8]
mov dword [edi + 4], eax
mov dword [ecx + 8], edx
add esp, 0x4c
ret
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov dword [esp], eax
call fcn.00409c30
mov eax, dword [esp + 4]
lea ecx, [0x6f4660]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x20]
mov dword [esp], eax
call fcn.00409c30
mov eax, dword [esp + 4]
lea ecx, [0x6f4660]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], eax
lea eax, [0x750e07]
mov dword [esp], eax
mov dword [esp + 4], 0x41
lea eax, [esp + 0x3c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.004c1f50
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x50]
mov dword [edx], eax
mov eax, dword [0x995310]
test eax, eax
je 0x5a717e
call fcn.00468e70
mov dword [edi], ecx
mov eax, dword [edx + 4]
mov dword [edi + 4], eax
mov dword [edx + 4], ecx
add esp, 0x4c
ret
lea eax, [0x6f44e0]
mov dword [esp], eax
lea eax, [0x7b0960]
mov dword [esp + 4], eax
call fcn.00438b10
xor eax, eax
mov ecx, eax
call fcn.00468ed0
xor eax, eax
mov ecx, eax
call fcn.00468ed0
mov eax, edi
mov ecx, esi
call fcn.00468ed0
mov eax, edx
mov ecx, edi
call fcn.00468f30
mov eax, ebp
call fcn.00468f30
lea eax, [0x6f44e0]
mov dword [esp], eax
lea eax, [0x7b06f0]
mov dword [esp + 4], eax
call fcn.00438b10
mov ecx, esi
call fcn.00468ed0
lea eax, [0x6f44e0]
mov dword [esp], eax
lea eax, [0x7b0958]
mov dword [esp + 4], eax
call fcn.00438b10
lea eax, [0x6f44e0]
mov dword [esp], eax
lea eax, [0x7b0958]
mov dword [esp + 4], eax
call fcn.00438b10
nop
call fcn.00467a60
jmp fcn.005a6c90