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

Disassembly:
cmp rsp, qword [r14 + 0x10]
jbe 0x416233
push rbp
mov rbp, rsp
sub rsp, 0x30
mov qword [rsp + 0x50], rcx
nop word [rax + rax]
test rbx, rbx
je 0x41621f
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x40], rax
movzx ecx, byte [rbx + 8]
test cl, 4
je 0x415f77
lea rax, [0x01042672]
mov ebx, 0x15
call fcn.0043dd60
mov rax, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x48]
mov rdx, qword [rax + 0x48]
mov rcx, qword [rdx]
mov esi, dword [rbx + 0xc]
lea rax, [rsp + 0x50]
mov rbx, rsi
call rcx
mov qword [rsp + 0x18], rax
mov rbx, qword [rsp + 0x48]
movzx ecx, byte [rbx + 8]
xor ecx, 4
mov byte [rbx + 8], cl
cmp qword [rbx + 0x10], 0
jne 0x415fea
mov rdx, qword [rsp + 0x40]
mov rbx, qword [rdx + 0x40]
mov rax, qword [rbx]
mov ecx, 1
call fcn.00410820
cmp dword [0x01c09e00], 0
jne 0x415fcc
mov rbx, qword [rsp + 0x48]
jmp 0x415fe1
call fcn.00472500
mov qword [r11], rax
mov rbx, qword [rsp + 0x48]
mov rdx, qword [rbx + 0x10]
mov qword [r11 + 8], rdx
mov qword [rbx + 0x10], rax
mov rax, qword [rsp + 0x18]
mov rdx, qword [rsp + 0x40]
jmp 0x416010
mov rax, rdx
call fcn.004139e0
mov rax, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x18]
mov rax, rcx
mov rdx, qword [rsp + 0x40]
movzx ecx, byte [rbx + 9]
mov esi, 1
shl rsi, cl
lea rcx, [rsi - 1]
and rcx, rax
cmp qword [rbx + 0x18], 0
je 0x41604b
mov qword [rsp + 0x20], rcx
mov rax, rdx
call fcn.00416580
mov rax, qword [rsp + 0x18]
mov rcx, qword [rsp + 0x20]
mov rdx, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x48]
movzx esi, word [rdx + 0x52]
imul rcx, rsi
add rcx, qword [rbx + 0x10]
xor edi, edi
xor r8d, r8d
jmp 0x4160d9
mov r11, rdi
mov r9, r8
cmp qword [rbx + 0x18], 0
jne 0x41615a
mov rsi, qword [rbx]
inc rsi
movzx edi, byte [rbx + 9]
cmp rsi, 8
jle 0x4160ab
mov r8, rcx
mov ecx, edi
mov r10d, 1
shl r10, cl
shr r10, 1
lea r10, [r10 + r10*2]
shl r10, 2
nop dword [rax + rax]
cmp r10, rsi
jb 0x415ff1
jmp 0x4160b0
mov r8, rcx
mov ecx, edi
cmp cl, 0xf
jbe 0x4160ba
mov ecx, 0xf
movzx esi, word [rbx + 0xa]
and ecx, 0xf
mov edi, 1
shl edi, cl
cmp si, di
jae 0x415ff1
jmp 0x416160
mov rcx, r9
xor r9d, r9d
jmp 0x416103
mov r9, rcx
lea r9, [r9 + rsi]
lea r9, [r9 - 8]
mov r9, qword [r9]
test r9, r9
jne 0x4160d6
jmp 0x41605e
lea r10, [rdi + 1]
mov rdi, r11
mov r8, r9
mov r9, r10
cmp r9, 8
jae 0x4160de
test byte [rcx], al
movzx r10d, byte [rcx + r9]
cmp r10b, 1
ja 0x416131
test rdi, rdi
mov r11, rcx
cmovne r11, rdi
mov rdi, r9
cmovne r9, r8
test r10b, r10b
jne 0x4160f6
jmp 0x416064
mov r10, rcx
lea r10, [r10 + r9*8]
lea r10, [r10 + 8]
mov r10, qword [r10]
nop
cmp qword [rsp + 0x50], r10
je 0x416152
mov r11, rdi
mov rdi, r9
mov r9, r8
jmp 0x4160f6
mov rsi, rcx
mov rcx, r9
jmp 0x4161d5
mov r8, rcx
nop dword [rax]
test r11, r11
jne 0x416188
mov rax, rbx
mov rbx, rdx
mov rcx, r8
call fcn.00411900
mov rdx, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x48]
mov r11, rax
xor r9d, r9d
mov rax, qword [rsp + 0x18]
shr rax, 0x38
cmp al, 5
jae 0x416193
add eax, 5
test byte [r11], al
mov rcx, r9
and r9d, 7
mov byte [r11 + r9], al
mov rsi, r11
lea rdi, [r11 + rcx*8]
lea rdi, [rdi + 8]
test byte [rdi], al
nop
mov r8, qword [rsp + 0x50]
cmp dword [0x01c09e00], 0
je 0x4161cf
nop dword [rax]
call fcn.00472500
mov qword [r11], r8
mov r9, qword [rdi]
mov qword [r11 + 8], r9
mov qword [rdi], r8
inc qword [rbx]
movzx edx, byte [rdx + 0x51]
imul rcx, rdx
movzx edx, byte [rbx + 8]
lea rax, [rcx + rsi]
lea rax, [rax + 0x48]
test dl, 4
jne 0x41620f
mov qword [rsp + 0x28], rax
lea rax, [0x01042672]
mov ebx, 0x15
nop
call fcn.0043dd60
mov rax, qword [rsp + 0x28]
mov rbx, qword [rsp + 0x48]
movzx ecx, byte [rbx + 8]
and ecx, 0xfffffffb
mov byte [rbx + 8], cl
add rsp, 0x30
pop rbp
ret
lea rax, [0x00ee2440]
lea rbx, [0x01419670]
call fcn.0043d500
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
call fcn.004705e0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
jmp fcn.00415f20