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

Disassembly:
mov rcx, qword gs:[0x28]
mov rcx, qword [rcx]
cmp rsp, qword [rcx + 0x10]
jbe 0x504f42
sub rsp, 0x60
mov qword [rsp + 0x58], rbp
lea rbp, [rsp + 0x58]
mov rax, qword [rsp + 0x70]
mov rcx, qword [rax + 0x20]
mov rdx, qword [rsp + 0x78]
mov qword [rsp], rdx
call rcx
movzx eax, byte [rsp + 8]
test al, al
je 0x504ef9
mov rax, qword [rsp + 0x68]
mov rcx, qword [rax]
movzx ecx, byte [rcx + 0x54]
mov byte [rsp + 0x3f], cl
cmp cl, 0xff
je 0x504ee7
test cl, 4
je 0x504eda
mov rdx, qword [rsp + 0x80]
test rdx, rdx
jne 0x504ec8
mov rbx, qword [rax + 0x20]
mov qword [rsp + 0x40], rbx
mov qword [rsp], rbx
mov rsi, qword [rsp + 0x88]
mov qword [rsp + 8], rsi
mov rdi, qword [rsp + 0x90]
mov qword [rsp + 0x10], rdi
call fcn.00503f10
mov rax, qword [rsp + 0x68]
mov rcx, qword [rax + 0xb8]
mov rdx, qword [rsp + 0x90]
cmp rdx, rcx
ja 0x504ec1
mov qword [rax + 0xb0], rdx
xor ecx, ecx
cmp rcx, rdx
jge 0x504cda
mov rbx, qword [rax + 0xb0]
mov rsi, qword [rax + 0xa8]
cmp rcx, rbx
jae 0x504eba
mov qword [rsi + rcx*8], 0xffffffffffffffff
inc rcx
cmp rcx, rdx
jl 0x504cb3
movzx ecx, byte [rsp + 0x3f]
test cl, 4
je 0x504d54
mov rcx, qword [rsp + 0x40]
mov rdx, qword [rcx + 0x18]
mov rbx, qword [rcx + 0x10]
test rdx, rdx
jle 0x504d4a
mov rdx, qword [rsp + 0x80]
mov qword [rbx], rdx
mov rbx, qword [rax + 8]
mov rbx, qword [rbx + 0x18]
mov dword [rsp + 0x20], ebx
mov qword [rsp], rax
mov qword [rsp + 8], rcx
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x10], rax
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x18], rax
mov qword [rsp + 0x28], rdx
call fcn.00504350
movzx eax, byte [rsp + 0x30]
mov byte [rsp + 0x98], al
mov rbp, qword [rsp + 0x58]
add rsp, 0x60
ret
mov rdx, qword [rsp + 0x80]
jmp 0x504d01
mov rcx, qword [rsp + 0x80]
mov rdx, 0xffffffffffffffff
mov qword [rsp + 0x80], rcx
mov rbx, qword [rsp + 0x88]
cmp rcx, rbx
jg 0x504e3e
test rdx, rdx
je 0x504e3e
mov rdx, qword [rax]
mov rsi, qword [rdx + 0x28]
test rsi, rsi
jg 0x504e62
mov qword [rsp + 0x80], rcx
mov rdx, qword [rsp + 0x40]
mov rsi, qword [rdx + 0x18]
mov rdi, qword [rdx + 0x10]
test rsi, rsi
jle 0x504db2
mov qword [rdi], rcx
mov rsi, qword [rax + 8]
mov rsi, qword [rsi + 0x18]
mov dword [rsp + 0x20], esi
mov qword [rsp], rax
mov qword [rsp + 8], rdx
mov rsi, qword [rsp + 0x70]
mov qword [rsp + 0x10], rsi
mov rdi, qword [rsp + 0x78]
mov qword [rsp + 0x18], rdi
mov qword [rsp + 0x28], rcx
call fcn.00504350
movzx eax, byte [rsp + 0x30]
test al, al
jne 0x504e50
mov rax, qword [rsp + 0x70]
mov rcx, qword [rax + 0x40]
mov rdx, qword [rsp + 0x80]
mov qword [rsp + 8], rdx
mov rbx, qword [rsp + 0x78]
mov qword [rsp], rbx
call rcx
mov rdx, qword [rsp + 0x18]
mov rax, qword [rsp + 0x80]
lea rcx, [rdx + rax]
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x80], rcx
mov rbx, qword [rsp + 0x88]
cmp rcx, rbx
jle 0x504d7c
mov byte [rsp + 0x98], 0
mov rbp, qword [rsp + 0x58]
add rsp, 0x60
ret
mov byte [rsp + 0x98], 1
mov rbp, qword [rsp + 0x58]
add rsp, 0x60
ret
mov rsi, qword [rsp + 0x70]
mov rdi, qword [rsi + 0x38]
mov qword [rsp + 8], rdx
mov qword [rsp + 0x10], rcx
mov rdx, qword [rsp + 0x78]
mov qword [rsp], rdx
call rdi
mov rax, qword [rsp + 0x18]
test rax, rax
jl 0x504ea8
mov rdx, qword [rsp + 0x80]
lea rcx, [rdx + rax]
mov rax, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x88]
jmp 0x504d95
mov byte [rsp + 0x98], 0
mov rbp, qword [rsp + 0x58]
add rsp, 0x60
ret
call fcn.004293e0
ud2
call fcn.00429450
ud2
mov byte [rsp + 0x98], 0
mov rbp, qword [rsp + 0x58]
add rsp, 0x60
ret
mov rdx, qword [rsp + 0x80]
jmp 0x504c5c
mov byte [rsp + 0x98], 0
mov rbp, qword [rsp + 0x58]
add rsp, 0x60
ret
lea rax, [0x006d8f2e]
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x50], 0x21
lea rax, [0x0066fb00]
mov qword [rsp], rax
lea rax, [rsp + 0x48]
mov qword [rsp + 8], rax
call fcn.0040ccd0
mov rax, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
mov qword [rsp], rax
mov qword [rsp + 8], rcx
call fcn.0042a540
ud2
call fcn.00452210
jmp fcn.00504be0