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

Disassembly:
push ebp
mov ebp, esp
mov ecx, 6
push 0
push 0
dec ecx
jne 0x31e992c
push ebx
push esi
push edi
mov ebx, eax
xor eax, eax
push ebp
push 0x31e9c08
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, ebx
call fcn.031a3578
mov eax, dword [0x31fbce0]
cmp dword [eax], 0
je 0x31e9966
mov eax, ebx
mov edx, dword [0x31fbce0]
mov edx, dword [edx]
call fcn.031a35cc
cmp dword [ebx], 0
je 0x31e998c
mov eax, dword [ebx]
call fcn.031a3798
cmp eax, 0xf5
jg 0x31e998c
mov edx, dword [ebx]
mov eax, 0x31e9c20
call fcn.031a3a84
dec eax
je 0x31e9ae2
push 0x31e9c28
call fcn.031a6794
mov esi, eax
test esi, esi
je 0x31e99a9
push 0x31e9c34
push esi
call fcn.031a6734
mov edi, eax
test edi, edi
je 0x31e9aca
mov dword [ebp - 4], 0x400
lea eax, [ebp - 8]
mov edx, dword [ebp - 4]
call fcn.031a3acc
lea eax, [ebp - 4]
push eax
mov eax, dword [ebp - 8]
call fcn.031a395c
push eax
push 0
call edi
test eax, eax
jne 0x31e9aca
mov edx, dword [ebp - 4]
dec edx
lea eax, [ebp - 8]
call fcn.031a3acc
mov eax, ebx
mov edx, dword [ebp - 8]
call fcn.031a35cc
mov eax, dword [ebx]
call fcn.031a3798
cmp eax, 0xf5
jle 0x31e9aca
mov edx, dword [ebx]
mov eax, 0x31e9c54
call fcn.031a3a84
test eax, eax
je 0x31e9a25
mov eax, ebx
mov edx, 0x31e9c64
call fcn.031a35cc
jmp 0x31e9aca
mov edx, dword [ebx]
mov eax, 0x31e9cb4
call fcn.031a3a84
test eax, eax
je 0x31e9a46
mov eax, ebx
mov edx, 0x31e9cc8
call fcn.031a35cc
jmp 0x31e9aca
mov edx, dword [ebx]
mov eax, 0x31e9d18
call fcn.031a3a84
test eax, eax
je 0x31e9a64
mov eax, ebx
mov edx, 0x31e9d2c
call fcn.031a35cc
jmp 0x31e9aca
mov edx, dword [ebx]
mov eax, 0x31e9d7c
call fcn.031a3a84
test eax, eax
je 0x31e9a82
mov eax, ebx
mov edx, 0x31e9d90
call fcn.031a35cc
jmp 0x31e9aca
mov edx, dword [ebx]
mov eax, 0x31e9e28
call fcn.031a3a84
test eax, eax
je 0x31e9aa0
mov eax, ebx
mov edx, 0x31e9e3c
call fcn.031a35cc
jmp 0x31e9aca
mov edx, dword [ebx]
mov eax, 0x31e9ebc
call fcn.031a3a84
test eax, eax
je 0x31e9abe
mov eax, ebx
mov edx, 0x31e9ed0
call fcn.031a35cc
jmp 0x31e9aca
mov eax, ebx
mov edx, 0x31e9c64
call fcn.031a35cc
mov eax, dword [ebx]
call fcn.031a3798
cmp eax, 0xa
jge 0x31e9ae2
mov eax, ebx
mov edx, 0x31e9c64
call fcn.031a35cc
lea eax, [ebp - 0xc]
mov edx, dword [ebx]
call fcn.031a3cc8
mov eax, dword [ebp - 0xc]
push eax
push 0
lea edx, [ebp - 0x14]
mov eax, 0x31e9f24
call fcn.031e0fd8
mov edx, dword [ebp - 0x14]
lea eax, [ebp - 0x10]
call fcn.031a3cc8
mov eax, dword [ebp - 0x10]
push eax
push 0x31e9f30
mov eax, dword [0x31fbcbc]
push dword [eax]
push 0x31e9f44
lea eax, [ebp - 0x1c]
mov edx, 3
call fcn.031a3858
mov edx, dword [ebp - 0x1c]
lea eax, [ebp - 0x18]
call fcn.031a3cc8
mov edx, dword [ebp - 0x18]
mov eax, 0x80000002
pop ecx
call fcn.031dfd0c
lea eax, [ebp - 0x20]
mov edx, dword [ebx]
call fcn.031a3cc8
mov eax, dword [ebp - 0x20]
push eax
push 0
lea edx, [ebp - 0x28]
mov eax, 0x31e9f24
call fcn.031e0fd8
mov edx, dword [ebp - 0x28]
lea eax, [ebp - 0x24]
call fcn.031a3cc8
mov eax, dword [ebp - 0x24]
push eax
push 0x31e9f30
mov eax, dword [0x31fbcbc]
push dword [eax]
push 0x31e9f44
lea eax, [ebp - 0x30]
mov edx, 3
call fcn.031a3858
mov edx, dword [ebp - 0x30]
lea eax, [ebp - 0x2c]
call fcn.031a3cc8
mov edx, dword [ebp - 0x2c]
mov eax, 0x80000001
pop ecx
call fcn.031dfd0c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x31e9c0f
lea eax, [ebp - 0x30]
call fcn.031a3578
lea eax, [ebp - 0x2c]
call fcn.031a3b48
lea eax, [ebp - 0x28]
call fcn.031a3578
lea eax, [ebp - 0x24]
mov edx, 2
call fcn.031a3b60
lea eax, [ebp - 0x1c]
call fcn.031a3578
lea eax, [ebp - 0x18]
call fcn.031a3b48
lea eax, [ebp - 0x14]
call fcn.031a3578
lea eax, [ebp - 0x10]
mov edx, 2
call fcn.031a3b60
lea eax, [ebp - 8]
call fcn.031a3578
ret