Function at 0x470e30
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 0x471356
sub esp, 0x60
mov eax, dword [esp + 0x64]
test eax, eax
jne 0x470e58
mov byte [esp + 0x74], 0
add esp, 0x60
ret
mov ecx, dword [esp + 0x6c]
test ecx, ecx
je 0x47133d
movzx edx, byte [0x96ed20]
nop
test dl, dl
je 0x470ea6
mov edx, dword [esp + 0x6c]
mov dword [0x96ed24], edx
mov edx, dword [0x995310]
test edx, edx
jne 0x470e8a
mov edx, dword [esp + 0x70]
jmp 0x470e9e
call fcn.00468e70
mov edx, dword [esp + 0x70]
mov dword [edi], edx
mov ebx, dword [0x96ed28]
mov dword [edi + 4], ebx
mov dword [0x96ed28], edx
jmp 0x470eaa
mov edx, dword [esp + 0x70]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], edx
mov ebx, dword [esp + 0x50]
test ebx, ebx
je 0x470ed7
movzx ebp, byte [ebx + 0xf]
nop
mov esi, ebp
and ebp, 0x1f
xchg esi, eax
test al, 0x20
xchg esi, eax
jne 0x470ed1
or ebp, 0x80
mov esi, dword [esp + 0x54]
jmp 0x470edd
xor ebp, ebp
xor esi, esi
xor ebx, ebx
nop
test ebp, ebp
je 0x471303
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x34], esi
mov dword [esp + 0x30], ebx
mov dword [esp], ebx
call fcn.00401150
cmp dword [esp + 4], 0x16
jne 0x4712b1
mov eax, dword [esp + 0x1c]
mov ecx, eax
and eax, 0x1f
mov dword [esp + 0x2c], eax
nop
cmp eax, 0x14
ja 0x470f2a
lea edx, [eax - 0x12]
cmp edx, 1
jbe 0x470f4a
cmp eax, 0x14
je 0x470f34
jmp 0x4712c9
cmp eax, 0x16
jbe 0x470f4a
cmp eax, 0x17
jne 0x470f41
mov eax, dword [esp + 0x34]
mov edx, dword [eax]
test edx, edx
setne dl
jmp 0x470f65
cmp eax, 0x1a
jne 0x4712c9
test ecx, 0x80
je 0x470f5a
mov eax, dword [esp + 0x34]
mov esi, dword [eax]
jmp 0x470f60
mov eax, dword [esp + 0x34]
mov esi, eax
test esi, esi
setne dl
test dl, dl
je 0x4712b1
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.0046e760
mov eax, dword [esp + 4]
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x38], ecx
mov edx, dword [eax + 0x20]
mov ebx, dword [esp + 4]
mov dword [esp + 0x44], ebx
mov dword [esp], ecx
call edx
cmp dword [esp + 4], 0x14
je 0x470fd1
mov eax, dword [0x96ea98]
mov ecx, dword [0x96ea9c]
mov edx, dword [esp + 0x20]
mov edx, dword [edx + 0x1c]
mov ebx, dword [esp + 0x38]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call edx
movzx eax, byte [esp + 0xc]
test al, al
je 0x471299
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x68]
jmp 0x470fdf
mov ecx, dword [esp + 8]
test eax, eax
je 0x470fe8
mov edx, dword [eax + 4]
jmp 0x470fea
mov edx, eax
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x58], edx
mov dword [esp + 0x5c], ecx
mov edx, dword [esp + 0x58]
test edx, edx
je 0x47100a
lea ebx, [0x7b2c38]
jmp 0x47100e
xor ebx, ebx
xor edx, edx
mov eax, dword [ebx + 0x10]
mov dword [esp], edx
mov ecx, dword [esp + 0x44]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x38]
mov dword [esp + 8], edx
call eax
movzx eax, byte [esp + 0xc]
test al, al
jne 0x471168
lea eax, [0x6f7500]
mov dword [esp], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x3c]
mov dword [esp + 8], edx
call fcn.00409f50
mov eax, dword [esp + 0xc]
test eax, eax
jne 0x471061
mov eax, dword [esp + 0x18]
test eax, eax
jmp 0x471090
mov eax, dword [eax + 0x10]
mov ecx, dword [esp + 0x10]
mov dword [esp], ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x70]
mov dword [esp + 8], edx
call eax
movzx eax, byte [esp + 0xc]
test al, al
jne 0x47115f
mov eax, dword [esp + 0x18]
test eax, eax
je 0x471156
lea ecx, [0x6f75c0]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov edx, dword [esp + 0x3c]
mov dword [esp + 8], edx
call fcn.00409f50
mov eax, dword [esp + 0xc]
test eax, eax
je 0x4710f3
lea eax, [0x6f75c0]
mov dword [esp], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 4], ecx
call fcn.00409ea0
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x10]
mov ecx, dword [esp + 0x3c]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 4]
test eax, eax
jne 0x470fdb
mov byte [esp + 0x74], 0
add esp, 0x60
ret
lea eax, [0x6f7580]
mov dword [esp], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x3c]
mov dword [esp + 8], edx
call fcn.00409f50
mov eax, dword [esp + 0xc]
test eax, eax
je 0x471156
lea eax, [0x6f7580]
mov dword [esp], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 4], eax
call fcn.00409ea0
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x10]
mov ecx, dword [esp + 0x3c]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 4]
mov dword [esp + 0x40], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x28], ecx
xor edx, edx
jmp 0x471252
mov byte [esp + 0x74], 0
add esp, 0x60
ret
mov byte [esp + 0x74], 1
add esp, 0x60
ret
mov eax, dword [esp + 0x30]
mov dword [esp], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 8], eax
call fcn.0046fdf0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
test ebx, ebx
je 0x47119b
mov ebx, dword [ebx + 4]
test ebx, ebx
je 0x471218
movzx ebp, byte [0x96ed20]
nop
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x4711df
mov dword [0x96ed24], ebx
mov ebp, dword [0x995310]
test ebp, ebp
jne 0x4711c3
mov ebp, dword [esp + 0x3c]
jmp 0x4711d7
call fcn.00468e70
mov ebp, dword [esp + 0x3c]
mov dword [edi], ebp
mov esi, dword [0x96ed28]
mov dword [edi + 4], esi
mov dword [0x96ed28], ebp
jmp 0x4711e3
mov ebp, dword [esp + 0x3c]
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], ebp
mov ebx, dword [esp + 0x48]
test ebx, ebx
je 0x471210
movzx ebp, byte [ebx + 0xf]
nop
mov esi, ebp
and ebp, 0x1f
xchg esi, eax
test al, 0x20
xchg esi, eax
jne 0x47120a
or ebp, 0x80
mov esi, dword [esp + 0x4c]
jmp 0x47121e
xor ebp, ebp
xor ebx, ebx
xor esi, esi
jmp 0x47121e
xor ebp, ebp
xor ebx, ebx
xor esi, esi
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], ebp
call fcn.004701f0
mov byte [esp + 0x74], 1
add esp, 0x60
ret
mov ebx, dword [esp + 0x24]
lea edx, [ebx + 1]
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x28]
cmp edx, ecx
jge 0x471290
mov dword [esp + 0x24], edx
lea ecx, [eax + edx*8]
mov ebx, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 8], ecx
mov ebx, dword [esp + 0x70]
mov dword [esp + 0xc], ebx
call fcn.00470e30
movzx eax, byte [esp + 0x10]
test al, al
je 0x471243
mov byte [esp + 0x74], 1
add esp, 0x60
ret
mov byte [esp + 0x74], 0
add esp, 0x60
ret
lea eax, [0x6f44e0]
mov dword [esp], eax
lea eax, [0x7b0284]
mov dword [esp + 4], eax
call fcn.00438b10
lea eax, [0x6f44e0]
mov dword [esp], eax
lea eax, [0x7b027c]
mov dword [esp + 4], eax
call fcn.00438b10
lea eax, [0x70a560]
mov dword [esp], eax
call fcn.0040c500
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x17
lea ecx, [0x741ad0]
mov dword [eax], ecx
mov ecx, dword [esp + 0x2c]
mov dword [eax + 8], ecx
lea ecx, [0x6fc260]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00438b10
lea eax, [0x70a560]
mov dword [esp], eax
call fcn.0040c500
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x16
lea ecx, [0x7411a0]
mov dword [eax], ecx
mov dword [eax + 8], 0
lea ecx, [0x6fc260]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00438b10
lea eax, [0x6f44e0]
mov dword [esp], eax
lea eax, [0x7b0274]
mov dword [esp + 4], eax
call fcn.00438b10
nop
call fcn.00467a60
jmp fcn.00470e30