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

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 4
push 0
push 0
dec ecx
jne 0x5147d9
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 4], edx
mov ebx, eax
lea eax, [ebp - 4]
call fcn.00405b34
mov eax, dword [ebp + 0xc]
call fcn.004052c8
mov eax, dword [ebp + 8]
call fcn.004052c8
xor eax, eax
push ebp
push 0x514ae3
push dword fs:[eax]
mov dword fs:[eax], esp
xor edx, edx
push ebp
push 0x514a5b
push dword fs:[edx]
mov dword fs:[edx], esp
xor ecx, ecx
mov dl, 1
mov eax, dword [0x4f4fec]
call fcn.004f6218
mov dword [ebp - 8], eax
mov dl, 1
mov eax, dword [0x41ac6c]
call fcn.00403f4c
mov edx, dword [ebp - 8]
mov dword [edx + 0x188], eax
cmp dword [ebp + 0xc], 0
jne 0x514861
mov eax, dword [ebp - 8]
add eax, 0x110
mov edx, 0x514b00
call fcn.00404e5c
jmp 0x514871
mov eax, dword [ebp - 8]
add eax, 0x110
mov edx, dword [ebp + 0xc]
call fcn.00404e5c
cmp dword [ebx + 0x13c], 0
je 0x51488d
mov eax, dword [ebp - 8]
add eax, 0x17c
mov edx, dword [ebx + 0x13c]
call fcn.00404e5c
cmp dword [ebp + 8], 0
je 0x5148a3
mov eax, dword [ebp - 8]
add eax, 0xfc
mov edx, dword [ebp + 8]
call fcn.00404e5c
mov eax, dword [0x58feb8]
mov eax, dword [eax]
mov edx, 0x514b40
call fcn.004058a0
jne 0x514970
lea edx, [ebp - 0xc]
mov eax, dword [0x58ffb4]
mov eax, dword [eax]
call fcn.00409f18
mov eax, dword [ebp - 0xc]
xor edx, edx
call fcn.004058a0
je 0x514970
lea edx, [ebp - 0x10]
mov eax, dword [0x58fb9c]
mov eax, dword [eax]
call fcn.00409f18
mov eax, dword [ebp - 0x10]
xor edx, edx
call fcn.004058a0
je 0x514970
mov eax, dword [0x58feb8]
mov eax, dword [eax]
mov edx, 0x514b40
call fcn.004058a0
jne 0x514970
mov eax, dword [ebp - 8]
add eax, 0x90
mov edx, dword [0x58ffb4]
mov edx, dword [edx]
call fcn.004050a0
mov eax, dword [ebp - 8]
add eax, 0x94
mov edx, dword [0x58fb9c]
mov edx, dword [edx]
call fcn.004050a0
mov eax, dword [ebp - 8]
add eax, 0xa8
mov edx, dword [0x58fd34]
mov edx, dword [edx]
call fcn.004050a0
mov eax, dword [ebp - 8]
add eax, 0xac
mov edx, dword [0x58ffe8]
mov edx, dword [edx]
call fcn.004050a0
mov eax, dword [ebp - 8]
add eax, 0x104
mov edx, dword [0x58fc14]
mov edx, dword [edx]
call fcn.004050a0
mov al, byte [0x514b4c]
push eax
lea eax, [ebp - 0x14]
push eax
lea edx, [ebp - 0x1c]
mov eax, dword [ebp - 4]
call fcn.00409f18
mov edx, dword [ebp - 0x1c]
lea eax, [ebp - 0x18]
call fcn.004050a0
mov eax, dword [ebp - 0x18]
mov ecx, 0x514b58
mov edx, 0x514b64
call fcn.004105ac
mov edx, dword [ebp - 0x14]
lea eax, [ebp - 4]
call fcn.004056f8
mov eax, dword [ebp - 8]
add eax, 0xec
mov edx, dword [ebp - 4]
call fcn.004050a0
mov eax, dword [ebp - 8]
call fcn.004fce3c
mov dl, 1
mov eax, dword [0x41ac6c]
call fcn.00403f4c
mov ebx, eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x188]
mov edx, ebx
call fcn.005641d4
mov esi, dword [ebx + 4]
lea eax, [ebp - 0x20]
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x188]
mov edx, dword [0x41ac6c]
call fcn.00404138
mov edx, dword [eax]
call dword [edx]
push eax
lea edx, [ebp - 0x24]
mov eax, esi
call fcn.0040affc
mov eax, dword [ebp - 0x24]
mov edx, 1
pop ecx
call fcn.00405338
mov edx, dword [ebp - 0x20]
mov eax, edi
call fcn.004056f8
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x12c]
cmp eax, 0xc8
je 0x514a3c
cmp eax, 0xce
jne 0x514a48
or esi, 0xffffffff
mov eax, ebx
call fcn.00403f7c
jmp 0x514a51
xor esi, esi
mov eax, ebx
call fcn.00403f7c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x514a91
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x514aea
lea eax, [ebp - 0x24]
mov edx, 2
call fcn.00404e2c
lea eax, [ebp - 0x1c]
call fcn.00405524
lea eax, [ebp - 0x18]
mov edx, 2
call fcn.00404e2c
lea eax, [ebp - 0x10]
mov edx, 2
call fcn.0040553c
lea eax, [ebp - 4]
call fcn.00405524
lea eax, [ebp + 8]
mov edx, 2
call fcn.00404e2c
ret