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

Disassembly:
lea r12, [rsp - 0x88]
cmp r12, qword [r14 + 0x10]
jbe 0x4462c6
push rbp
mov rbp, rsp
sub rsp, 0x100
mov rcx, qword [r14 + 0x30]
mov qword [rsp + 0xb8], rcx
mov rax, qword [rcx + 0xa0]
mov dl, byte [0x01bb3888]
test dl, dl
je 0x445649
call fcn.004453a0
mov rcx, qword [rsp + 0xb8]
jmp 0x445629
mov qword [rsp + 0xf8], rax
test byte [rax], al
cmp dword [rax + 0x2278], 0
je 0x44566d
nop dword [rax]
call fcn.00443960
mov rax, qword [rsp + 0xf8]
xor ebx, ebx
call fcn.00447180
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x58], rax
cmp byte [0x01bbb6a8], 0
jne 0x445690
cmp byte [0x01bbb6a9], 0
je 0x4456a8
call fcn.0045f1e0
test rax, rax
jne 0x445f44
mov rax, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x50]
cmp dword [0x01c095a8], 0
je 0x4456d9
mov rbx, qword [rsp + 0xf8]
mov rcx, rax
lea rax, [0x01c0b000]
call fcn.00425940
test rax, rax
jne 0x445f34
mov rax, rbx
mov rbx, qword [rsp + 0x50]
mov qword [rsp + 0x58], rax
mov rdx, qword [rsp + 0xf8]
mov esi, dword [rdx + 0x10]
imul esi, esi, 0xc10c9715
cmp esi, 0x4325c53
ja 0x44575e
cmp dword [0x01bb3818], 0
nop
jle 0x44575e
nop
nop
lea rax, [0x01bb37b8]
call fcn.0040f080
mov rax, qword [rsp + 0xf8]
mov ebx, 1
nop dword [rax]
call fcn.0044cc40
mov qword [rsp + 0xe0], rax
nop
nop
lea rax, [0x01bb37b8]
call fcn.0040f2a0
mov rax, qword [rsp + 0xe0]
test rax, rax
jne 0x445f27
mov rax, qword [rsp + 0x58]
mov rdx, qword [rsp + 0xf8]
mov rbx, qword [rsp + 0x50]
mov esi, dword [0x01c095a0]
and esi, 0xc
cmp esi, 0xc
jne 0x4457c5
mov rcx, rax
mov eax, 0xd
lea rsi, [0x01c095a0]
mov edi, 1
lock cmpxchg dword [rsi], edi
sete sil
test sil, sil
je 0x445796
mov rsi, qword [0x01bad270]
jmp 0x445798
xor esi, esi
test rsi, rsi
je 0x4457cd
mov rax, rsi
xor ebx, ebx
mov ecx, 1
call fcn.00441940
mov rcx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0xf8]
mov rbx, qword [rsp + 0x50]
mov edi, 1
jmp 0x4457cd
mov rcx, rax
mov edi, 1
mov rsi, qword [0x01b83930]
mov rsi, qword [rsi]
test rsi, rsi
je 0x445817
mov qword [rsp], rsi
mov qword [rsp + 8], 0
call fcn.004720a0
xorps xmm15, xmm15
mov r14, qword [0x01c099d0]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov rcx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0xf8]
mov rbx, qword [rsp + 0x50]
mov edi, 1
mov rax, qword [rdx + 0x998]
nop
test rax, rax
je 0x445842
mov qword [rsp + 0x60], rax
xor esi, esi
lock cmpxchg qword [rdx + 0x998], rsi
sete r8b
mov rax, qword [rsp + 0x60]
nop
jmp 0x445845
xor r8d, r8d
test r8b, r8b
je 0x445f82
nop
mov esi, 1
jmp 0x445861
mov rax, rsi
xor esi, esi
jmp 0x445861
xor eax, eax
xor esi, esi
test rax, rax
jne 0x44603f
cmp dword [0x01bb3818], 0
je 0x4458d2
nop
nop
lea rax, [0x01bb37b8]
nop dword [rax]
call fcn.0040f080
mov rax, qword [rsp + 0xf8]
xor ebx, ebx
call fcn.0044cc40
mov qword [rsp + 0xd8], rax
nop
nop
lea rax, [0x01bb37b8]
call fcn.0040f2a0
mov rax, qword [rsp + 0xd8]
test rax, rax
jne 0x446032
mov rcx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0xf8]
mov rbx, qword [rsp + 0x50]
mov edi, 1
mov esi, dword [0x01c095b4]
test esi, esi
je 0x4458fa
mov esi, dword [0x01c095b8]
test esi, esi
jbe 0x4458f6
mov rsi, qword [0x01bb37a8]
test rsi, rsi
setne sil
jmp 0x445900
xor esi, esi
jmp 0x445900
xor esi, esi
nop dword [rax]
test sil, sil
je 0x445931
xor eax, eax
call fcn.00437d20
mov qword [rsp + 0x70], rax
test rax, rax
jne 0x445fc7
mov rcx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0xf8]
mov rbx, qword [rsp + 0x50]
mov edi, 1
mov rsi, qword [rsp + 0xb8]
cmp byte [rsi + 0xe4], 0
je 0x44594a
mov r8d, 1
jmp 0x44596c
mov r8d, dword [0x01bb37fc]
shl r8d, 1
mov r9d, dword [0x01bb37f8]
mov r10d, dword [0x01c095e4]
sub r10d, r9d
cmp r8d, r10d
setl r8b
test r8b, r8b
je 0x445a02
cmp byte [rsi + 0xe4], 0
jne 0x4459a7
nop
mov byte [rsi + 0xe4], 1
nop
mov r8d, 1
lea r9, [0x01bb37fc]
lock xadd dword [r9], r8d
nop
xor r8d, r8d
lea r9, [0x01bb3800]
xchg dword [r9], r8d
mov rax, rcx
call fcn.004463c0
test rax, rax
jne 0x445fbc
test sil, sil
je 0x4459ca
mov rcx, qword [rsp + 0xb8]
jmp 0x445629
test rdi, rdi
je 0x4459e2
mov rdx, qword [rsp + 0x50]
test rdx, rdx
je 0x4459ea
cmp rdi, rdx
jl 0x4459ea
nop
jmp 0x4459e7
mov rdx, qword [rsp + 0x50]
mov rdi, rdx
mov rdx, qword [rsp + 0xf8]
mov rsi, qword [rsp + 0xb8]
mov rbx, rdi
mov edi, 1
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x58], rcx
cmp dword [0x01c095a8], 0
je 0x445aa6
mov r8, qword [rdx + 0x1240]
test r8, r8
je 0x445a42
cmp qword [r8 + 0x10], 0
jne 0x445a3a
mov r8, qword [rdx + 0x1248]
cmp qword [r8 + 0x10], 0
je 0x445a42
mov eax, 1
nop
jmp 0x445a6e
mov r8, qword [0x01bb3160]
test r8, r8
jne 0x445a69
mov r8d, dword [0x01bb3228]
cmp dword [0x01bb322c], r8d
jbe 0x445a65
mov eax, 1
jmp 0x445a6e
xor eax, eax
jmp 0x445a6e
mov eax, 1
test al, al
jne 0x445a76
xor eax, eax
jmp 0x445aa8
lea rax, [0x01c0b000]
nop dword [rax]
call fcn.00426320
mov rcx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0xf8]
mov rbx, qword [rsp + 0x50]
mov rsi, qword [rsp + 0xb8]
mov edi, 1
jmp 0x445aa8
xor eax, eax
test al, al
je 0x445ab2
nop
jmp 0x44621f
mov rcx, qword [0x01bafac0]
mov qword [rsp + 0xf0], rcx
mov rdx, qword [0x01bafac8]
mov qword [rsp + 0x88], rdx
mov rbx, qword [0x01bafad0]
mov qword [rsp + 0x90], rbx
mov rsi, qword [0x01bafae0]
mov qword [rsp + 0xc0], rsi
mov rdi, qword [0x01bafae8]
mov qword [rsp + 0x78], rdi
mov r8, qword [0x01bafaf0]
mov qword [rsp + 0x80], r8
mov r9, qword [0x01bafb00]
mov qword [rsp + 0xa0], r9
mov r10, qword [0x01bafb08]
mov qword [rsp + 0x40], r10
mov r11, qword [0x01bafb10]
mov qword [rsp + 0x48], r11
nop
nop
lea rax, [0x01bb37b8]
call fcn.0040f080
mov cl, byte [0x01bb3888]
test cl, cl
jne 0x445b59
mov rax, qword [rsp + 0xf8]
cmp dword [rax + 0x2278], 0
je 0x445b74
nop
nop
lea rax, [0x01bb37b8]
call fcn.0040f2a0
mov rcx, qword [rsp + 0xb8]
jmp 0x445629
cmp dword [0x01bb3818], 0
nop dword [rax + rax]
jne 0x4461a9
mov rcx, qword [rsp + 0xb8]
cmp byte [rcx + 0xe4], 0
je 0x445b9b
xor edx, edx
jmp 0x445ba7
mov edx, dword [0x01bb3800]
cmp edx, 1
sete dl
test dl, dl
je 0x445beb
nop
mov byte [rcx + 0xe4], 1
nop
mov edx, 1
lea rbx, [0x01bb37fc]
lock xadd dword [rbx], edx
nop
xor edx, edx
lea rbx, [0x01bb3800]
xchg dword [rbx], edx
nop
nop
lea rax, [0x01bb37b8]
call fcn.0040f2a0
mov rcx, qword [rsp + 0xb8]
jmp 0x445629
call fcn.0044b2e0
mov rcx, qword [rsp + 0xf8]
nop dword [rax + rax]
cmp rax, rcx
jne 0x44620e
mov rax, rcx
mov rbx, qword [rsp + 0x58]
call fcn.0044ce60
mov qword [rsp + 0x58], rax
nop
nop
lea rax, [0x01bb37b8]
call fcn.0040f2a0
mov rcx, qword [rsp + 0xb8]
movzx edx, byte [rcx + 0xe4]
mov byte [rsp + 0x3f], dl
nop dword [rax]
test dl, dl
je 0x445d34
mov byte [rcx + 0xe4], 0
mov r9d, 0xffffffff
lea r10, [0x01bb37fc]
lock xadd dword [r10], r9d
dec r9d
test r9d, r9d
jl 0x4461fd
mov rax, qword [rsp + 0xf0]
mov rbx, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x90]
mov rdi, qword [rsp + 0xc0]
mov rsi, qword [rsp + 0x78]
mov r8, qword [rsp + 0x80]
call fcn.00446780
nop
test rax, rax
je 0x445cdc
call fcn.0044b140
nop
mov rcx, qword [rsp + 0xb8]
mov byte [rcx + 0xe4], 1
nop
mov edx, 1
lea rbx, [0x01bb37fc]
lock xadd dword [rbx], edx
nop
xor edx, edx
lea rbx, [0x01bb3800]
xchg dword [rbx], edx
jmp 0x445629
nop dword [rax]
call fcn.00446960
test rax, rax
jne 0x44604c
mov rax, qword [rsp + 0xf0]
mov rbx, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x90]
mov rdi, qword [rsp + 0xa0]
mov rsi, qword [rsp + 0x40]
mov r8, qword [rsp + 0x48]
mov r9, qword [rsp + 0x50]
nop dword [rax]
call fcn.004468c0
mov rcx, qword [rsp + 0xb8]
movzx edx, byte [rsp + 0x3f]
jmp 0x445d39
mov rax, qword [rsp + 0x50]
mov esi, dword [0x01c095b4]
nop
test esi, esi
je 0x445d6c
mov esi, dword [0x01c095b8]
test esi, esi
ja 0x445d53
test rax, rax
je 0x445d68
xor esi, esi
lea rdi, [0x01bb37a8]
xchg qword [rdi], rsi
test rsi, rsi
setne sil
jmp 0x445d6e
xor esi, esi
jmp 0x445d6e
xor esi, esi
test sil, sil
je 0x446160
nop
lea rsi, [0x01bb37b0]
mov rdi, rax
xchg qword [rsi], rax
cmp qword [rcx + 0xa0], 0
jne 0x4461ec
cmp byte [rcx + 0xe4], 0
nop word [rax + rax]
jne 0x4461db
test rdi, rdi
je 0x445e0b
mov rbx, qword [rsp + 0x58]
test rbx, rbx
jne 0x445dfa
mov qword [rsp + 0x98], rdi
nop
nop
call fcn.00474160
xorps xmm15, xmm15
mov r14, qword [0x01c099d0]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov rax, qword [rsp]
mov rcx, qword [rsp + 0xb8]
movzx edx, byte [rsp + 0x3f]
lea rsi, [0x01bb37b0]
mov rdi, qword [rsp + 0x98]
mov rbx, rax
sub rdi, rbx
test rdi, rdi
mov ebx, 0
cmovl rdi, rbx
jmp 0x445e14
xor ebx, ebx
mov rdi, 0xffffffffffffffff
cmp qword [0x01c097f8], 0
cmovne rdi, rbx
mov rax, rdi
call fcn.00437d20
mov qword [rsp + 0x68], rax
nop
call fcn.00474160
xorps xmm15, xmm15
mov r14, qword [0x01c099d0]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov rcx, qword [rsp]
mov qword [rsp + 0x58], rcx
nop
xor edx, edx
lea rbx, [0x01bb37b0]
xchg qword [rbx], rdx
nop
lea rdx, [0x01bb37a8]
xchg qword [rdx], rcx
cmp qword [0x01c097f8], 0
je 0x445e8a
cmp qword [rsp + 0x68], 0
jne 0x445e8a
call fcn.004447e0
mov rcx, qword [rsp + 0xb8]
jmp 0x445629
nop
nop
lea rax, [0x01bb37b8]
call fcn.0040f080
mov rax, qword [rsp + 0x58]
nop dword [rax]
call fcn.0044d000
mov qword [rsp + 0xa8], rax
nop
nop
lea rax, [0x01bb37b8]
call fcn.0040f2a0
mov rax, qword [rsp + 0xa8]
test rax, rax
je 0x446152
call fcn.0044b140
mov rcx, qword [rsp + 0x68]
test rcx, rcx
jne 0x4460e9
movzx ecx, byte [rsp + 0x3f]
test cl, cl
je 0x445f1a
nop
mov rcx, qword [rsp + 0xb8]
mov byte [rcx + 0xe4], 1
nop
mov edx, 1
lea rsi, [0x01bb37fc]
lock xadd dword [rsi], edx
nop
xor edx, edx
lea rsi, [0x01bb3800]
xchg dword [rsi], edx
jmp 0x445629
mov rcx, qword [rsp + 0xb8]
jmp 0x445629
xor ebx, ebx
mov ecx, ebx
add rsp, 0x100
pop rbp
ret
xor ebx, ebx
mov ecx, 1
add rsp, 0x100
pop rbp
ret
mov qword [rsp + 0xe8], rax
mov ebx, 4
mov ecx, 1
call fcn.00442540
mov rax, qword [rsp + 0xe8]
xor ebx, ebx
call fcn.00461fc0
mov rax, qword [rsp + 0xe8]
xor ebx, ebx
mov ecx, 1
add rsp, 0x100
pop rbp
ret
mov eax, dword [rdx + 0x190]
mov esi, dword [rdx + 0x194]
cmp eax, esi
je 0x44585d
movzx esi, al
mov rsi, qword [rdx + rsi*8 + 0x198]
lea r8d, [rax + 1]
lock cmpxchg dword [rdx + 0x190], r8d
sete r8b
test r8b, r8b
je 0x445f82
jmp 0x445856
xor ecx, ecx
add rsp, 0x100
pop rbp
ret
mov qword [rsp + 0xf8], rax
nop
nop
test rax, rax
je 0x445fe2
mov rcx, qword [rax + 0xa0]
mov qword [rsp + 0x70], rcx
lea rax, [rsp + 0x70]
call fcn.00446c00
mov rax, qword [rsp + 0xf8]
mov ebx, 4
mov ecx, 1
nop
call fcn.00442540
cmp byte [0x01bbb6a8], 0
je 0x44601d
mov rax, qword [rsp + 0xf8]
xor ebx, ebx
call fcn.00461fc0
mov rax, qword [rsp + 0xf8]
xor ebx, ebx
mov ecx, ebx
add rsp, 0x100
pop rbp
ret
xor ebx, ebx
mov ecx, ebx
add rsp, 0x100
pop rbp
ret
mov ebx, esi
xor ecx, ecx
add rsp, 0x100
pop rbp
ret
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0xc8], rbx
nop dword [rax]
call fcn.0044b140
nop
mov rcx, qword [rsp + 0xb8]
mov byte [rcx + 0xe4], 1
nop
mov ecx, 1
lea rdx, [0x01bb37fc]
lock xadd dword [rdx], ecx
nop
xor ecx, ecx
lea rdx, [0x01bb3800]
xchg dword [rdx], ecx
mov rcx, qword [rsp + 0xb0]
mov qword [rcx + 0x1230], 3
mov rax, qword [rsp + 0xc8]
mov ebx, 4
mov ecx, 1
call fcn.00442540
cmp byte [0x01bbb6a8], 0
je 0x4460d4
mov rax, qword [rsp + 0xc8]
xor ebx, ebx
call fcn.00461fc0
mov rax, qword [rsp + 0xc8]
xor ebx, ebx
mov ecx, ebx
add rsp, 0x100
pop rbp
ret
mov qword [rsp + 0xf8], rcx
nop
nop
test rcx, rcx
je 0x446104
mov rdx, qword [rcx + 0xa0]
mov qword [rsp + 0x68], rdx
lea rax, [rsp + 0x68]
call fcn.00446c00
mov rax, qword [rsp + 0xf8]
mov ebx, 4
mov ecx, 1
call fcn.00442540
cmp byte [0x01bbb6a8], 0
je 0x44613d
mov rax, qword [rsp + 0xf8]
xor ebx, ebx
call fcn.00461fc0
mov rax, qword [rsp + 0xf8]
xor ebx, ebx
mov ecx, ebx
add rsp, 0x100
pop rbp
ret
lea rax, [rsp + 0x68]
call fcn.00446c00
jmp 0x446197
test rax, rax
je 0x446172
mov edx, dword [0x01c095b4]
test edx, edx
setne dl
jmp 0x446174
xor edx, edx
test dl, dl
je 0x446197
nop
mov rdx, qword [0x01bb37b0]
test rdx, rdx
je 0x44618a
cmp rdx, rax
jle 0x446197
call fcn.00437c20
mov rcx, qword [rsp + 0xb8]
call fcn.004447e0
mov rcx, qword [rsp + 0xb8]
jmp 0x445629
xor ebx, ebx
call fcn.0044cc40
mov qword [rsp + 0xd0], rax
nop
nop
lea rax, [0x01bb37b8]
call fcn.0040f2a0
mov rax, qword [rsp + 0xd0]
xor ebx, ebx
mov ecx, ebx
add rsp, 0x100
pop rbp
ret
lea rax, [0x0105e0bd]
mov ebx, 0x23
call fcn.0043dc80
lea rax, [0x0104e486]
mov ebx, 0x1c
call fcn.0043dc80
lea rax, [0x01059c3e]
mov ebx, 0x21
call fcn.0043dc80
lea rax, [0x01042783]
mov ebx, 0x15
call fcn.0043dc80
mov rax, qword [0x01c097d8]
test rax, rax
je 0x446252
mov r8, rax
sar r8, 0x13
shl r8, 3
nop
nop
mov r9, qword [r8]
lea r10, [0x01c097d8]
lock cmpxchg qword [r10], r9
sete r9b
test r9b, r9b
je 0x44621f
jmp 0x446260
lea r10, [0x01c097d8]
xor r8d, r8d
nop dword [rax]
test r8, r8
jne 0x446276
lea rax, [0x01c0b000]
call fcn.00426400
jmp 0x445ab2
mov qword [rdx + 0x1230], 3
mov rax, qword [r8 + 0x10]
mov qword [rsp + 0xf8], rax
mov ebx, 4
mov ecx, edi
call fcn.00442540
cmp byte [0x01bbb6a8], 0
je 0x4462b1
mov rax, qword [rsp + 0xf8]
xor ebx, ebx
call fcn.00461fc0
mov rax, qword [rsp + 0xf8]
xor ebx, ebx
mov ecx, ebx
add rsp, 0x100
pop rbp
ret
call fcn.004705e0
jmp fcn.00445600