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

Disassembly:
mov rcx, qword gs:[0x28]
mov rcx, qword [rcx]
cmp rsp, qword [rcx + 0x10]
jbe 0x45ccfb
sub rsp, 0x40
mov qword [rsp + 0x38], rbp
lea rbp, [rsp + 0x38]
xor eax, eax
mov rcx, qword [rsp + 0x48]
mov edx, 1
lock cmpxchg dword [rcx], edx
sete dl
test dl, dl
jne 0x45ccf1
lea rdx, [rsp + 8]
mov qword [rsp + 0x30], rdx
mov ebx, dword [rcx]
xor eax, eax
xor esi, esi
mov edi, esi
xor r8d, r8d
jmp 0x45ca6d
mov rax, r10
mov qword [rsp + 0x20], r8
mov byte [rsp + 0x12], dil
mov byte [rsp + 0x11], sil
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x18], ebx
mov r9d, ebx
and ebx, 5
cmp ebx, 1
je 0x45cc4d
bt r9d, 2
jb 0x45cc45
mov ebx, r9d
or r9d, 1
test ebx, 5
je 0x45cab2
add r9d, 8
test sil, sil
je 0x45cac1
bt ebx, 0
jae 0x45cac1
or r9d, 4
test dil, dil
je 0x45cad5
bt r9d, 1
jae 0x45cbfb
and r9d, 0xfffffffd
mov r10, rax
mov eax, ebx
lock cmpxchg dword [rcx], r9d
sete r9b
test r9b, r9b
jne 0x45caef
mov ebx, dword [rcx]
jmp 0x45ca6a
test ebx, 5
je 0x45cba5
test r8, r8
je 0x45cbde
mov rax, r8
mov qword [rsp + 0x20], r8
lea rbx, [rcx + 4]
mov qword [rsp], rbx
test rax, rax
setne byte [rdx]
call fcn.0043be70
movzx eax, byte [rsp + 0x11]
test al, al
je 0x45cbbf
mov eax, 1
mov rcx, qword [rsp + 0x48]
mov edx, dword [rcx]
bt edx, 2
jb 0x45cb59
mov ebx, edx
xor r10d, r10d
mov esi, eax
mov edi, 1
mov r8, qword [rsp + 0x20]
mov rdx, qword [rsp + 0x30]
jmp 0x45ca6a
mov byte [rsp + 0x13], al
mov dword [rsp + 0x14], edx
test edx, 3
je 0x45cbb6
lea rax, [0x006b3db3]
mov qword [rsp], rax
mov qword [rsp + 8], 0x1e
call fcn.0042b350
movzx eax, byte [rsp + 0x13]
test al, al
je 0x45cb97
mov eax, dword [rsp + 0x14]
sar eax, 3
cmp eax, 1
jne 0x45cbaf
mov eax, 0xfffffff5
mov rcx, qword [rsp + 0x48]
lock xadd dword [rcx], eax
mov rbp, qword [rsp + 0x38]
add rsp, 0x40
ret
mov eax, 0xfffffff9
jmp 0x45cb9c
sar edx, 3
test edx, edx
je 0x45cb69
jmp 0x45cb82
call fcn.0043d7b0
mov rax, qword [rsp]
mov rcx, qword [rsp + 0x20]
sub rax, rcx
cmp rax, 0xf4240
setg al
jmp 0x45cb31
call fcn.0043d7b0
mov r8, qword [rsp]
mov rax, qword [rsp + 0x20]
mov rcx, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x30]
jmp 0x45cb07
mov dword [rsp + 0x1c], r9d
lea rax, [0x006b3db3]
mov qword [rsp], rax
mov qword [rsp + 8], 0x1e
call fcn.0042b350
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x30]
mov ebx, dword [rsp + 0x18]
movzx esi, byte [rsp + 0x11]
movzx edi, byte [rsp + 0x12]
mov r8, qword [rsp + 0x20]
mov r9d, dword [rsp + 0x1c]
jmp 0x45cad1
mov ebx, r9d
jmp 0x45caa6
mov qword [rsp], rax
call fcn.00438770
movzx eax, byte [rsp + 8]
test al, al
jne 0x45cc87
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x30]
movzx esi, byte [rsp + 0x11]
movzx edi, byte [rsp + 0x12]
mov r8, qword [rsp + 0x20]
mov r9d, dword [rsp + 0x18]
jmp 0x45ca94
movzx ecx, byte [rsp + 0x12]
test cl, cl
je 0x45ccc2
mov byte [rsp + 0x12], cl
call fcn.00438810
mov rax, qword [rsp + 0x28]
lea r10, [rax + 1]
mov rcx, qword [rsp + 0x48]
mov ebx, dword [rcx]
mov rdx, qword [rsp + 0x30]
movzx esi, byte [rsp + 0x11]
movzx edi, byte [rsp + 0x12]
mov r8, qword [rsp + 0x20]
jmp 0x45ca6a
mov eax, dword [rsp + 0x18]
bt eax, 1
jb 0x45cc90
mov edx, eax
sar eax, 3
test eax, eax
je 0x45cc90
mov eax, edx
or edx, 2
mov rbx, qword [rsp + 0x48]
lock cmpxchg dword [rbx], edx
sete dl
test dl, dl
je 0x45cc90
mov ecx, 1
jmp 0x45cc90
mov rbp, qword [rsp + 0x38]
add rsp, 0x40
ret
call fcn.00452950
jmp fcn.0045ca10