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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x43f5c5
sub esp, 0x40
mov dword [0xcc7c84], 1
mov dword [0xcc7ca4], 1
lea eax, [0x8686fa]
mov dword [esp], eax
mov dword [esp + 4], 7
call fcn.00405eb0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
jmp 0x43f375
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x30]
test ecx, ecx
je 0x43f572
mov dword [esp + 0x20], ecx
mov dword [esp + 0x34], eax
mov dword [esp], eax
mov dword [esp + 4], ecx
lea edx, [0x86765d]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
call fcn.00447e20
mov ecx, dword [esp + 0x10]
test ecx, ecx
jge 0x43f547
xor eax, eax
xor ecx, ecx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x30], eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x18], ecx
mov ebx, dword [esp + 0x34]
mov dword [esp], ebx
mov dword [esp + 4], edx
lea ebp, [0x867668]
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 1
call fcn.00447e20
mov ecx, dword [esp + 0x10]
test ecx, ecx
jl 0x43f36d
mov edx, dword [esp + 0x20]
cmp ecx, edx
ja 0x43f5b3
lea eax, [ecx + 1]
cmp eax, edx
ja 0x43f5ac
mov dword [esp + 0x1c], ecx
sub edx, eax
mov dword [esp + 0x14], edx
mov ebx, edx
neg edx
sar edx, 0x1f
and edx, eax
mov eax, dword [esp + 0x34]
add edx, eax
mov dword [esp + 0x2c], edx
cmp ecx, 0xe
je 0x43f4e3
mov ebp, dword [0xcad95c]
mov esi, dword [0xcad958]
test ebp, ebp
jle 0x43f36d
mov dword [esp + 0x28], ebp
xor edi, edi
jmp 0x43f453
add esi, 0xc
mov ebx, dword [esp + 0x14]
mov edi, edx
mov edx, dword [esp + 0x2c]
mov ebx, dword [esi + 8]
mov dword [esp + 0x3c], ebx
mov ebx, dword [esi + 4]
mov edx, dword [esi]
cmp ebx, ecx
je 0x43f46f
lea edx, [edi + 1]
cmp edx, ebp
jl 0x43f446
jmp 0x43f36d
mov dword [esp + 0x38], esi
mov dword [esp + 0x24], edi
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
call fcn.004026d0
movzx eax, byte [esp + 0xc]
test al, al
jne 0x43f4a6
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x28]
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x24]
jmp 0x43f463
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 4], ecx
call fcn.00447ef0
mov eax, dword [esp + 8]
movzx ecx, byte [esp + 0xc]
test cl, cl
je 0x43f4cd
mov ecx, dword [esp + 0x3c]
mov dword [ecx], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x28]
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x24]
jmp 0x43f463
mov dword [esp], eax
lea edx, [0x86b9d7]
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.004026d0
movzx eax, byte [esp + 0xc]
test al, al
jne 0x43f517
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x14]
jmp 0x43f42a
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 4], eax
call fcn.00447ef0
mov eax, dword [esp + 8]
movzx ecx, byte [esp + 0xc]
test cl, cl
je 0x43f36d
mov dword [0xc641b8], eax
jmp 0x43f36d
mov edx, dword [esp + 0x20]
cmp ecx, edx
ja 0x43f5bf
lea eax, [ecx + 1]
cmp eax, edx
ja 0x43f5b8
sub edx, eax
mov ebx, edx
neg edx
sar edx, 0x1f
and edx, eax
mov ebp, dword [esp + 0x34]
lea eax, [ebp + edx]
mov edx, ecx
mov ecx, ebx
jmp 0x43f3b7
lea eax, [0x86a0c4]
mov dword [esp], eax
mov dword [esp + 4], 0xb
call fcn.00405eb0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0043f5d0
mov eax, dword [0xc641d4]
mov dword [0xcc78e0], eax
add esp, 0x40
ret
mov ecx, edx
call fcn.0045a190
call fcn.0045a150
mov ecx, edx
call fcn.0045a190
call fcn.0045a150
nop
call fcn.00458870
jmp fcn.0043f320