Function at 0x421850
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 0x421b46
sub esp, 0x2c
mov eax, dword [0x994f58]
test eax, eax
je 0x421b2f
mov eax, dword [esp + 0x38]
test eax, eax
sete cl
mov edx, dword [esp + 0x3c]
test edx, edx
sete dl
and edx, ecx
test dl, dl
jne 0x421893
mov ecx, dword [esp + 0x3c]
jmp 0x4218a0
nop
call fcn.00469c50
mov eax, dword [esp]
mov ecx, dword [esp + 4]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
lea edx, [0x9955c0]
mov dword [esp], edx
call fcn.00402c20
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x10]
mov ebx, edx
sub edx, eax
mov eax, dword [esp + 0x14]
mov ebp, eax
sbb eax, ecx
test eax, eax
setg al
sete cl
cmp edx, 0x989680
seta dl
and edx, ecx
or edx, eax
test dl, dl
je 0x4218fd
lea eax, [0x995580]
mov dword [esp], eax
mov dword [esp + 8], ebp
mov dword [esp + 4], ebx
call fcn.0041bae0
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.0041aaf0
movzx eax, byte [esp + 4]
test al, al
je 0x421b13
lea eax, [0x9950b0]
mov dword [esp], eax
call fcn.0040a210
mov eax, dword [esp + 4]
test eax, eax
je 0x421af7
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x30]
test byte [eax], al
mov ecx, dword [0x758510]
lea ebx, [eax + 0xe8]
mov dword [esp], ebx
lea edx, [0x758510]
call ecx
movzx eax, byte [esp + 4]
test al, al
je 0x42196d
mov eax, dword [esp + 0x34]
mov dword [eax + 0x950], 1
jmp 0x421a35
mov eax, dword [esp + 0x30]
movsd xmm0, qword [eax + 0x108]
xorps xmm1, xmm1
ucomisd xmm0, xmm1
jne 0x421988
jnp 0x421ac5
mov ecx, dword [eax + 0xe0]
mov edx, dword [eax + 0xe4]
mov ebx, dword [esp + 0x10]
mov ebp, ebx
sub ebx, ecx
mov ecx, dword [esp + 0x14]
mov esi, ecx
sbb ecx, edx
test ecx, ecx
sete dl
xchg edi, ebx
setg bl
xchg edi, ebx
test ebx, ebx
seta al
and eax, edx
or eax, edi
test al, al
je 0x421a27
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ecx
mov eax, dword [esp + 0x34]
mov ecx, dword [eax + 0x940]
mov edx, dword [eax + 0x944]
mov dword [esp + 4], edx
mov dword [esp], ecx
call fcn.00460480
movsd xmm0, qword [esp + 8]
movsd qword [esp + 0x20], xmm0
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x18]
mov dword [esp], eax
call fcn.00460480
movsd xmm0, qword [esp + 0x20]
divsd xmm0, qword [esp + 8]
mov eax, dword [esp + 0x30]
movsd xmm1, qword [eax + 0x108]
ucomisd xmm0, xmm1
ja 0x421a93
mov ebp, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x34]
mov dword [eax + 0x950], 2
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x28], eax
mov dword [esp], eax
mov dword [esp + 4], 4
mov dword [esp + 8], 1
call fcn.0043dd50
movzx eax, byte [0x9795a4]
test al, al
je 0x421a77
mov eax, dword [esp + 0x28]
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.0045a170
mov eax, dword [esp + 0x28]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x44], eax
add esp, 0x2c
ret
lea eax, [0x9950b0]
mov dword [esp], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 4], eax
call fcn.0040a190
mov dword [esp + 0x40], 0
mov eax, dword [esp + 0x14]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x44], eax
add esp, 0x2c
ret
lea eax, [0x9950b0]
mov dword [esp], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 4], eax
call fcn.0040a190
mov dword [esp + 0x40], 0
mov eax, dword [esp + 0x14]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x44], eax
add esp, 0x2c
ret
mov dword [esp + 0x40], 0
mov eax, dword [esp + 0x14]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x44], eax
add esp, 0x2c
ret
mov dword [esp + 0x40], 0
mov eax, dword [esp + 0x14]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x44], eax
add esp, 0x2c
ret
lea eax, [0x74ef0c]
mov dword [esp], eax
mov dword [esp + 4], 0x36
call fcn.00439230
nop
call fcn.00467a60
jmp fcn.00421850