Function at 0x4223b0
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 0x422769
sub esp, 0x48
mov eax, dword [esp + 0x4c]
mov dword [esp], eax
call fcn.00421f80
mov eax, dword [esp + 0x4c]
mov ecx, dword [eax + 0x98]
mov edx, dword [eax + 0x9c]
mov ebx, dword [esp + 8]
mov ebp, dword [esp + 4]
cmp edx, ebx
xchg esi, ebx
seta bl
xchg esi, ebx
xchg edi, ebx
sete bl
xchg edi, ebx
cmp ecx, ebp
setae al
and eax, edi
or eax, esi
test al, al
jne 0x422670
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x30], ebx
mov esi, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
cmp edi, edx
setb al
sete bl
cmp esi, ecx
xchg ebp, ebx
setb bl
xchg ebp, ebx
and ebp, ebx
or eax, ebp
test al, al
je 0x42243b
mov eax, ecx
mov ebx, edx
jmp 0x422443
mov eax, ecx
mov ebx, edx
mov ecx, esi
mov edx, edi
mov dword [esp + 0x44], eax
mov dword [esp + 0x40], ebx
mov dword [esp + 0x20], edx
mov ebp, dword [esp + 0x2c]
sub ebp, eax
mov edi, dword [esp + 0x30]
sbb edi, ebx
mov dword [esp + 0x3c], edi
shr edi, 6
mov dword [esp + 0x38], edi
shr ebp, 6
mov esi, dword [esp + 0x3c]
shl esi, 0x1a
or ebp, esi
mov dword [esp + 0x34], ebp
lea esi, [edi + edi*4]
mov eax, ebp
mov edi, 0x2d
mul edi
lea esi, [esi + esi*8]
add edx, esi
mov esi, dword [esp + 0x44]
add eax, esi
adc edx, ebx
mov edi, dword [esp + 0x20]
cmp edi, edx
setb bl
xchg esi, ebx
sete bl
xchg esi, ebx
cmp eax, ecx
xchg ebp, ebx
seta bl
xchg ebp, ebx
and ebp, esi
or ebx, ebp
test bl, bl
jne 0x4224b4
mov eax, ecx
mov edx, edi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], edx
mov eax, dword [esp + 0x34]
mov ebx, 0x3d
mul ebx
mov ebx, dword [esp + 0x38]
imul ebx, ebx, 0x3d
add edx, ebx
mov ebx, dword [esp + 0x44]
add eax, ebx
mov ebx, dword [esp + 0x40]
adc edx, ebx
mov ebx, dword [esp + 0x30]
test ebx, ebx
xchg esi, ebx
seta bl
xchg esi, ebx
xchg edi, ebx
sete bl
xchg edi, ebx
mov ecx, dword [esp + 0x2c]
cmp ecx, 0x400000
xchg ebp, ebx
seta bl
xchg ebp, ebx
and ebp, edi
or ebp, esi
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x42254d
add ecx, 0xffc00000
adc ebx, 0xffffffff
cmp ebx, edx
xchg edi, ebx
seta bl
xchg edi, ebx
xchg ebp, ebx
sete bl
xchg ebp, ebx
cmp ecx, eax
xchg esi, ebx
seta bl
xchg esi, ebx
and esi, ebp
or esi, edi
xchg esi, eax
test al, al
xchg esi, eax
je 0x422545
mov eax, ecx
mov edx, ebx
mov ecx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x30]
jmp 0x42254d
mov ecx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x30]
mov ebp, dword [esp + 0x20]
cmp ebp, edx
xchg esi, ebx
seta bl
xchg esi, ebx
xchg edi, ebx
sete bl
xchg edi, ebx
mov ecx, dword [esp + 0x1c]
cmp ecx, eax
seta bl
and ebx, edi
or ebx, esi
test bl, bl
jne 0x422576
mov ebp, edx
mov ecx, eax
mov dword [esp + 0x28], ebp
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x4c]
add eax, 0x18
nop
mov dword [esp], eax
call fcn.00402da0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x30]
cmp ecx, edx
seta bl
xchg ebp, ebx
sete bl
xchg ebp, ebx
mov esi, dword [esp + 0x2c]
cmp eax, esi
xchg edi, ebx
seta bl
xchg edi, ebx
and edi, ebp
or edi, ebx
xchg edi, eax
test al, al
xchg edi, eax
je 0x4225c7
mov eax, dword [esp + 0x1c]
mov ebp, dword [esp + 0x20]
jmp 0x4225d3
mov ebx, esi
sub esi, eax
mov ebp, edx
sbb ebp, ecx
mov eax, esi
mov esi, ebx
mov ecx, dword [esp + 0x20]
cmp ebp, ecx
setb bl
xchg edi, ebx
sete bl
xchg edi, ebx
mov esi, dword [esp + 0x1c]
cmp eax, esi
setb dl
and edi, edx
or edi, ebx
xchg edi, eax
test al, al
xchg edi, eax
je 0x4225fa
mov edx, ecx
jmp 0x422600
mov edx, ecx
mov esi, eax
mov ecx, ebp
mov ebx, dword [esp + 0x28]
cmp ecx, ebx
xchg ebp, ebx
seta bl
xchg ebp, ebx
xchg edi, ebx
sete bl
xchg edi, ebx
mov eax, dword [esp + 0x24]
cmp eax, esi
setb dl
and edx, edi
or ebp, edx
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x42262d
mov ecx, eax
mov edx, ebx
jmp 0x422637
mov edx, ebx
mov eax, esi
mov ebx, ecx
mov ecx, dword [esp + 0x24]
mov ebp, dword [esp + 0x30]
cmp ebx, ebp
xchg esi, ebx
seta bl
xchg esi, ebx
xchg edi, ebx
sete bl
xchg edi, ebx
mov ecx, dword [esp + 0x2c]
cmp eax, ecx
seta dl
and edx, edi
or edx, esi
test dl, dl
jne 0x422684
mov dword [esp + 0x54], ebx
mov dword [esp + 0x50], eax
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x58], ecx
add esp, 0x48
ret
mov dword [esp + 0x54], ebx
mov dword [esp + 0x50], ebp
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x58], ebp
add esp, 0x48
ret
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ebx
call fcn.0043af60
lea eax, [0x73b3fd]
mov dword [esp], eax
mov dword [esp + 4], 8
call fcn.0043b7e0
mov eax, dword [esp + 0x18]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x14]
mov dword [esp], eax
call fcn.0043b4c0
lea eax, [0x73bd28]
mov dword [esp], eax
mov dword [esp + 4], 0xa
call fcn.0043b7e0
mov eax, dword [esp + 0x30]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call fcn.0043b4c0
call fcn.0043b170
call fcn.0043afc0
call fcn.0043af60
lea eax, [0x73c348]
mov dword [esp], eax
mov dword [esp + 4], 0xb
call fcn.0043b7e0
mov eax, dword [esp + 0x20]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x1c]
mov dword [esp], eax
call fcn.0043b4c0
lea eax, [0x73c9ea]
mov dword [esp], eax
mov dword [esp + 4], 0xc
call fcn.0043b7e0
mov eax, dword [esp + 0x28]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x24]
mov dword [esp], eax
call fcn.0043b4c0
call fcn.0043b170
call fcn.0043afc0
lea eax, [0x74c3e6]
mov dword [esp], eax
mov dword [esp + 4], 0x2d
call fcn.00439230
nop
call fcn.00467a60
jmp fcn.004223b0