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

Disassembly:
mov rcx, qword gs:[0x28]
mov rcx, qword [rcx]
cmp rsp, qword [rcx + 0x10]
jbe 0x4123e8
sub rsp, 0x38
mov qword [rsp + 0x30], rbp
lea rbp, [rsp + 0x30]
mov rax, qword [rsp + 0x48]
test rax, rax
je 0x4123cb
movzx ecx, byte [rax + 8]
nop word [rax + rax]
test cl, 4
jne 0x4123b2
mov rcx, qword [rsp + 0x40]
mov rdx, qword [rcx + 0x48]
mov rbx, qword [rdx]
mov esi, dword [rax + 0xc]
lea rdi, [rsp + 0x50]
mov qword [rsp], rdi
mov qword [rsp + 8], rsi
call rbx
mov rax, qword [rsp + 0x10]
mov qword [rsp + 0x20], rax
mov rcx, qword [rsp + 0x48]
movzx ebx, byte [rcx + 8]
xor ebx, 4
mov byte [rcx + 8], bl
cmp qword [rcx + 0x10], 0
je 0x412345
mov rdx, qword [rsp + 0x40]
jmp 0x4121c4
lea r10, [r12 + 1]
mov rcx, rbx
mov r8, r9
mov rbx, r11
mov r9, r10
cmp r9, 8
jae 0x4122e6
test byte [rbx], al
movzx r10d, byte [rbx + r9]
nop dword [rax + rax]
cmp r10b, 1
ja 0x4122b5
test rcx, rcx
mov r11, rbx
cmovne rbx, rcx
mov r12, r9
cmovne r9, r8
nop dword [rax + rax]
test r10b, r10b
jne 0x412116
cmp qword [rsi + 0x18], 0
jne 0x412220
mov rdi, qword [rsi]
inc rdi
movzx ecx, byte [rsi + 9]
nop word [rax + rax]
cmp rdi, 8
jle 0x4121fd
mov r8d, 1
shl r8, cl
shr r8, 1
lea r10, [r8 + r8*2]
lea r8, [r8 + r10*4]
cmp rdi, r8
jbe 0x4121fd
mov qword [rsp], rdx
mov qword [rsp + 8], rsi
call fcn.004112e0
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x20]
mov rax, rdx
mov rdx, qword [rsp + 0x40]
movzx ebx, byte [rcx + 9]
mov rsi, rcx
mov ecx, ebx
mov edi, 1
shl rdi, cl
lea rbx, [rdi - 1]
and rbx, rax
cmp qword [rsi + 0x18], 0
jne 0x412313
movzx edi, word [rdx + 0x52]
imul rbx, rdi
add rbx, qword [rsi + 0x10]
xor ecx, ecx
xor r8d, r8d
jmp 0x4122fa
movzx edi, word [rsi + 0xa]
cmp cl, 0xf
jbe 0x41220b
mov ecx, 0xf
and ecx, 0xf
mov r8d, 1
shl r8d, cl
cmp r8w, di
jbe 0x41219f
nop dword [rax]
test rbx, rbx
je 0x412286
shr rax, 0x38
cmp al, 5
jae 0x412230
add eax, 5
test byte [rbx], al
mov rcx, r9
and r9, 7
mov byte [rbx + r9], al
mov rax, rbx
lea rdi, [rbx + rcx*4]
lea rdi, [rdi + 8]
nop
mov r8d, dword [rsp + 0x50]
mov dword [rdi], r8d
inc qword [rsi]
movzx edx, byte [rdx + 0x51]
imul rdx, rcx
movzx ecx, byte [rsi + 8]
lea rax, [rdx + rax]
lea rax, [rax + 0x28]
test cl, 4
je 0x412399
and ecx, 0xfffffffb
mov byte [rsi + 8], cl
mov qword [rsp + 0x58], rax
mov rbp, qword [rsp + 0x30]
add rsp, 0x38
ret
mov qword [rsp], rsi
mov qword [rsp + 8], rdx
mov qword [rsp + 0x10], r11
call fcn.0040eee0
mov rbx, qword [rsp + 0x18]
mov rax, qword [rsp + 0x20]
mov rdx, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
xor r9d, r9d
jmp 0x412225
mov r10, rbx
lea rbx, [rbx + r9*4]
lea rbx, [rbx + 8]
mov r11d, dword [rsp + 0x50]
cmp dword [rbx], r11d
je 0x4122db
mov r11, r10
mov r12, r9
mov rbx, rcx
mov r9, r8
jmp 0x412116
mov rax, r10
mov rcx, r9
jmp 0x412254
mov r9, rbx
lea rbx, [rbx + rdi]
lea rbx, [rbx - 8]
nop
mov rbx, qword [rbx]
test rbx, rbx
je 0x412305
xor r9d, r9d
nop dword [rax]
jmp 0x412127
mov r11, r9
mov rbx, rcx
mov r9, r8
jmp 0x412165
mov qword [rsp + 0x28], rbx
mov qword [rsp], rdx
mov qword [rsp + 8], rsi
mov qword [rsp + 0x10], rbx
call fcn.00412400
mov rax, qword [rsp + 0x20]
mov rdx, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x48]
nop
jmp 0x4121e7
mov rax, qword [rsp + 0x40]
mov rcx, qword [rax + 0x40]
mov rdx, qword [rcx]
mov qword [rsp], rdx
mov qword [rsp + 8], rcx
mov byte [rsp + 0x10], 1
nop
call fcn.0040daa0
mov rax, qword [rsp + 0x18]
cmp dword [0x00811460], 0
jne 0x412389
mov rdx, qword [rsp + 0x48]
mov qword [rdx + 0x10], rax
mov rax, qword [rsp + 0x20]
mov rcx, rdx
jmp 0x41210c
mov rdx, qword [rsp + 0x48]
lea rdi, [rdx + 0x10]
call fcn.0046c920
jmp 0x41237c
lea rax, [0x0065f162]
mov qword [rsp], rax
mov qword [rsp + 8], 0x15
call fcn.00439220
lea rax, [0x0065f162]
mov qword [rsp], rax
mov qword [rsp + 8], 0x15
call fcn.00439220
lea rax, [0x0061e920]
mov qword [rsp], rax
lea rax, [0x006a1940]
mov qword [rsp + 8], rax
call fcn.00438920
nop
call fcn.0046abe0
jmp fcn.00412080