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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x41df58
sub esp, 0x58
mov eax, dword [esp + 0x5c]
test byte [eax], al
lea ecx, [eax + 0xa8]
mov dword [esp], ecx
mov dword [esp + 8], 0
mov dword [esp + 4], 0
call fcn.00401cf0
nop
mov eax, dword [esp + 0x5c]
lea ecx, [eax + 0xb0]
mov dword [esp], ecx
mov dword [esp + 8], 0
mov dword [esp + 4], 0
call fcn.00401cf0
nop
mov eax, dword [esp + 0x5c]
lea ecx, [eax + 0xb8]
mov dword [esp], ecx
mov dword [esp + 8], 0
mov dword [esp + 4], 0
call fcn.00401cf0
mov eax, dword [esp + 0x5c]
mov dword [eax + 0xc0], 0
mov dword [eax + 0xc4], 0
mov dword [eax + 0xc8], 0
mov dword [eax + 0xcc], 0
mov dword [eax + 0xd0], 0
mov dword [eax + 0xd4], 0
mov dword [eax + 0xd8], 0
mov dword [eax + 0xdc], 0
mov dword [eax + 0xe0], 0
mov dword [eax + 0xe4], 0
mov ecx, dword [esp + 0x64]
mov dword [eax + 0xec], ecx
mov ecx, dword [esp + 0x60]
mov dword [eax + 0xe8], ecx
lea ecx, [eax + 0x90]
mov dword [esp], ecx
call fcn.00401e90
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x5c]
mov dword [edx + 0x8c], eax
mov dword [edx + 0x88], ecx
mov eax, dword [edx + 0x70]
mov ecx, eax
add eax, 0x10000
cmp dword [edx + 0x60], eax
setb bl
mov ebp, dword [edx + 0x74]
add ecx, 0x10000
adc ebp, 0
mov ecx, dword [edx + 0x64]
cmp ecx, ebp
sete cl
xchg esi, ebx
setb bl
xchg esi, ebx
and ecx, ebx
or esi, ecx
xchg esi, eax
test al, al
xchg esi, eax
je 0x41dab0
mov dword [edx + 0x60], eax
mov dword [edx + 0x64], ebp
mov eax, dword [esp + 0x68]
mov dword [esp], eax
call fcn.0044be20
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
mov dword [esp + 4], eax
mov dword [esp], ecx
mov dword [esp + 0xc], 0x3fd00000
mov dword [esp + 8], 0
call fcn.0044a740
mov eax, dword [esp + 0x14]
mov dword [esp + 0x2c], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x28], ecx
mov dword [esp + 4], eax
mov dword [esp], ecx
mov dword [esp + 0xc], 0x3fe00000
mov dword [esp + 8], 0
call fcn.0044a0c0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0044bf00
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x5c]
mov dword [edx + 0xf4], eax
mov dword [edx + 0xf0], ecx
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0044be70
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov dword [esp + 4], eax
mov dword [esp], ecx
mov eax, dword [esp + 0x2c]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0x28]
mov dword [esp + 8], ecx
call fcn.0044abc0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov dword [esp + 4], eax
mov dword [esp], ecx
mov dword [esp + 0xc], 0xbff00000
mov dword [esp + 8], 0
call fcn.0044a0c0
mov eax, dword [esp + 0x14]
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x20], ecx
mov dword [esp + 4], 0xbfd33333
mov dword [esp], 0x33333333
mov dword [esp + 0xc], eax
mov dword [esp + 8], ecx
call fcn.0044bd60
movzx eax, byte [esp + 0x10]
test al, al
je 0x41dbc8
mov eax, 1
jmp 0x41dbf1
mov eax, dword [esp + 0x24]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x20]
mov dword [esp], eax
mov dword [esp + 0xc], 0x3fd33333
mov dword [esp + 8], 0x33333333
call fcn.0044bd60
movzx eax, byte [esp + 0x10]
test al, al
jne 0x41dc12
mov eax, dword [esp + 0x5c]
mov dword [eax + 0x108], 0
mov dword [eax + 0x10c], 0
jmp 0x41dd16
mov eax, dword [esp + 0x5c]
mov ecx, dword [eax + 0xf0]
mov edx, dword [eax + 0xf4]
mov dword [esp + 4], edx
mov dword [esp], ecx
call fcn.0044be70
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov dword [esp + 4], eax
mov dword [esp], ecx
mov eax, dword [esp + 0x2c]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0x28]
mov dword [esp + 8], ecx
call fcn.0044bd60
movzx eax, byte [esp + 0x10]
test al, al
je 0x41dc7f
mov eax, dword [esp + 0x5c]
mov ecx, dword [eax + 0xf0]
add ecx, 0xffffffff
mov edx, dword [eax + 0xf4]
mov dword [eax + 0xf0], ecx
adc edx, 0xffffffff
mov dword [eax + 0xf4], edx
jmp 0x41dc83
mov eax, dword [esp + 0x5c]
mov ecx, dword [eax + 0xf0]
mov edx, dword [eax + 0xf4]
mov dword [esp + 4], edx
mov dword [esp], ecx
call fcn.0044be70
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x28]
mov dword [esp], ecx
xor eax, 0x80000000
mov dword [esp + 0xc], eax
call fcn.0044a0c0
mov eax, dword [esp + 0x14]
mov dword [esp + 0x54], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0x68]
mov dword [esp], edx
call fcn.0044be20
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x54]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x50]
mov dword [esp], edx
mov dword [esp + 0xc], eax
mov dword [esp + 8], ecx
call fcn.0044abc0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x5c]
mov dword [edx + 0x108], eax
mov dword [edx + 0x10c], ecx
mov eax, edx
mov ecx, dword [0x92b778]
test ecx, ecx
jle 0x41dd47
mov ecx, dword [esp + 0x68]
mov dword [eax + 0xf0], ecx
sar ecx, 0x1f
mov dword [eax + 0xf4], ecx
mov dword [eax + 0x108], 0
mov dword [eax + 0x10c], 0
mov ecx, dword [0x9043b8]
mov edx, dword [0x9043bc]
xor ebx, ebx
jmp 0x41dd83
mov ebp, dword [ecx + ebx*4]
mov dword [ebp + 0x938], 0
mov dword [ebp + 0x93c], 0
mov dword [ebp + 0x940], 0
mov dword [ebp + 0x944], 0
inc ebx
cmp ebx, edx
jl 0x41dd57
mov dword [esp], eax
call fcn.0041df70
mov eax, dword [0x92b770]
test eax, eax
jle 0x41df54
nop
mov eax, dword [esp + 0x5c]
lea ecx, [eax + 0xf8]
mov dword [esp], ecx
call fcn.00401e90
mov eax, dword [0x92befc]
mov dword [esp + 0x54], eax
mov ecx, dword [0x92bef8]
mov dword [esp + 0x50], ecx
mov edx, dword [0x904c9c]
mov dword [esp + 0x4c], edx
mov ebx, dword [0x904c98]
mov dword [esp + 0x48], ebx
mov ebp, dword [esp + 0x5c]
mov esi, dword [ebp + 0x64]
mov dword [esp + 0x44], esi
mov edi, dword [ebp + 0x60]
mov dword [esp + 0x40], edi
mov edi, dword [ebp + 0xf0]
mov dword [esp + 0x3c], edi
mov edi, dword [ebp + 0xf4]
mov dword [esp + 0x38], edi
mov edi, dword [ebp + 0x108]
mov dword [esp + 0x34], edi
mov ebp, dword [ebp + 0x10c]
mov dword [esp + 0x30], ebp
mov ebp, dword [esp + 8]
mov dword [esp + 0x1c], ebp
mov edi, dword [esp + 4]
mov dword [esp + 0x18], edi
call fcn.00437330
lea eax, [0x6fa33d]
mov dword [esp], eax
mov dword [esp + 4], 0x14
call fcn.00437f60
mov eax, dword [esp + 0x18]
mov dword [esp], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], eax
call fcn.004375f0
lea eax, [0x6f46b3]
mov dword [esp], eax
mov dword [esp + 4], 7
call fcn.00437f60
mov eax, dword [esp + 0x54]
mov ecx, eax
shr eax, 0x14
mov dword [esp + 4], eax
shl ecx, 0xc
mov eax, dword [esp + 0x50]
shr eax, 0x14
or eax, ecx
mov dword [esp], eax
call fcn.00437c00
lea eax, [0x6f46c1]
mov dword [esp], eax
mov dword [esp + 4], 7
call fcn.00437f60
mov eax, dword [esp + 0x4c]
mov ecx, eax
shr eax, 0x14
mov dword [esp + 4], eax
shl ecx, 0xc
mov eax, dword [esp + 0x48]
shr eax, 0x14
or eax, ecx
mov dword [esp], eax
call fcn.00437c00
lea eax, [0x6f3c45]
mov dword [esp], eax
mov dword [esp + 4], 2
call fcn.00437f60
mov eax, dword [esp + 0x44]
mov ecx, eax
shr eax, 0x14
mov dword [esp + 4], eax
shl ecx, 0xc
mov eax, dword [esp + 0x40]
shr eax, 0x14
or eax, ecx
mov dword [esp], eax
call fcn.00437c00
lea eax, [0x6f6851]
mov dword [esp], eax
mov dword [esp + 4], 0xd
call fcn.00437f60
mov eax, dword [esp + 0x38]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call fcn.00437d60
lea eax, [0x6f3c08]
mov dword [esp], eax
mov dword [esp + 4], 1
call fcn.00437f60
mov eax, dword [esp + 0x34]
mov dword [esp], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 4], eax
call fcn.004375f0
call fcn.00437550
call fcn.004373a0
add esp, 0x58
ret
call fcn.00461140
jmp fcn.0041d950