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

Disassembly:
mov ecx, dword [0x99504c]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x681a3c
sub esp, 0x50
mov eax, dword [esp + 0x54]
mov ecx, dword [eax + 0x94]
test ecx, ecx
setne cl
xor ecx, 1
mov byte [eax + 0xc4], cl
mov ecx, dword [0x966a40]
mov dword [esp], ecx
call fcn.004d9ad0
cmp dword [esp + 8], 1
jne 0x68168f
mov eax, dword [esp + 4]
cmp byte [eax], 0x30
jne 0x68168f
mov eax, dword [0x966a40]
mov dword [esp], eax
call fcn.004d98f0
add esp, 0x50
ret
mov eax, dword [esp + 0x54]
lea ecx, [eax + 0x30]
mov dword [esp], ecx
call fcn.0046d500
lea eax, [0x6f85a0]
cmp dword [esp + 4], eax
jne 0x6816b0
mov ecx, dword [esp + 8]
jmp 0x6816b2
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], ecx
lea eax, [0x73aac6]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 5
call fcn.004109f0
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
test ecx, ecx
je 0x6816dd
mov ecx, dword [ecx + 4]
test ecx, ecx
je 0x681717
mov eax, dword [eax + 4]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x28]
test eax, eax
je 0x68170f
movzx ecx, byte [eax + 0xf]
nop
mov edx, ecx
and ecx, 0x1f
test dl, 0x20
jne 0x681709
or ecx, 0x80
mov edx, dword [esp + 0x2c]
jmp 0x68171d
xor ecx, ecx
xor eax, eax
xor edx, edx
jmp 0x68171d
xor ecx, ecx
xor eax, eax
xor edx, edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], eax
test ecx, ecx
je 0x681779
test ecx, 0x200
jne 0x68173d
lea ebx, [0x7b31a4]
jmp 0x681759
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.004bcb70
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov ebx, eax
mov eax, ecx
mov ecx, dword [ebx + 0x50]
mov dword [esp], eax
call ecx
cmp dword [esp + 4], 0x19
sete al
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x24]
mov ebx, eax
mov eax, dword [esp + 0x20]
jmp 0x68177b
xor ebx, ebx
test bl, bl
je 0x6817cf
test ecx, ecx
je 0x681793
test ecx, 0x200
jne 0x681793
lea ebx, [0x7b31a4]
jmp 0x6817af
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.004bcb70
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov ebx, eax
mov eax, ecx
mov ecx, dword [ebx + 0x64]
mov dword [esp], eax
call ecx
cmp dword [esp + 4], 1
sete al
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x24]
mov ebx, eax
mov eax, dword [esp + 0x20]
jmp 0x6817d1
xor ebx, ebx
test bl, bl
je 0x68187d
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0
call fcn.004baa60
mov eax, dword [esp + 0x18]
test eax, eax
je 0x681a01
test eax, 0x60
jne 0x68187d
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov byte [esp + 0xc], 1
call fcn.004bb0e0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
lea edx, [0x6ff400]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.0040a070
mov eax, dword [esp + 0xc]
test eax, eax
je 0x68187d
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x54]
mov dword [edx + 0xbc], eax
mov eax, dword [0x995310]
test eax, eax
je 0x681873
call fcn.00468e70
mov dword [edi], ecx
mov eax, dword [edx + 0xc0]
mov dword [edi + 4], eax
mov dword [edx + 0xc0], ecx
add esp, 0x50
ret
mov eax, dword [esp + 0x54]
mov ecx, dword [eax + 0x94]
test ecx, ecx
jne 0x6819fd
movzx ecx, byte [eax + 0xc5]
test cl, cl
jne 0x6818c1
mov ecx, dword [eax + 0x60]
test ecx, ecx
jne 0x6818bd
mov ecx, dword [eax + 0x54]
test ecx, ecx
jne 0x6818bd
mov ecx, dword [eax + 0x50]
test ecx, ecx
jne 0x6818bd
mov ecx, dword [eax + 0x5c]
test ecx, ecx
jne 0x6818bd
mov ecx, dword [eax + 0x58]
test ecx, ecx
je 0x6818c1
add esp, 0x50
ret
movzx ecx, byte [0x994f24]
test cl, cl
jne 0x6819f9
mov dword [esp], eax
call fcn.006671b0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
test eax, eax
je 0x681974
mov edx, dword [esp + 8]
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
test edx, edx
je 0x681903
mov edx, dword [edx + 4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], ecx
lea edi, [esp + 0x38]
xor eax, eax
call fcn.004690fa
lea ecx, [0x681a50]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x40], 0x2b
lea ecx, [0x74bc5d]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x48], 1
mov dword [esp + 0x4c], 1
lea ecx, [esp + 0x30]
mov dword [esp + 0x44], ecx
mov ecx, dword [0x96e848]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 8], 2
lea ecx, [esp + 0x38]
mov dword [esp + 0xc], ecx
call fcn.004e25d0
add esp, 0x50
ret
mov eax, dword [esp + 4]
lea ecx, [0x7b12b8]
mov edx, dword [esp + 0x54]
mov dword [edx + 0xbc], ecx
mov ecx, dword [0x995310]
test ecx, ecx
je 0x6819a2
call fcn.00468e70
mov dword [edi], eax
mov ecx, dword [edx + 0xc0]
mov dword [edi + 4], ecx
mov dword [edx + 0xc0], eax
mov ecx, dword [edx + 0xa0]
mov edx, dword [edx + 0xa4]
test edx, edx
setne bl
test ecx, ecx
xchg ebp, ebx
setne bl
xchg ebp, ebx
or ebx, ebp
test bl, bl
je 0x6819f5
mov ebx, dword [eax + 0x18]
test ebx, ebx
jne 0x6819f5
test edx, edx
sete dl
setg bl
cmp ecx, 0xffffffff
xchg ebp, ebx
setae bl
xchg ebp, ebx
and edx, ebp
or ebx, edx
test bl, bl
je 0x6819f2
mov dword [eax + 0x18], 0xffffffff
jmp 0x6819f5
mov dword [eax + 0x18], ecx
add esp, 0x50
ret
add esp, 0x50
ret
add esp, 0x50
ret
lea eax, [0x70a680]
mov dword [esp], eax
call fcn.0040c500
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x1a
lea ecx, [0x743452]
mov dword [eax], ecx
mov dword [eax + 8], 0
lea ecx, [0x6fc440]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00438b10
nop
call fcn.00467a60
jmp fcn.00681630