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

Disassembly:
mov rcx, qword gs:[0x28]
mov rcx, qword [rcx]
lea rax, [rsp - 0x18]
cmp rax, qword [rcx + 0x10]
jbe 0x410a29
sub rsp, 0x98
mov qword [rsp + 0x90], rbp
lea rbp, [rsp + 0x90]
mov rax, 0
mov qword [rsp + 0x48], rax
mov eax, dword [0x00850ab8]
cmp eax, 2
je 0x410a0e
mov rax, qword [rsp + 0xa0]
test rax, rax
je 0x41099d
mov edx, dword [0x00850ee8]
test edx, edx
je 0x4100eb
mov rcx, qword [rsp + 0xa8]
test rcx, rcx
je 0x4100e4
movzx ecx, byte [rcx + 0x15]
mov qword [rsp], rax
mov qword [rsp + 8], rcx
lea rax, [0x00852960]
mov qword [rsp + 0x10], rax
call fcn.00410fe0
mov rax, qword [rsp + 0x18]
mov qword [rsp + 0xb8], rax
mov rbp, qword [rsp + 0x90]
add rsp, 0x98
ret
mov ecx, 0x10
jmp 0x4100ad
mov edx, dword [0x00850ab0]
test edx, edx
je 0x410996
mov rdx, qword gs:[0x28]
mov rdx, qword [rdx]
mov rbx, qword [rdx + 0x30]
mov rbx, qword [rbx + 0x90]
test rbx, rbx
je 0x41098e
mov rdx, qword [rbx + 0x170]
sub rdx, rax
mov qword [rbx + 0x170], rdx
test rdx, rdx
jl 0x410976
mov rax, qword gs:[0x28]
mov rax, qword [rax]
mov rdx, qword [rax + 0x30]
inc dword [rdx + 0xd0]
mov rdx, qword [rax + 0x30]
test byte [rax], al
mov eax, dword [rdx + 0xb8]
test eax, eax
jne 0x4109f3
mov rax, qword [rdx + 0x50]
mov rsi, qword gs:[0x28]
mov rsi, qword [rsi]
cmp rax, rsi
je 0x4109d8
mov dword [rdx + 0xb8], 1
mov rax, qword gs:[0x28]
mov rax, qword [rax]
mov rax, qword [rax + 0x30]
mov rsi, qword [rsp + 0xa0]
mov rax, qword [rax + 0x130]
mov rdi, qword [rsp + 0xa8]
test rdi, rdi
je 0x41096b
movzx r8d, byte [rdi + 0x17]
test r8b, 0x80
setne r8b
mov qword [rsp + 0x50], rdx
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x60], rax
mov byte [rsp + 0x2f], r8b
mov qword [rsp + 0x68], rbx
cmp rsi, 0x8000
ja 0x4108ad
test r8b, r8b
je 0x4106c8
cmp rsi, 0x10
jae 0x4106c8
mov r9, qword [rax + 0x18]
test rsi, 7
jne 0x41069c
add r9, 7
and r9, 0xfffffffffffffff8
lea r10, [r9 + rsi]
cmp r10, 0x10
ja 0x410297
mov r11, qword [rax + 0x10]
test r11, r11
je 0x410297
lea rcx, [r9 + r11]
mov qword [rax + 0x18], r10
inc qword [rax + 0x20]
mov dword [rdx + 0xb8], 0
mov rax, qword gs:[0x28]
mov rax, qword [rax]
mov ebx, dword [rdx + 0xd0]
lea esi, [rbx - 1]
mov dword [rdx + 0xd0], esi
cmp ebx, 1
jne 0x41027f
movzx edx, byte [rax + 0xc0]
test dl, dl
je 0x41027f
mov qword [rax + 0x10], 0xfffffffffffffade
mov qword [rsp + 0xb8], rcx
mov rbp, qword [rsp + 0x90]
add rsp, 0x98
ret
mov r9, qword [rax + 0x50]
mov r10, qword [r9 + 0x40]
bsf r11, r10
mov r12d, 0x40
cmove r11, r12
cmp r11, 0x40
jge 0x410695
mov r12, qword [r9 + 0x30]
lea r13, [r12 + r11]
mov r14, qword [r9 + 0x38]
cmp r13, r14
jae 0x410695
lea r12, [r12 + r11 + 1]
test r12, 0x3f
jne 0x41065e
cmp r12, r14
je 0x41065e
xor ecx, ecx
test rcx, rcx
je 0x41061e
xor r9d, r9d
xorps xmm0, xmm0
movups xmmword [rcx], xmm0
mov r10, qword [rsp + 0xa0]
mov r11, qword [rax + 0x18]
cmp r10, r11
jae 0x410609
mov r10, rcx
mov qword [rax + 0x10], rcx
mov rcx, qword [rsp + 0xa0]
mov qword [rax + 0x18], rcx
mov qword [rsp + 0xa0], 0x10
mov qword [rsp + 0x40], r10
mov byte [rsp + 0x2e], r9b
test r8b, r8b
je 0x410581
xor ecx, ecx
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x30], rcx
call fcn.00453fe0
mov eax, dword [0x00850ab8]
test eax, eax
jne 0x410557
mov rax, qword [rsp + 0x50]
mov dword [rax + 0xb8], 0
mov rcx, qword gs:[0x28]
mov rcx, qword [rcx]
mov edx, dword [rax + 0xd0]
lea ebx, [rdx - 1]
mov dword [rax + 0xd0], ebx
cmp edx, 1
jne 0x4103a7
movzx eax, byte [rcx + 0xc0]
test al, al
je 0x4103a7
mov qword [rcx + 0x10], 0xfffffffffffffade
mov eax, dword [0x00850ec0]
test eax, eax
jne 0x41052a
mov rax, qword [0x007f7250]
test rax, rax
jle 0x4103e5
mov rcx, qword [rsp + 0xa0]
cmp rcx, rax
jae 0x41049e
mov rax, qword [rsp + 0x60]
mov edx, dword [rax]
cmp ecx, edx
jge 0x41049e
sub edx, ecx
mov dword [rax], edx
mov rax, qword [rsp + 0x68]
test rax, rax
je 0x410410
mov rcx, qword [rax + 0x170]
mov rdx, qword [rsp + 0xa0]
mov rbx, qword [rsp + 0x38]
sub rdx, rbx
sub rcx, rdx
mov qword [rax + 0x170], rcx
movzx eax, byte [rsp + 0x2e]
test al, al
je 0x410434
movzx eax, byte [0x00853990]
test al, al
je 0x41042e
mov eax, dword [0x00850ad0]
test eax, eax
je 0x41047a
xor eax, eax
test al, al
jne 0x410451
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0xb8], rax
mov rbp, qword [rsp + 0x90]
add rsp, 0x98
ret
mov qword [rsp], 0
mov qword [rsp + 8], 1
mov qword [rsp + 0x10], 0
mov dword [rsp + 0x18], 0
call fcn.00417e10
jmp 0x410434
mov eax, dword [0x00850ab8]
test eax, eax
je 0x410488
xor eax, eax
jmp 0x410430
mov rcx, qword [0x00854000]
mov rdx, qword [0x00853ff8]
cmp rcx, rdx
setae al
jmp 0x410430
mov rax, qword gs:[0x28]
mov rax, qword [rax]
mov rcx, qword [rax + 0x30]
inc dword [rcx + 0xd0]
mov rax, qword [rax + 0x30]
mov qword [rsp + 0x58], rax
mov qword [rsp], rax
mov rcx, qword [rsp + 0x40]
mov qword [rsp + 8], rcx
mov rdx, qword [rsp + 0xa0]
mov qword [rsp + 0x10], rdx
call fcn.00410d90
mov rax, qword gs:[0x28]
mov rax, qword [rax]
mov rcx, qword [rsp + 0x58]
mov edx, dword [rcx + 0xd0]
lea ebx, [rdx - 1]
mov dword [rcx + 0xd0], ebx
cmp edx, 1
jne 0x4103e5
movzx ecx, byte [rax + 0xc0]
test cl, cl
je 0x4103e5
mov qword [rax + 0x10], 0xfffffffffffffade
jmp 0x4103e5
mov rax, qword [rsp + 0x40]
mov qword [rsp], rax
mov rcx, qword [rsp + 0xa0]
mov qword [rsp + 8], rcx
mov rcx, qword [rsp + 0xa8]
mov qword [rsp + 0x10], rcx
call fcn.004251c0
jmp 0x4103b5
mov rax, qword [rsp + 0x40]
mov qword [rsp], rax
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 8], rax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x10], rax
call fcn.0041e400
jmp 0x410361
mov rcx, qword [0x00833b68]
cmp rcx, rdi
jne 0x410604
mov ecx, 0x30
mov qword [rsp + 0x38], rcx
mov qword [rsp], r10
mov rdx, qword [rsp + 0xa0]
mov qword [rsp + 8], rdx
mov qword [rsp + 0x10], rcx
mov qword [rsp + 0x18], rdi
call fcn.00413150
mov rax, qword [rsp + 0xa8]
mov rcx, qword [rax]
mov rdx, qword [rsp + 0x38]
cmp rdx, rcx
jbe 0x4105fb
mov rbx, qword [rax + 8]
test rbx, rbx
je 0x4105f4
mov rsi, rdx
sub rdx, rcx
lea rcx, [rdx + rbx]
mov rdx, qword [rsp + 0x60]
mov rbx, qword [rdx + 8]
add rbx, rcx
mov qword [rdx + 8], rbx
jmp 0x410344
mov rsi, rdx
xor ecx, ecx
jmp 0x4105df
mov rcx, qword [rax + 8]
mov rsi, rdx
jmp 0x4105df
mov rcx, rsi
jmp 0x410592
mov r10, qword [rax + 0x10]
test r10, r10
je 0x410310
mov r10, rcx
jmp 0x410323
mov qword [rsp], rax
mov byte [rsp + 8], 5
call fcn.0040fdd0
mov rcx, qword [rsp + 0x10]
movzx r9d, byte [rsp + 0x20]
mov rax, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x38]
mov rdi, qword [rsp + 0xa8]
movzx r8d, byte [rsp + 0x2f]
jmp 0x4102f5
lea rcx, [r11 + 1]
shr r10, cl
cmp rcx, 0x40
sbb r11, r11
and r10, r11
mov qword [r9 + 0x40], r10
mov qword [r9 + 0x30], r12
movzx r10d, word [r9 + 0x60]
inc r10d
mov word [r9 + 0x60], r10w
mov rcx, qword [r9 + 0x68]
imul rcx, r13
add rcx, qword [r9 + 0x18]
jmp 0x4102e9
xor ecx, ecx
jmp 0x4102e9
test rsi, 3
jne 0x4106b2
add r9, 3
and r9, 0xfffffffffffffffc
jmp 0x41021f
bt esi, 0
jb 0x41021f
inc r9
and r9, 0xfffffffffffffffe
jmp 0x41021f
cmp rsi, 0x3f8
ja 0x410884
lea r9, [rsi + 7]
shr r9, 3
cmp r9, 0x81
jae 0x4109d1
lea r10, [0x007fada0]
movzx r9d, byte [r10 + r9]
movzx r10d, r9b
cmp r10, 0x43
jae 0x4109c3
lea r11, [0x007faf80]
movzx r10d, word [r11 + r10*2]
mov qword [rsp + 0xa0], r10
test byte [rax], al
shl r9d, 1
movzx r10d, r8b
or r9d, r10d
movzx r10d, r9b
cmp r10, 0x86
jae 0x4109bc
mov r10, qword [rax + r10*8 + 0x28]
mov r11, qword [r10 + 0x40]
bsf r12, r11
mov r13d, 0x40
cmove r12, r13
cmp r12, 0x40
jge 0x41087d
mov r13, qword [r10 + 0x30]
lea r14, [r13 + r12]
mov r15, qword [r10 + 0x38]
cmp r14, r15
jae 0x41087d
lea r13, [r13 + r12 + 1]
test r13, 0x3f
jne 0x410845
cmp r13, r15
je 0x410845
xor ecx, ecx
test rcx, rcx
je 0x410800
xor r9d, r9d
movzx r11d, byte [rsp + 0xb0]
test r11b, r11b
je 0x4107a9
movzx r10d, byte [r10 + 0x65]
test r10b, r10b
jne 0x4107b1
mov r10, rcx
jmp 0x41032f
mov qword [rsp + 0x40], rcx
mov byte [rsp + 0x2e], r9b
mov qword [rsp], rcx
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 8], rax
call fcn.00455980
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x38]
mov rdi, qword [rsp + 0xa8]
movzx r8d, byte [rsp + 0x2f]
movzx r9d, byte [rsp + 0x2e]
jmp 0x4107a9
mov qword [rsp], rax
mov byte [rsp + 8], r9b
call fcn.0040fdd0
mov rcx, qword [rsp + 0x10]
mov r10, qword [rsp + 0x18]
movzx r9d, byte [rsp + 0x20]
mov rax, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x38]
mov rdi, qword [rsp + 0xa8]
movzx r8d, byte [rsp + 0x2f]
jmp 0x410791
lea rcx, [r12 + 1]
shr r11, cl
cmp rcx, 0x40
sbb r12, r12
and r11, r12
mov qword [r10 + 0x40], r11
mov qword [r10 + 0x30], r13
movzx r11d, word [r10 + 0x60]
inc r11d
mov word [r10 + 0x60], r11w
mov rcx, qword [r10 + 0x68]
imul rcx, r14
add rcx, qword [r10 + 0x18]
jmp 0x410789
xor ecx, ecx
jmp 0x410789
lea r9, [rsi - 0x381]
shr r9, 7
cmp r9, 0xf9
jae 0x4109ca
lea r10, [0x007fbf20]
movzx r9d, byte [r9 + r10]
jmp 0x4106f6
mov qword [rsp + 0x48], 0
xorps xmm0, xmm0
movups xmmword [rsp + 0x70], xmm0
movups xmmword [rsp + 0x80], xmm0
lea rax, [0x0044fb30]
mov qword [rsp + 0x70], rax
lea rax, [rsp + 0xa0]
mov qword [rsp + 0x78], rax
movzx eax, byte [rsp + 0xb0]
mov byte [rsp + 0x80], al
mov byte [rsp + 0x81], r8b
lea rax, [rsp + 0x48]
mov qword [rsp + 0x88], rax
lea rax, [rsp + 0x70]
mov qword [rsp], rax
call fcn.004527f0
mov rax, qword [rsp + 0x48]
mov qword [rax + 0x30], 1
mov rax, qword [rsp + 0x48]
mov word [rax + 0x60], 1
mov rax, qword [rsp + 0x48]
mov r10, qword [rax + 0x18]
mov rax, qword [rax + 0x68]
mov qword [rsp + 0xa0], rax
mov rax, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x38]
mov rdi, qword [rsp + 0xa8]
movzx r8d, byte [rsp + 0x2f]
mov r9d, 1
jmp 0x41032f
mov r8d, 1
jmp 0x4101cd
mov qword [rsp + 0x68], rbx
mov qword [rsp], rbx
call fcn.0041b7c0
mov rbx, qword [rsp + 0x68]
jmp 0x410137
mov rbx, rdx
jmp 0x41011d
xor ebx, ebx
jmp 0x410137
lea rax, [0x00850ca8]
mov qword [rsp + 0xb8], rax
mov rbp, qword [rsp + 0x90]
add rsp, 0x98
ret
call fcn.00429b50
ud2
call fcn.00429b50
ud2
call fcn.00429b50
ud2
call fcn.00429b50
ud2
lea rax, [0x006afce0]
mov qword [rsp], rax
mov qword [rsp + 8], 0x14
call fcn.0042b3a0
ud2
lea rax, [0x006add5e]
mov qword [rsp], rax
mov qword [rsp + 8], 0xf
call fcn.0042b3a0
ud2
lea rax, [0x006b9114]
mov qword [rsp], rax
mov qword [rsp + 8], 0x32
call fcn.0042b3a0
ud2
call fcn.00452950
jmp fcn.00410030