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

Disassembly:
lea r12, [rsp - 0x10]
cmp r12, qword [r14 + 0x10]
jbe 0x479e0d
sub rsp, 0x90
mov qword [rsp + 0x88], rbp
lea rbp, [rsp + 0x88]
mov qword [rsp + 0x98], rax
lea rdx, [rsi - 2]
cmp rdx, 0x22
ja 0x479df9
movups xmmword [rsp + 0x3f], xmm15
movups xmmword [rsp + 0x40], xmm15
movups xmmword [rsp + 0x50], xmm15
movups xmmword [rsp + 0x60], xmm15
movups xmmword [rsp + 0x70], xmm15
test r8b, r8b
je 0x4799a2
neg rdi
cmp rsi, 0xa
jne 0x4799b2
mov edx, 0x41
jmp 0x479c60
lea rdx, [rsi - 1]
test rsi, rdx
jne 0x4799d1
bsf rdx, rsi
and edx, 7
lea r10, [rsi - 1]
mov r11d, 0x41
jmp 0x479bd3
mov edx, 0x41
jmp 0x4799e6
mov byte [rsp + r11 + 0x3e], r12b
mov rdi, rdx
mov rdx, rax
mov rax, r10
cmp rsi, rdi
ja 0x479a2b
mov r10, rax
mov rax, rdi
mov r11, rdx
xor edx, edx
div rsi
mov rdx, rax
imul rax, rsi
sub rdi, rax
cmp rdi, 0x24
jae 0x479baf
lea rax, [r11 - 1]
lea r12, [0x00728c8e]
movzx r12d, byte [rdi + r12]
nop dword [rax]
cmp rax, 0x41
jb 0x4799d8
jmp 0x479ba5
lea r10, [rdx - 1]
lea r11, [0x00728c8e]
movzx r11d, byte [rdi + r11]
nop dword [rax + rax]
cmp r10, 0x41
jae 0x479b96
mov byte [rsp + rdx + 0x3e], r11b
test r8b, r8b
je 0x479a72
lea rdx, [r10 - 1]
nop dword [rax + rax]
cmp rdx, 0x41
jae 0x479b89
mov byte [rsp + r10 + 0x3e], 0x2d
jmp 0x479a75
mov rdx, r10
test r9b, r9b
je 0x479b2c
nop
cmp rdx, 0x41
ja 0x479b7c
mov r8, rbx
sub rbx, rdx
add rbx, 0x41
lea rdi, [rdx - 0x41]
mov r9, rdi
sar rdi, 0x3f
and rdx, rdi
lea rdx, [rsp + rdx + 0x3f]
neg r9
cmp rcx, rbx
jae 0x479ae2
mov qword [rsp + 0x30], r9
mov qword [rsp + 0x80], rdx
mov qword [rsp + 0x28], r8
mov rdi, r9
lea rsi, [0x006bb680]
call fcn.0044aa20
mov rdx, qword [rsp + 0x80]
mov r8, qword [rsp + 0x28]
mov r9, qword [rsp + 0x30]
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x28], rcx
lea rsi, [rax + r8]
mov rax, rsi
mov rbx, rdx
mov rcx, r9
call fcn.00466860
mov rax, qword [rsp + 0x80]
mov rbx, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x28]
xor edi, edi
xor esi, esi
mov rbp, qword [rsp + 0x88]
add rsp, 0x90
ret
cmp rdx, 0x41
ja 0x479b6f
lea rcx, [rdx - 0x41]
mov rsi, rcx
sar rcx, 0x3f
and rdx, rcx
lea rbx, [rsp + rdx + 0x3f]
neg rsi
xor eax, eax
mov rcx, rsi
call fcn.0044ec00
xor ecx, ecx
mov rdi, rax
mov rsi, rbx
xor eax, eax
mov rbx, rcx
mov rbp, qword [rsp + 0x88]
add rsp, 0x90
ret
mov rax, rdx
mov ecx, 0x41
call fcn.00465f80
mov rax, rdx
mov ecx, 0x41
call fcn.00465f80
mov rax, rdx
mov ecx, 0x41
call fcn.00465ec0
mov rax, r10
mov ecx, 0x41
nop
call fcn.00465ec0
mov ecx, 0x41
call fcn.00465ec0
mov rax, rdi
mov ecx, 0x24
call fcn.00465ee0
mov byte [rsp + r11 + 0x3e], r15b
mov rdi, rcx
mov rcx, rdx
shr r12, cl
mov rcx, rdi
mov rdi, r12
mov r11, r13
cmp rsi, rdi
ja 0x479bfe
mov r12, rdi
and rdi, r10
nop
cmp rdi, 0x24
jae 0x479c3f
lea r13, [r11 - 1]
lea r15, [0x00728c8e]
movzx r15d, byte [rdi + r15]
cmp r13, 0x41
jb 0x479bbc
jmp 0x479c32
lea rdx, [r11 - 1]
lea r10, [0x00728c8e]
movzx r10d, byte [rdi + r10]
cmp rdx, 0x41
jae 0x479c25
mov byte [rsp + r11 + 0x3e], r10b
test r8b, r8b
mov r10, rdx
nop
jmp 0x479a52
mov rax, rdx
mov ecx, 0x41
call fcn.00465ec0
mov rax, r13
mov ecx, 0x41
call fcn.00465ec0
mov rax, rdi
mov ecx, 0x24
call fcn.00465ee0
mov byte [rsp + r11 + 0x3d], r10b
mov rdi, rdx
mov rdx, rax
mov rax, rsi
nop word [rax + rax]
cmp rdi, 0x64
jb 0x479d0f
mov r10, rdi
shr rdi, 1
mov rsi, rax
movabs rax, 0xa3d70a3d70a3d70b
mov r11, rdx
mul rdi
shr rdx, 5
imul r12, rdx, 0x64
sub r10, r12
lea rax, [r10 + r10]
lea rax, [rax + 1]
nop word [rax + rax]
nop
cmp rax, 0xc8
jae 0x479def
lea rax, [r11 - 1]
lea r12, [0x00733e01]
lea r13, [r12 + r10*2]
lea r13, [r13 + 1]
movzx r13d, byte [r13]
cmp rax, 0x41
jae 0x479de5
mov byte [rsp + r11 + 0x3e], r13b
mov rax, r10
shl rax, 1
nop dword [rax]
cmp rax, 0xc8
jae 0x479dd6
lea rax, [r11 - 2]
lea r10, [r12 + r10*2]
movzx r10d, byte [r10]
nop dword [rax + rax]
cmp rax, 0x41
jb 0x479c4c
jmp 0x479dcc
lea r10, [rdi + rdi]
lea r10, [r10 + 1]
nop word [rax + rax]
cmp r10, 0xc8
jae 0x479dbf
lea r10, [rdx - 1]
lea r11, [0x00733e01]
lea r12, [r11 + rdi*2]
lea r12, [r12 + 1]
movzx r12d, byte [r12]
cmp r10, 0x41
jae 0x479db2
mov byte [rsp + rdx + 0x3e], r12b
cmp rdi, 0xa
jb 0x479d85
mov r10, rdi
shl rdi, 1
nop dword [rax]
cmp rdi, 0xc8
jae 0x479da5
lea r12, [rdx - 2]
lea r10, [r11 + r10*2]
movzx r10d, byte [r10]
cmp r12, 0x41
jae 0x479d93
mov byte [rsp + rdx + 0x3d], r10b
test r8b, r8b
jmp 0x479d8b
test r8b, r8b
mov r12, r10
mov r10, r12
jmp 0x479a52
mov rax, r12
mov ecx, 0x41
nop dword [rax + rax]
call fcn.00465ec0
mov rax, rdi
mov ecx, 0xc8
call fcn.00465ee0
mov rax, r10
mov ecx, 0x41
call fcn.00465ec0
mov rax, r10
mov ecx, 0xc8
call fcn.00465ee0
mov ecx, 0x41
call fcn.00465ec0
mov ecx, 0xc8
nop dword [rax + rax]
call fcn.00465ee0
mov ecx, 0x41
call fcn.00465ec0
mov ecx, 0xc8
call fcn.00465ee0
lea rax, [0x006bb4c0]
lea rbx, [0x007f1590]
call fcn.00436580
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], rdi
mov qword [rsp + 0x28], rsi
mov byte [rsp + 0x30], r8b
mov byte [rsp + 0x31], r9b
call fcn.00463860
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x28]
movzx r8d, byte [rsp + 0x30]
movzx r9d, byte [rsp + 0x31]
jmp fcn.00479940