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

Disassembly:
sub esp, 0x20
mov eax, dword [0x99504c]
mov eax, dword fs:[eax]
mov eax, dword [eax]
mov dword [esp + 0x1c], eax
mov ecx, dword [eax + 0x18]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x24]
test byte [ecx], al
mov edx, dword [esp + 0x18]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 8], edx
call fcn.00402b90
movzx eax, byte [esp + 0xc]
test al, al
je 0x40a895
mov eax, dword [esp + 0x2c]
test eax, eax
jge 0x40a86f
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x18]
mov byte [ecx + 0x89], 1
mov ecx, dword [0x9668a4]
mov ecx, dword [ecx]
test ecx, ecx
jne 0x40aa7a
mov dword [esp + 4], 0xffffffff
mov dword [esp], 0xffffffff
call fcn.00435ac0
jmp 0x40aa4b
call fcn.00469c50
mov eax, dword [esp]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x28]
add eax, edx
mov dword [esp + 0x14], eax
mov ebx, dword [esp + 0x2c]
adc ecx, ebx
mov dword [esp + 0x10], ecx
mov ebx, dword [esp + 0x2c]
jmp 0x40a8c5
mov eax, dword [esp + 0x24]
cmp dword [eax], 1
jne 0x40a8a7
mov byte [esp + 0x3c], 1
add esp, 0x20
ret
lea eax, [0x745650]
mov dword [esp], eax
mov dword [esp + 4], 0x1e
call fcn.00439230
mov ecx, ebp
mov ebx, eax
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
mov esi, dword [ebp + 0x18]
mov byte [esi + 0x89], 1
mov esi, dword [0x9668a4]
mov esi, dword [esi]
test esi, esi
je 0x40a909
test ebx, ebx
xchg esi, ebx
sete bl
xchg esi, ebx
xchg edi, ebx
setg bl
xchg edi, ebx
cmp edx, 0x989680
seta cl
and ecx, esi
or edi, ecx
xchg edi, eax
test al, al
xchg edi, eax
je 0x40a909
xor ebx, ebx
mov edx, 0x989680
mov dword [esp + 4], ebx
mov dword [esp], edx
call fcn.00435ac0
mov eax, dword [esp + 8]
test eax, eax
jge 0x40a986
mov eax, dword [0x9668a4]
mov eax, dword [eax]
test eax, eax
je 0x40a939
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.00468af0
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x18]
mov byte [ecx + 0x89], 0
call fcn.00469c50
mov eax, dword [esp]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x14]
sub edx, eax
mov eax, dword [esp + 0x10]
mov ebp, eax
sbb eax, ecx
test eax, eax
setl cl
xchg esi, ebx
sete bl
xchg esi, ebx
test edx, edx
xchg edi, ebx
setbe bl
xchg edi, ebx
and edi, esi
or edi, ecx
xchg edi, eax
test al, al
xchg edi, eax
je 0x40a8bd
jmp 0x40a99d
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x18]
mov byte [eax + 0x89], 0
mov byte [esp + 0x3c], 1
add esp, 0x20
ret
mov eax, dword [esp + 0x24]
mov dword [esp], eax
call fcn.00402bb0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx + 0x18]
mov ebx, edx
cmp edx, eax
jne 0x40a9e0
mov eax, dword [esp + 0x24]
mov dword [esp], eax
mov dword [esp + 8], 0
call fcn.00402b90
movzx eax, byte [esp + 0xc]
test al, al
je 0x40a99d
mov byte [esp + 0x3c], 0
add esp, 0x20
ret
cmp eax, 1
jne 0x40aa35
mov byte [ebx + 0x89], 1
mov dword [esp + 4], 0xffffffff
mov dword [esp], 0xffffffff
call fcn.00435ac0
mov eax, dword [esp + 8]
test eax, eax
jl 0x40aa1f
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x18]
mov byte [eax + 0x89], 0
mov byte [esp + 0x3c], 1
add esp, 0x20
ret
lea eax, [0x74dfc7]
mov dword [esp], eax
mov dword [esp + 4], 0x32
call fcn.00439230
lea eax, [0x74da09]
mov dword [esp], eax
mov dword [esp + 4], 0x31
call fcn.00439230
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x18]
mov byte [eax + 0x89], 0
mov byte [esp + 0x3c], 1
add esp, 0x20
ret
mov eax, dword [0x9668a4]
mov eax, dword [eax]
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.00468af0
mov dword [esp + 4], 0
mov dword [esp], 0x989680
call fcn.00435ac0
mov eax, dword [esp + 8]
test eax, eax
jl 0x40aa62
jmp 0x40aa4b