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

Disassembly:
lea r12, [rsp - 0x130]
cmp r12, qword [r14 + 0x10]
jbe 0x41ae06
sub rsp, 0x1b0
mov qword [rsp + 0x1a8], rbp
lea rbp, [rsp + 0x1a8]
mov eax, 2
lea rcx, [0x0080d000]
xchg dword [rcx], eax
mov eax, dword [0x0080d000]
nop dword [rax]
cmp eax, 1
jne 0x41a16c
mov eax, 1
jmp 0x41a172
cmp eax, 2
sete al
mov byte [0x0080d344], al
test al, al
je 0x41a183
mov eax, 1
jmp 0x41a18a
movzx eax, byte [0x0080d345]
mov byte [0x0080d340], al
mov rax, qword [0x0080dd48]
mov qword [0x007b8ce0], rax
nop
nop
call fcn.00465aa0
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
mov rax, qword [r14 + 0x30]
nop
mov rcx, qword [rsp]
mov qword [rsp + 0x38], rcx
inc dword [rax + 0xd8]
mov rdi, qword [r14 + 0x30]
mov qword [rsp + 0x180], rdi
mov rax, r14
test byte [rax], al
mov qword [rdi + 0xd0], 5
lea rax, [rdi + 0xc8]
mov qword [rsp + 0x1a0], rax
cmp dword [0x0080d340], 0
nop
jne 0x41a212
lea rdx, [0x006221a6]
mov qword [rdi + 0xc8], rdx
jmp 0x41a225
mov rdi, rax
lea rsi, [0x006221a6]
nop dword [rax]
call fcn.00463e20
mov qword [rsp + 0x190], r14
mov rdx, qword [r14 + 0x30]
mov byte [rdx + 0xf9], 2
mov rdx, qword [r14 + 0x30]
mov rax, qword [rdx + 0x90]
mov qword [rsp + 0x188], rax
mov ebx, 2
mov ecx, 4
call fcn.0043b620
mov rdx, qword [rsp + 0x188]
mov byte [rdx + 0xb0], 6
movups xmmword [rsp + 0xb8], xmm15
lea rsi, [0x0041ae20]
mov qword [rsp + 0xb8], rsi
mov rsi, qword [rsp + 0x38]
mov qword [rsp + 0xc0], rsi
lea rsi, [rsp + 0xb8]
mov qword [rsp], rsi
call fcn.00461940
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
lea rdx, [0x00651c18]
mov qword [rsp], rdx
nop
call fcn.00461940
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
mov rdx, qword [rsp + 0x190]
mov rdx, qword [rdx + 0x30]
mov byte [rdx + 0xf9], 0
mov rax, qword [rsp + 0x188]
mov ebx, 4
mov ecx, 2
nop
call fcn.0043b620
cmp byte [0x007bf190], 0
je 0x41a327
nop
mov eax, 8
mov rbx, 0xffffffffffffffff
xor ecx, ecx
xor edi, edi
mov rsi, rdi
call fcn.004554c0
mov rcx, qword [rsp + 0x180]
mov qword [rcx + 0xd0], 0
cmp dword [0x0080d340], 0
jne 0x41a350
mov qword [rcx + 0xc8], 0
jmp 0x41a35f
mov rdi, qword [rsp + 0x1a0]
xor edx, edx
call fcn.00463de0
cmp dword [0x0080d000], 0
jne 0x41adf2
mov rax, qword [0x0080ddf0]
mov qword [0x00813510], rax
lea rax, [0x00651bf8]
mov qword [rsp], rax
call fcn.00461940
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
nop
nop
call fcn.00465aa0
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
mov rax, qword [rsp]
mov qword [rsp + 0x30], rax
call fcn.00465b00
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
mov rax, qword [rsp]
movsxd rcx, dword [rsp + 8]
mov rdx, qword [0x007b8cd0]
mov rbx, qword [rsp + 0x30]
mov rsi, rbx
sub rbx, rdx
add qword [0x007b8cc8], rbx
mov qword [0x007b8cc0], rsi
imul rax, rax, 0x3b9aca00
add rax, rcx
mov rcx, qword [0x007b8cd0]
mov rdx, rsi
sub rsi, rcx
nop dword [rax + rax]
test rsi, rsi
jge 0x41a440
mov ecx, 1
lea rbx, [0x00814ba0]
lock xadd qword [rbx], rcx
jmp 0x41a4d4
cmp rsi, 0x10
jl 0x41a4a5
bsr rcx, rsi
mov rbx, 0xffffffffffffffff
cmove rcx, rbx
lea rbx, [rcx - 3]
mov rdi, rbx
shl rbx, 4
cmp rbx, 0x2d0
jb 0x41a476
mov edi, 0x2c
mov r8d, 0xf
jmp 0x41a4aa
add rcx, 0xfffffffffffffffc
cmp rcx, 0x40
sbb r8, r8
not r8
or rcx, r8
sar rsi, cl
mov r8, rsi
sar rsi, 0x3f
shr rsi, 0x3c
add rsi, r8
sar rsi, 4
shl rsi, 4
sub r8, rsi
jmp 0x41a4aa
xor edi, edi
mov r8, rsi
shl rdi, 4
lea rbx, [rdi + r8]
cmp rbx, 0x2d0
jae 0x41ade5
lea rcx, [0x00813520]
lea rcx, [rcx + rbx*8]
mov ebx, 1
lock xadd qword [rcx], rbx
lea rcx, [0x008124e8]
mov rbx, rax
xchg qword [rcx], rax
lea rcx, [0x00813508]
mov rsi, rdx
xchg qword [rcx], rdx
movzx ecx, byte [0x008134f8]
mov rdx, qword [0x007b8cc8]
lea rdi, [0x008124f8]
mov qword [rdi + rcx*8], rdx
movzx ecx, byte [0x008134f8]
lea rdx, [0x00812cf8]
mov qword [rdx + rcx*8], rbx
mov rcx, qword [0x007b8cc8]
add qword [0x008124f0], rcx
movsxd rcx, dword [0x007b8c9c]
mov rdx, qword [0x007b8cb0]
sub rdx, qword [0x007b8ca8]
mov rbx, qword [0x0080dda0]
imul rdx, rcx
mov qword [rsp + 0x40], rdx
mov rcx, qword [0x0080dda8]
add rcx, rbx
mov rbx, qword [0x0080ddb0]
add rcx, rbx
movsxd rbx, dword [0x007b8c9c]
mov rdi, qword [0x007b8cc0]
sub rdi, qword [0x007b8cb8]
imul rdi, rbx
mov qword [rsp + 0x58], rdi
add rcx, rdx
add rcx, rdi
mov rbx, qword [0x007b8c60]
add rcx, rbx
mov qword [0x007b8c60], rcx
mov rbx, qword [0x007b9c20]
sub rsi, rbx
movsxd rbx, dword [0x0080d004]
imul rsi, rbx
add rsi, qword [0x007b9c28]
xorps xmm0, xmm0
cvtsi2sd xmm0, rcx
xorps xmm1, xmm1
cvtsi2sd xmm1, rsi
divsd xmm0, xmm1
movsd qword [0x00813500], xmm0
nop
xor ecx, ecx
lea rbx, [0x007df390]
xchg qword [rbx], rcx
mov qword [0x007b84d4], 0
cmp byte [0x007b8c58], 0
je 0x41a5f4
inc dword [0x008134fc]
nop
nop
lea rax, [0x007b8c88]
nop dword [rax]
call fcn.0040b3a0
inc dword [0x008134f8]
lea rax, [0x007b8c90]
call fcn.0043f9c0
nop
nop
lea rax, [0x007b8c88]
call fcn.0040b5c0
lea rax, [0x0080d680]
mov rbx, qword [rsp + 0x30]
call fcn.0041c220
nop
nop
nop
mov eax, dword [0x0080d008]
mov ecx, eax
shr eax, 1
lea edx, [rax + 1]
mov esi, 0xaaaaaaab
imul rdx, rsi
shr rdx, 0x3a
lea edx, [rdx + rdx*2]
shl edx, 0x19
sub eax, edx
lea edx, [rax + 1]
shl edx, 1
mov eax, ecx
lea rcx, [0x0080d008]
lock cmpxchg dword [rcx], edx
sete cl
test cl, cl
je 0x41a638
nop
mov eax, dword [0x007b84dc]
mov ecx, eax
and eax, 0x80000000
test eax, eax
jne 0x41a6a9
lea edx, [rcx + 1]
mov ebx, eax
mov eax, ecx
lea rsi, [0x007b84dc]
lock cmpxchg dword [rsi], edx
sete cl
test cl, cl
je 0x41a674
mov ecx, dword [0x007df3b8]
test ebx, ebx
jmp 0x41a6b1
mov ecx, dword [0x007df3b8]
mov ebx, eax
jne 0x41add3
mov dword [rsp + 0x2c], ebx
mov dword [rsp + 0x28], ecx
lea rax, [0x00651c20]
mov qword [rsp], rax
call fcn.00461940
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
call fcn.0042db80
call fcn.004264e0
lea rax, [0x00651be0]
mov qword [rsp], rax
call fcn.00461940
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
lea rax, [0x00651c30]
mov qword [rsp], rax
nop dword [rax]
call fcn.00461940
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
mov eax, dword [rsp + 0x2c]
test eax, eax
sete cl
lea rax, [0x007b84dc]
mov ebx, dword [rsp + 0x28]
call fcn.00423f40
cmp dword [0x0080d63c], 0
jle 0x41a7b4
movsd xmm0, qword [0x00690648]
mulsd xmm0, qword [0x00813500]
movsd qword [rsp + 0xb0], xmm0
movups xmmword [rsp + 0xc8], xmm15
movups xmmword [rsp + 0xd0], xmm15
call fcn.00438a40
mov rax, qword [0x007b8ca8]
sub rax, qword [0x0080d190]
mov rcx, rax
movabs rax, 0x8637bd05af6c69b6
mul rcx
shr rdx, 0x13
mov eax, 0x17
jmp 0x41a818
lea rax, [0x00792398]
xor ebx, ebx
xor ecx, ecx
nop
call fcn.00449280
nop
lea rax, [0x0079238c]
xor ebx, ebx
xor ecx, ecx
call fcn.00449280
nop
mov rdx, qword [rsp + 0x180]
mov esi, dword [rdx + 0xd8]
lea edi, [rsi - 1]
mov dword [rdx + 0xd8], edi
cmp esi, 1
jne 0x41a805
cmp byte [r14 + 0xb1], 0
je 0x41a805
mov qword [r14 + 0x10], 0xfffffffffffffade
mov rbp, qword [rsp + 0x1a8]
add rsp, 0x1b0
ret
mov rax, rsi
cmp rdx, 0xa
jae 0x41a826
nop
cmp rax, 0x14
jl 0x41a880
mov rcx, rax
movabs rax, 0xcccccccccccccccd
mov rbx, rdx
mul rdx
shr rdx, 3
lea rsi, [rdx + rdx*4]
shl rsi, 1
sub rbx, rsi
cmp rcx, 0x18
jae 0x41adc6
lea rsi, [rbx + 0x30]
mov byte [rsp + rcx + 0xc8], sil
lea rsi, [rcx - 1]
cmp rcx, 0x15
jne 0x41a815
mov byte [rsp + rcx + 0xc7], 0x2e
mov esi, 0x13
jmp 0x41a815
cmp rax, 0x18
jae 0x41adbc
add rdx, 0x30
mov byte [rsp + rax + 0xc8], dl
mov edx, dword [0x008134f8]
mov qword [rsp + 0xa8], rdx
lea rcx, [rax - 0x18]
mov rsi, rcx
sar rcx, 0x3f
and rax, rcx
lea rbx, [rsp + rax + 0xc8]
neg rsi
lea rax, [rsp + 0x138]
mov rcx, rsi
call fcn.0044eb80
mov qword [rsp + 0x198], rax
mov qword [rsp + 0xa0], rbx
nop dword [rax]
call fcn.00438a40
lea rax, [0x00621de2]
mov ebx, 3
call fcn.00439340
mov rax, qword [rsp + 0xa8]
nop
call fcn.00439040
lea rax, [0x00621bb2]
mov ebx, 2
call fcn.00439340
mov rax, qword [rsp + 0x198]
mov rbx, qword [rsp + 0xa0]
call fcn.00439340
lea rax, [0x00621c4c]
mov ebx, 2
call fcn.00439340
movsd xmm0, qword [rsp + 0xb0]
cvttsd2si rax, xmm0
call fcn.00439140
lea rax, [0x00621c7a]
mov ebx, 3
nop dword [rax + rax]
call fcn.00439340
call fcn.00438ac0
mov rdx, qword [0x007b8ca8]
movups xmmword [rsp + 0xe0], xmm15
movups xmmword [rsp + 0xe8], xmm15
mov rsi, qword [0x007b8cb0]
mov qword [rsp + 0xe0], rsi
mov rsi, qword [0x007b8cb8]
mov qword [rsp + 0xe8], rsi
mov rsi, qword [0x007b8cc0]
mov qword [rsp + 0xf0], rsi
xor eax, eax
jmp 0x41aa20
sub rdi, rdx
lea rax, [rsp + 0xc8]
mov ebx, 0x18
mov rcx, rbx
call fcn.0041bf40
mov rcx, rbx
mov rbx, rax
lea rax, [rsp + 0x118]
call fcn.0044eb80
mov qword [rsp + 0x198], rax
mov qword [rsp + 0xa0], rbx
call fcn.00438a40
mov rax, qword [rsp + 0x198]
mov rbx, qword [rsp + 0xa0]
call fcn.00439340
call fcn.00438ac0
mov rax, qword [rsp + 0x68]
inc rax
mov rdx, qword [rsp + 0x48]
nop dword [rax + rax]
cmp rax, 3
jge 0x41aa80
mov qword [rsp + 0x68], rax
mov rdi, qword [rsp + rax*8 + 0xe0]
mov qword [rsp + 0x48], rdi
nop dword [rax + rax]
test rax, rax
je 0x41a9b4
mov qword [rsp + 0x98], rdx
call fcn.00438a40
lea rax, [0x00621ac1]
mov ebx, 1
call fcn.00439340
call fcn.00438ac0
mov rdx, qword [rsp + 0x98]
mov rdi, qword [rsp + 0x48]
jmp 0x41a9b4
call fcn.00438a40
lea rax, [0x0062351c]
mov ebx, 0xb
call fcn.00439340
call fcn.00438ac0
nop
mov rax, qword [0x0080dda0]
movups xmmword [rsp + 0x158], xmm15
movups xmmword [rsp + 0x160], xmm15
movups xmmword [rsp + 0x170], xmm15
mov rcx, qword [rsp + 0x40]
mov qword [rsp + 0x158], rcx
mov qword [rsp + 0x160], rax
mov rax, qword [0x0080dda8]
add rax, qword [0x0080ddb0]
mov qword [rsp + 0x168], rax
mov rax, qword [0x0080ddb8]
mov qword [rsp + 0x170], rax
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x178], rax
xor eax, eax
jmp 0x41ab6d
lea rax, [rsp + 0xc8]
mov ebx, 0x18
mov rcx, rbx
call fcn.0041bf40
mov rcx, rbx
mov rbx, rax
lea rax, [rsp + 0xf8]
call fcn.0044eb80
mov qword [rsp + 0x198], rax
mov qword [rsp + 0xa0], rbx
call fcn.00438a40
mov rax, qword [rsp + 0x198]
mov rbx, qword [rsp + 0xa0]
call fcn.00439340
nop dword [rax + rax]
call fcn.00438ac0
mov rax, qword [rsp + 0x60]
inc rax
cmp rax, 5
jge 0x41abea
mov qword [rsp + 0x60], rax
mov rdi, qword [rsp + rax*8 + 0x158]
mov qword [rsp + 0x50], rdi
cmp rax, 2
je 0x41ab91
cmp rax, 3
jne 0x41abb6
call fcn.00438a40
lea rax, [0x00621ac5]
mov ebx, 1
call fcn.00439340
call fcn.00438ac0
mov rdi, qword [rsp + 0x50]
jmp 0x41ab09
test rax, rax
je 0x41ab09
nop
call fcn.00438a40
lea rax, [0x00621ac1]
mov ebx, 1
call fcn.00439340
call fcn.00438ac0
mov rax, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x50]
jmp 0x41ab09
mov rax, qword [0x0080dd68]
mov qword [rsp + 0xa8], rax
mov rcx, qword [0x007b8cd8]
mov qword [rsp + 0x90], rcx
mov rdx, qword [0x007b8ce0]
mov qword [rsp + 0x88], rdx
mov rbx, qword [0x007b8ce8]
mov qword [rsp + 0x80], rbx
mov rsi, qword [0x0080dd40]
mov qword [rsp + 0x78], rsi
mov rdi, qword [0x0080dd70]
mov qword [rsp + 0x70], rdi
movsxd r8, dword [0x007b8ca0]
mov qword [rsp + 0x98], r8
call fcn.00438a40
lea rax, [0x00622cd3]
mov ebx, 9
nop
call fcn.00439340
mov rax, qword [rsp + 0x90]
shr rax, 0x14
call fcn.00439040
lea rax, [0x00621bc2]
mov ebx, 2
call fcn.00439340
mov rax, qword [rsp + 0x88]
shr rax, 0x14
call fcn.00439040
lea rax, [0x00621bc2]
mov ebx, 2
call fcn.00439340
mov rax, qword [rsp + 0x80]
shr rax, 0x14
call fcn.00439040
lea rax, [0x0062203e]
mov ebx, 5
call fcn.00439340
mov rax, qword [rsp + 0x78]
shr rax, 0x14
call fcn.00439040
lea rax, [0x00623058]
mov ebx, 0xa
call fcn.00439340
mov rax, qword [rsp + 0xa8]
shr rax, 0x14
call fcn.00439040
lea rax, [0x006239b7]
mov ebx, 0xc
call fcn.00439340
mov rax, qword [rsp + 0x70]
shr rax, 0x14
call fcn.00439040
lea rax, [0x00623ef8]
mov ebx, 0xd
call fcn.00439340
mov rax, qword [rsp + 0x98]
call fcn.00439140
lea rax, [0x00621bb4]
mov ebx, 2
call fcn.00439340
call fcn.00438ac0
cmp byte [0x007b8c58], 0
je 0x41ad72
call fcn.00438a40
lea rax, [0x00622c79]
mov ebx, 9
call fcn.00439340
call fcn.00438ac0
call fcn.00438a40
call fcn.00438ca0
nop dword [rax]
call fcn.00438ac0
mov rax, qword [r14 + 0x30]
nop
movzx ecx, byte [rax + 0xe7]
lea edx, [rcx - 1]
mov byte [rax + 0xe7], dl
nop word [rax + rax]
cmp cl, 1
jne 0x41a7b4
nop
nop
lea rax, [0x0080d0b8]
call fcn.0040b5c0
jmp 0x41a7b4
mov ecx, 0x18
call fcn.00464160
mov rax, rcx
mov ecx, 0x18
call fcn.00464160
lea rax, [0x00629d1d]
mov ebx, 0x1b
nop
call fcn.00437180
mov rax, rbx
mov ecx, 0x2d0
call fcn.00464180
lea rax, [0x0062abf1]
mov ebx, 0x1d
nop
call fcn.00437180
nop
call fcn.00461a80
jmp fcn.0041a120