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

Disassembly:
lea r12, [rsp - 0x30]
cmp r12, qword [r14 + 0x10]
jbe 0x4024e6
push rbp
mov rbp, rsp
sub rsp, 0xa8
mov qword [rsp + 0xb8], rax
mov qword [rsp + 0xc8], rcx
cmp rbx, 0x20000000
jge 0x4024a8
nop word [rax + rax]
cmp rdi, 0x20000000
jge 0x40246c
mov qword [rsp + 0x8e], 0
mov qword [rsp + 0x90], 0
mov qword [rsp + 0x84], 0
mov qword [rsp + 0x86], 0
nop
mov rdx, rbx
xor r9d, r9d
jmp 0x402155
or r10d, 0xffffff80
mov byte [rsp + r9 + 0x8e], r10b
inc r9
mov r10, rbx
sar rbx, 7
and r10d, 0x7f
test rbx, rbx
je 0x402170
cmp r9, 0xa
jb 0x402146
jmp 0x40245f
cmp r9, 0xa
jae 0x402452
mov byte [rsp + r9 + 0x8e], r10b
nop
mov rbx, rdi
xor r10d, r10d
jmp 0x40219a
or r11d, 0xffffff80
mov byte [rsp + r10 + 0x84], r11b
inc r10
mov r11, rdi
sar rdi, 7
and r11d, 0x7f
test rdi, rdi
je 0x4021b5
cmp r10, 0xa
jb 0x40218b
jmp 0x402445
cmp r10, 0xa
jae 0x402437
mov byte [rsp + r10 + 0x84], r11b
lea rdi, [r9 + rdx]
lea rdi, [rdi + 2]
lea r11, [rdx + r9]
test rbx, rbx
je 0x4021ea
lea r12, [rbx + r10]
lea r12, [r12 + r11]
lea r12, [r12 + 3]
or esi, 2
jmp 0x4021ed
mov r12, rdi
mov qword [rsp + 0x78], rdx
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0xb8], rax
mov qword [rsp + 0xc8], rcx
mov qword [rsp + 0x68], r11
mov qword [rsp + 0x50], r10
mov qword [rsp + 0x58], r9
nop dword [rax + rax]
test r8b, r8b
je 0x402228
or esi, 8
mov byte [rsp + 0x3f], sil
mov qword [rsp + 0x60], r12
lea rax, [0x00e85920]
mov rbx, r12
mov rcx, rbx
nop
call fcn.004539a0
mov rcx, qword [rsp + 0x60]
test rcx, rcx
jbe 0x40242d
mov qword [rsp + 0xa0], rax
movzx edx, byte [rsp + 0x3f]
mov byte [rax], dl
lea rdx, [rcx - 1]
mov rsi, rdx
neg rdx
sar rdx, 0x3f
and edx, 1
add rdx, rax
mov rdi, qword [rsp + 0x58]
lea r8, [rdi + 1]
cmp r8, rsi
cmovl rsi, r8
lea rbx, [rsp + 0x8e]
cmp rbx, rdx
je 0x4022b0
mov rax, rdx
mov rcx, rsi
call fcn.004732a0
mov rax, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x58]
lea rdx, [rdi + 2]
cmp rcx, rdx
jb 0x402425
mov rsi, rcx
sub rsi, rdi
add rsi, 0xfffffffffffffffe
mov rdi, rsi
neg rsi
sar rsi, 0x3f
and rdx, rsi
add rdx, rax
mov rsi, qword [rsp + 0x78]
cmp rsi, rdi
cmovl rdi, rsi
mov rbx, qword [rsp + 0xb8]
cmp rbx, rdx
jne 0x4022fa
mov rdx, qword [rsp + 0x70]
test rdx, rdx
jmp 0x40231a
mov rax, rdx
mov rcx, rdi
call fcn.004732a0
mov rdx, qword [rsp + 0x70]
test rdx, rdx
mov rax, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x60]
nop word [rax + rax]
je 0x402406
mov rsi, qword [rsp + 0x48]
cmp rcx, rsi
jb 0x40241a
mov rdi, qword [rsp + 0x68]
sub rcx, rdi
lea rdi, [rcx - 2]
mov r8, rdi
neg rdi
sar rdi, 0x3f
and rsi, rdi
add rsi, rax
mov rdi, qword [rsp + 0x50]
lea r9, [rdi + 1]
cmp r9, r8
mov r10, r8
cmovl r8, r9
lea rbx, [rsp + 0x84]
cmp rbx, rsi
jne 0x402375
cmp r9, r10
jmp 0x4023c9
mov qword [rsp + 0x40], r9
mov qword [rsp + 0x78], rcx
mov qword [rsp + 0x68], r10
mov qword [rsp + 0x98], rsi
mov rax, rsi
mov rcx, r8
call fcn.004732a0
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x68]
cmp rax, rcx
mov rdx, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x98]
mov rdi, qword [rsp + 0x50]
mov r9, rax
mov r10, rcx
mov rax, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x78]
ja 0x40240f
sub rcx, rdi
add rcx, 0xfffffffffffffffd
mov rdi, rcx
neg rdi
sar rdi, 0x3f
and rdi, r9
add rsi, rdi
cmp rdx, rcx
cmovl rcx, rdx
mov rbx, qword [rsp + 0xc8]
cmp rbx, rsi
je 0x402406
mov rax, rsi
call fcn.004732a0
mov rax, qword [rsp + 0xa0]
add rsp, 0xa8
pop rbp
ret
mov rax, r9
mov rcx, r10
call fcn.00472960
mov rax, rsi
nop dword [rax]
call fcn.00472960
mov rax, rdx
call fcn.00472960
xor eax, eax
mov rcx, rax
call fcn.004728a0
mov rax, r10
mov ecx, 0xa
nop
call fcn.004728a0
mov rax, r10
mov ecx, 0xa
call fcn.004728a0
mov rax, r9
mov ecx, 0xa
call fcn.004728a0
mov rax, r9
mov ecx, 0xa
call fcn.004728a0
xor eax, eax
lea rbx, [0x0104d5c1]
mov rdi, rcx
mov esi, 0x400
lea r8, [0x0102c2ce]
mov r9d, 3
mov ecx, 0x1b
call fcn.004578e0
call fcn.0040e940
mov rbx, rax
lea rax, [0x00e855e0]
call fcn.0043d500
lea rbx, [0x0104f526]
mov ecx, 0x1c
mov rdi, rax
mov esi, 0x400
lea r8, [0x0102c2ce]
mov r9d, 3
xor eax, eax
call fcn.004578e0
call fcn.0040e940
mov rbx, rax
lea rax, [0x00e855e0]
nop
call fcn.0043d500
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], rdi
mov byte [rsp + 0x28], sil
mov byte [rsp + 0x29], r8b
call fcn.004705e0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
movzx esi, byte [rsp + 0x28]
movzx r8d, byte [rsp + 0x29]
jmp fcn.004020c0