Function at 0x1800514b0
Capabilities:
Check for software breakpoints

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x98
mov rbx, rcx
mov rax, qword [0x1800d3040]
xor rax, rsp
mov qword [rsp + 0x90], rax
mov word [rsp + 0x70], 0x15ff
mov dword [rsp + 0x72], 2
mov word [rsp + 0x76], 0x8eb
mov qword [rsp + 0x78], 0
mov word [rsp + 0x62], 0x25ff
mov dword [rsp + 0x64], 0
mov qword [rsp + 0x68], 0
mov qword [rsp + 0x52], 0x25ff0e70
mov qword [rsp + 0x5a], 0
mov qword [rcx + 0x20], 0
xor r12d, r12d
xor ecx, ecx
xor edx, edx
mov ebp, edx
mov r13d, ecx
movzx eax, dl
mov r15d, eax
add r15, qword [rbx]
mov r14, qword [rbx + 0x10]
mov rcx, r15
lea rdx, [rsp + 0x2d]
call fcn.18004ffb0
test byte [rsp + 0x4f], 0x10
jne 0x1800518ff
movzx r8d, r13b
mov edx, r8d
cmp bpl, 5
jb 0x180051580
mov qword [rsp + 0x68], r15
mov r9d, 0xe
lea rsi, [rsp + 0x62]
mov al, 1
jmp 0x180051630
mov r9d, eax
movzx ecx, byte [rsp + 0x3a]
and cl, 0xc7
cmp cl, 5
jne 0x1800515f0
mov eax, eax
mov ecx, eax
lea r11, [rsp + 0x80]
mov rdi, r11
mov rsi, r15
rep movsb byte [rdi], byte [rsi]
movzx eax, byte [rsp + 0x2d]
add rax, rsp
add rax, 0x80
mov ecx, dword [rsp + 0x4e]
shr ecx, 2
and ecx, 0xf
sub rax, rcx
mov ecx, r14d
mov r10d, edx
add ecx, edx
mov r10d, r15d
sub r10d, ecx
add r10d, dword [rsp + 0x4a]
mov dword [rax - 4], r10d
movzx eax, byte [rsp + 0x38]
movzx ecx, byte [rsp + 0x3c]
not al
xor cl, 4
or cl, al
sete al
mov rsi, r11
jmp 0x180051630
movzx eax, byte [rsp + 0x38]
cmp eax, 0xe8
jne 0x18005169e
movzx eax, byte [rsp + 0x2d]
movsxd rcx, dword [rsp + 0x42]
add rcx, rax
add rcx, r15
mov qword [rsp + 0x78], rcx
mov r9d, 0x10
lea rsi, [rsp + 0x70]
xor eax, eax
nop word cs:[rax + rax]
mov r10, r12
cmp r15, r10
jae 0x180051646
movzx ecx, byte [rsp + 0x2d]
cmp r9d, ecx
jne 0x1800518ff
mov r15d, r8d
add r15d, r9d
cmp r15d, 0x32
ja 0x1800518ff
mov ecx, dword [rbx + 0x24]
cmp rcx, 7
ja 0x1800518ff
mov r8d, ecx
mov byte [rbx + rcx + 0x28], bpl
mov byte [rbx + rcx + 0x30], r13b
inc ecx
mov dword [rbx + 0x24], ecx
mov rdi, qword [rbx + 0x10]
add rdi, rdx
mov r9d, r9d
mov ecx, r9d
rep movsb byte [rdi], byte [rsi]
mov ecx, r15d
add bpl, byte [rsp + 0x2d]
mov r12, r10
mov edx, ebp
test al, al
je 0x180051530
jmp 0x1800517e8
mov ecx, eax
and ecx, 0xfffffffd
cmp ecx, 0xe9
jne 0x1800516fa
movzx ecx, byte [rsp + 0x2d]
add rcx, r15
cmp eax, 0xeb
movsx rax, byte [rsp + 0x42]
movsxd r10, dword [rsp + 0x42]
cmove r10, rax
mov rax, r10
add rax, rcx
mov rcx, qword [rbx]
cmp rax, rcx
jb 0x180051772
add rcx, 5
cmp rax, rcx
jae 0x180051772
mov rsi, r15
cmp r12, rax
mov r10, rax
cmova r10, r12
xor eax, eax
jmp 0x180051633
mov ecx, eax
and ecx, 0xfffffff0
cmp ecx, 0x70
sete r10b
mov ecx, eax
and ecx, 0xfffffffc
cmp ecx, 0xe0
sete cl
or cl, r10b
jne 0x18005172d
movzx r10d, byte [rsp + 0x39]
and r10b, 0xf0
cmp r10b, 0x80
jne 0x1800517cb
movzx r10d, byte [rsp + 0x2d]
add r10, r15
movsx r11, byte [rsp + 0x42]
movsxd rsi, dword [rsp + 0x42]
test cl, cl
mov rcx, rsi
cmovne rcx, r11
add rcx, r10
mov r10, qword [rbx]
cmp rcx, r10
jb 0x18005178d
add r10, 5
cmp rcx, r10
jae 0x18005178d
mov rsi, r15
cmp r12, rcx
cmova rcx, r12
xor eax, eax
mov r10, rcx
jmp 0x180051633
mov qword [rsp + 0x68], rax
cmp r15, r12
setae al
mov r9d, 0xe
lea rsi, [rsp + 0x62]
jmp 0x180051630
mov r9d, eax
and r9b, 0xfc
cmp r9b, 0xe0
je 0x1800518ff
cmp eax, 0xf
movzx r9d, byte [rsp + 0x39]
cmovne r9d, eax
mov eax, r9d
and al, 0xf
xor al, 0x71
mov byte [rsp + 0x52], al
mov qword [rsp + 0x5a], rcx
mov r9d, 0x10
lea rsi, [rsp + 0x52]
jmp 0x180051620
mov rsi, r15
and eax, 0xfffffffe
cmp eax, 0xc2
sete al
cmp r15, r12
setae cl
and cl, al
mov eax, ecx
jmp 0x180051630
cmp bpl, 4
ja 0x180051836
movzx eax, bpl
mov edx, eax
mov rcx, qword [rbx]
movzx eax, byte [rcx + rdx]
test eax, eax
je 0x18005180d
cmp eax, 0xcc
je 0x18005180d
cmp eax, 0x90
jne 0x18005186e
cmp bpl, 4
je 0x180051836
mov r8d, eax
mov r9, rdx
nop dword [rax]
cmp byte [rcx + r9 + 1], r8b
jne 0x18005186e
mov r10, r9
inc r10
mov r9, r10
cmp r10, 4
jne 0x180051820
mov rax, qword [rbx + 8]
mov qword [rsp + 0x68], rax
mov rax, qword [rbx + 0x10]
mov r15d, r15d
mov ecx, r15d
lea rdx, [rax + rcx]
mov qword [rbx + 0x18], rdx
mov rdx, qword [rsp + 0x62]
mov r8, qword [rsp + 0x68]
mov qword [rax + rcx + 6], r8
mov qword [rax + rcx], rdx
mov esi, 1
jmp 0x180051901
cmp bpl, 1
ja 0x1800518b2
test eax, eax
je 0x180051886
cmp eax, 0xcc
je 0x180051886
cmp eax, 0x90
jne 0x1800518ff
test bpl, bpl
jne 0x1800518b2
add rdx, rcx
mov r8b, 2
sub r8b, bpl
movzx r8d, r8b
mov r9d, 1
cmp byte [rdx + r9], al
jne 0x1800518ff
mov r10, r9
inc r10
mov r9, r10
cmp r8, r10
jne 0x18005189e
add rcx, 0xfffffffffffffffb
call fcn.18004ff50
test eax, eax
je 0x1800518ff
mov rax, qword [rbx]
movzx ecx, byte [rax - 5]
test ecx, ecx
je 0x1800518da
cmp ecx, 0xcc
je 0x1800518da
cmp ecx, 0x90
jne 0x1800518ff
cmp byte [rax - 4], cl
jne 0x1800518ff
cmp byte [rax - 3], cl
jne 0x1800518ff
cmp byte [rax - 2], cl
jne 0x1800518ff
mov esi, 0
cmp byte [rax - 1], cl
jne 0x180051901
mov dword [rbx + 0x20], 1
jmp 0x180051836
xor esi, esi
mov rcx, qword [rsp + 0x90]
xor rcx, rsp
call fcn.18007d5f0
mov eax, esi
add rsp, 0x98
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret