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

Disassembly:
push ebp
mov ebp, esp
xor ecx, ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ebx
push esi
push edi
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 8]
call fcn.004052c8
xor eax, eax
push ebp
push 0x51fee5
push dword fs:[eax]
mov dword fs:[eax], esp
xor edx, edx
push ebp
push 0x51fe8b
push dword fs:[edx]
mov dword fs:[edx], esp
lea edx, [ebp - 0xc]
mov eax, dword [ebp - 8]
call fcn.00409ec8
cmp dword [ebp - 0xc], 0
jne 0x51fb6a
xor ebx, ebx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x51feb0
xor ecx, ecx
mov dl, 1
mov eax, dword [0x436930]
call fcn.00437694
mov ebx, eax
mov eax, dword [ebp - 4]
mov dword [eax + 0x5c], ebx
mov eax, ebx
mov edx, 0x1f4
call fcn.0043782c
mov eax, dword [ebp - 4]
push eax
push 0x51ea78
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
call fcn.0043783c
mov eax, dword [ebp - 4]
mov dword [eax + 0xb4], 6
xor ecx, ecx
mov dl, 1
mov eax, dword [0x4f492c]
call fcn.004f5b58
mov ebx, eax
mov eax, dword [ebp - 4]
mov dword [eax + 0x154], ebx
mov eax, dword [ebp - 4]
imul eax, dword [eax + 0x40], 0x1c
mov edx, dword [0x587c70]
mov edx, dword [edx]
mov eax, dword [edx + eax*8 + 0xc]
mov edx, 0x51fefc
call fcn.004058a0
jne 0x51fc0d
lea eax, [ebx + 0x170]
mov edx, 0x51ff10
call fcn.00404e5c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x154]
add eax, 0x174
mov edx, 0x51ff1c
call fcn.00404e5c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x154]
add eax, 0x114
mov edx, 0x51ff28
call fcn.00404e5c
lea edx, [ebp - 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xec]
call fcn.00409ec8
cmp dword [ebp - 0x10], 0
jne 0x51fc56
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x154]
add eax, 0x110
mov edx, 0x51ff34
call fcn.00404e5c
jmp 0x51fc72
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x154]
add eax, 0x110
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0xec]
call fcn.00404e5c
mov eax, dword [0x587a70]
mov eax, dword [eax]
mov edx, 0x51ff74
call fcn.004058a0
jne 0x51fd65
lea edx, [ebp - 0x14]
mov eax, dword [0x587b70]
mov eax, dword [eax]
call fcn.00409f18
mov eax, dword [ebp - 0x14]
xor edx, edx
call fcn.004058a0
je 0x51fd65
lea edx, [ebp - 0x18]
mov eax, dword [0x58774c]
mov eax, dword [eax]
call fcn.00409f18
mov eax, dword [ebp - 0x18]
xor edx, edx
call fcn.004058a0
je 0x51fd65
mov eax, dword [0x587a70]
mov eax, dword [eax]
mov edx, 0x51ff74
call fcn.004058a0
jne 0x51fd65
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x154]
add eax, 0x90
mov edx, dword [0x587b70]
mov edx, dword [edx]
call fcn.004050a0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x154]
add eax, 0x94
mov edx, dword [0x58774c]
mov edx, dword [edx]
call fcn.004050a0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x154]
add eax, 0xa8
mov edx, dword [0x5878e8]
mov edx, dword [edx]
call fcn.004050a0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x154]
add eax, 0xac
mov edx, dword [0x587ba4]
mov edx, dword [edx]
call fcn.004050a0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x154]
add eax, 0x104
mov edx, dword [0x5877c8]
mov edx, dword [edx]
call fcn.004050a0
mov eax, dword [ebp - 4]
cmp dword [eax + 0x13c], 0
je 0x51fd8d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x154]
add eax, 0x17c
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x13c]
call fcn.00404e5c
mov al, byte [0x51ff80]
push eax
lea eax, [ebp - 0x1c]
push eax
lea edx, [ebp - 0x20]
mov eax, dword [ebp - 8]
call fcn.00409ec8
mov eax, dword [ebp - 0x20]
mov ecx, 0x51ff8c
mov edx, 0x51ff98
call fcn.0040feec
mov edx, dword [ebp - 0x1c]
lea eax, [ebp - 8]
call fcn.00404ea0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x154]
add eax, 0xec
mov edx, dword [ebp - 8]
call fcn.00404e5c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x154]
add eax, 0xfc
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0xe8]
call fcn.00404e5c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x154]
call fcn.004fc798
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x154]
mov eax, dword [ecx + 0x12c]
cmp eax, 0xc8
je 0x51fe1c
cmp eax, 0xce
jne 0x51fe68
cmp dword [ecx + 0x144], 0
jne 0x51fe33
cmp dword [ecx + 0x140], 0x3e8
jbe 0x51fe4f
jmp 0x51fe35
jle 0x51fe4f
or ebx, 0xffffffff
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
xor edx, edx
call fcn.0043781c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x51feb0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
xor edx, edx
call fcn.0043781c
xor ebx, ebx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x51feb0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
xor edx, edx
call fcn.0043781c
xor ebx, ebx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x51feb0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x51feec
lea eax, [ebp - 0x20]
mov edx, 2
call fcn.00404e2c
lea eax, [ebp - 0x18]
mov edx, 2
call fcn.0040553c
lea eax, [ebp - 0x10]
mov edx, 3
call fcn.00404e2c
ret