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

Disassembly:
mov ecx, dword [0x99504c]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x34c]
cmp eax, dword [ecx + 8]
jbe 0x5b76af
sub esp, 0x3cc
mov ecx, dword [esp + 0x3d4]
cmp ecx, 0x20
jne 0x5b764d
mov edx, dword [esp + 0x3ec]
cmp edx, 0x40
jne 0x5b726d
mov edx, dword [esp + 0x3e8]
movzx ebx, byte [edx + 0x3f]
test bl, 0xe0
je 0x5b727c
mov byte [esp + 0x404], 0
add esp, 0x3cc
ret
lea edi, [esp + 0x248]
xor eax, eax
call fcn.004690d8
lea ecx, [esp + 0x248]
mov dword [esp], ecx
mov ecx, dword [esp + 0x3d0]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x3d4]
mov dword [esp + 8], edx
mov ebx, dword [esp + 0x3d8]
mov dword [esp + 0xc], ebx
call fcn.005acf80
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
test ecx, ecx
je 0x5b72d5
mov byte [esp + 0x404], 0
add esp, 0x3cc
ret
mov dword [esp + 0x3c8], edx
nop
lea edi, [esp + 0x2e8]
xor eax, eax
call fcn.004690cc
mov dword [esp + 0x3b4], 7
lea ecx, [esp + 0x2e8]
mov dword [esp], ecx
call fcn.005967d0
mov ecx, dword [esp + 0x3f8]
test ecx, ecx
je 0x5b73dc
lea eax, [esp + 0xa8]
mov dword [esp], eax
mov eax, dword [esp + 0x3f4]
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00452560
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
lea ebx, [esp + 0x2e8]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
call fcn.00597a70
mov byte [esp + 0x1f], 0
mov eax, dword [esp + 0x400]
mov byte [esp + 0x1f], al
lea ecx, [esp + 0x2e8]
mov dword [esp], ecx
lea edx, [esp + 0x1f]
mov dword [esp + 4], edx
mov dword [esp + 8], 1
mov dword [esp + 0xc], 1
call fcn.00597a70
lea eax, [esp + 0x88]
mov dword [esp], eax
mov eax, dword [esp + 0x3fc]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x400]
mov dword [esp + 8], eax
call fcn.00452560
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
lea ebx, [esp + 0x2e8]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
call fcn.00597a70
lea eax, [esp + 0x2e8]
mov dword [esp], eax
mov ecx, dword [esp + 0x3e8]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x20
mov edx, dword [esp + 0x3f0]
mov dword [esp + 0xc], edx
call fcn.00597a70
lea eax, [esp + 0x2e8]
mov dword [esp], eax
mov ecx, dword [esp + 0x3d0]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x3d4]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x3d8]
mov dword [esp + 0xc], ecx
call fcn.00597a70
lea eax, [esp + 0x2e8]
mov dword [esp], eax
mov ecx, dword [esp + 0x3dc]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x3e0]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x3e4]
mov dword [esp + 0xc], ecx
call fcn.00597a70
lea edi, [esp + 0xc8]
xor eax, eax
call fcn.004690f0
lea ecx, [esp + 0x2e8]
mov dword [esp], ecx
lea ecx, [esp + 0xc8]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0x40
call fcn.00597c90
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x20], ecx
mov edx, dword [esp + 0x18]
lea edi, [esp + 0x68]
mov ebx, eax
xor eax, eax
call fcn.004690f8
lea ecx, [esp + 0x68]
mov dword [esp], ecx
mov dword [esp + 4], ebx
mov ecx, dword [esp + 0x20]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
call fcn.005ae9e0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
test eax, eax
jne 0x5b7635
mov dword [esp + 0x3bc], ecx
mov ecx, dword [esp + 0x3f0]
add ecx, 0xffffffe0
mov dword [esp + 0x24], ecx
mov edx, dword [esp + 0x3e8]
lea ebx, [edx + 0x20]
lea edi, [esp + 0x48]
xor eax, eax
call fcn.004690f8
lea ecx, [esp + 0x48]
mov dword [esp], ecx
mov dword [esp + 4], ebx
mov dword [esp + 8], 0x20
mov ecx, dword [esp + 0x24]
mov dword [esp + 0xc], ecx
call fcn.005aec10
mov ecx, dword [esp + 0x14]
test ecx, ecx
jne 0x5b7626
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x3c0], ecx
lea edi, [esp + 0x1a8]
xor eax, eax
call fcn.004690d8
lea ecx, [esp + 0x1a8]
mov dword [esp], ecx
mov ecx, dword [esp + 0x3c8]
mov dword [esp + 4], ecx
call fcn.005ae390
mov ecx, dword [esp + 8]
mov dword [esp + 0x3b8], ecx
lea edi, [esp + 0x108]
xor eax, eax
call fcn.004690d8
lea ecx, [esp + 0x108]
mov dword [esp], ecx
mov ecx, dword [esp + 0x3bc]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x3b8]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x3c0]
mov dword [esp + 0xc], ecx
call fcn.005b5550
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x3c4], ecx
lea edi, [esp + 0x28]
xor eax, eax
call fcn.004690f8
mov ecx, dword [esp + 0x3c4]
mov dword [esp], ecx
lea ecx, [esp + 0x28]
mov dword [esp + 4], ecx
call fcn.005acd10
cmp dword [esp + 0xc], 0x20
je 0x5b75f4
xor eax, eax
jmp 0x5b7618
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x3e8]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 0x20
call fcn.004034e0
movzx eax, byte [esp + 0xc]
mov byte [esp + 0x404], al
add esp, 0x3cc
ret
mov byte [esp + 0x404], 0
add esp, 0x3cc
ret
lea eax, [0x6f44e0]
mov dword [esp], eax
lea eax, [0x7b08d8]
mov dword [esp + 4], eax
call fcn.00438b10
mov eax, ecx
sar ecx, 0x1f
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 0xa
call fcn.004ab6e0
mov dword [esp], 0
lea eax, [0x746d32]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x20
call fcn.00452120
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00409d40
mov eax, dword [esp + 8]
lea ecx, [0x6f44e0]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00438b10
nop
call fcn.00467a60
jmp fcn.005b7220