Function at 0x180017150
Capabilities:
Check for software breakpoints

Disassembly:
push r12
push r14
sub rsp, 0x18
mov r9d, dword [rcx + 0x20]
xor r12d, r12d
mov r14, qword [rcx + 0x18]
xor r10d, r10d
mov qword [rsp + 0x30], rbx
mov r11, rcx
mov rcx, r14
test r9d, r9d
jle 0x180017342
mov qword [rsp + 0x38], rbp
lea r8, [rdx + 0xc]
mov qword [rsp + 0x10], rdi
mov ebp, r9d
mov qword [rsp + 8], r13
mov rdi, r14
mov qword [rsp], r15
lea r13, [0x180000000]
mov qword [rsp + 0x40], rsi
lea r15d, [r9]
mov r9d, ebp
mov rcx, rdi
cmp r10d, 0xf
jae 0x18001732a
movzx ebx, byte [rdi]
mov esi, ebx
lea eax, [rbx - 0x26]
cmp eax, 0xcd
ja case.0x1800171df.49
cdqe
movzx eax, byte [rax + r13 + 0x174f8]
mov ecx, dword [r13 + rax*4 + 0x174c8]
add rcx, r13
jmp rcx
or dword [rdx], 0x2000
mov ecx, r10d
movzx eax, word [rdx + 0x14]
or word [r8], ax
mov eax, 1
shl ax, cl
lea r8, [rdx + 0xc]
mov word [rdx + 0x14], ax
jmp 0x180017308
or dword [rdx], 0x10
movzx eax, word [rdx + 0x10]
mov ecx, r10d
or word [r8], ax
mov eax, 1
shl ax, cl
lea r8, [rdx + 0xc]
mov word [rdx + 0x10], ax
jmp 0x180017308
or dword [rdx], 0x20
jmp 0x18001720a
or dword [rdx], 0x40
jmp 0x18001720a
and dword [rdx], 0xffffe0ff
or dword [rdx], 0x80
movzx eax, word [rdx + 0x12]
mov ecx, r10d
or word [r8], ax
mov eax, 1
shl ax, cl
lea r8, [rdx + 0xc]
mov word [rdx + 0x12], ax
jmp 0x180017308
and dword [rdx], 0xffffe17f
or dword [rdx], 0x100
jmp 0x180017240
and dword [rdx], 0xffffe27f
or dword [rdx], 0x200
jmp 0x180017240
and dword [rdx], 0xffffe47f
or dword [rdx], 0x400
jmp 0x180017240
and dword [rdx], 0xffffe87f
or dword [rdx], 0x800
jmp 0x180017240
and dword [rdx], 0xfffff07f
or dword [rdx], 0x1000
jmp 0x180017240
or dword [rdx], 0x4000
mov ecx, r10d
movzx eax, word [rdx + 0x16]
or word [r8], ax
mov eax, 1
shl ax, cl
lea r8, [rdx + 0xc]
mov word [rdx + 0x16], ax
jmp 0x180017308
cmp dword [r11 + 0x24], 2
mov rcx, rdi
jne 0x18001732a
and bl, 0xf0
cmp bl, 0x40
jne 0x18001732a
or dword [rdx], 0x2000000
and esi, 0xf
mov dword [rdx + 0x24], esi
mov ecx, r10d
mov dword [rdx + 0x18], 1
mov r12, rdi
movzx eax, word [rdx + 0xe]
or word [r8], ax
mov eax, 1
shl ax, cl
mov word [rdx + 0xe], ax
lea r9d, [r15 - 1]
inc r10d
mov dword [r11 + 0x20], r9d
lea rcx, [rdi + 1]
mov qword [r11 + 0x18], rcx
mov rdi, rcx
mov ebp, r9d
test r9d, r9d
jg 0x1800171a3
mov rsi, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x10]
mov r13, qword [rsp + 8]
mov rbp, qword [rsp + 0x38]
mov r15, qword [rsp]
mov r10d, r9d
mov r8, rcx
cmp r9d, 2
jl 0x1800173b0
cmp byte [rcx], 0xc5
jne 0x1800173b0
mov rax, rcx
sub rax, r14
cmp rax, 0xd
jg 0x1800173b0
mov ebx, dword [r11 + 0x24]
cmp ebx, 2
je 0x18001736e
cmp byte [rcx + 1], 0xc0
jb 0x1800173b0
movzx r8d, byte [rcx + 1]
lea rax, [rcx + 1]
or dword [rdx], 0x20000000
mov qword [rdx + 0x28], rax
mov dword [rdx + 0x18], 2
test r8b, r8b
js 0x180017396
cmp ebx, 2
jne 0x180017396
or dword [rdx + 0x24], 4
test r8b, 4
je 0x1800173a0
or dword [rdx + 0x24], 0x10
lea r8, [rcx + 2]
lea r10d, [r9 - 2]
mov qword [r11 + 0x18], r8
mov dword [r11 + 0x20], r10d
mov rcx, r8
cmp r10d, 3
jl 0x180017452
cmp byte [r8], 0xc4
jne 0x180017452
mov rax, r8
sub rax, r14
cmp rax, 0xc
jg 0x180017452
mov r9d, dword [rdx]
bt r9d, 0x1d
jb 0x180017452
mov ebx, dword [r11 + 0x24]
cmp ebx, 2
je 0x1800173f1
cmp byte [r8 + 1], 0xc0
jb 0x180017452
movzx ecx, byte [r8 + 1]
lea rax, [r8 + 1]
not ecx
mov qword [rdx + 0x28], rax
sar ecx, 5
bts r9d, 0x1d
and ecx, 7
mov dword [rdx], r9d
or ecx, dword [rdx + 0x24]
movzx r9d, byte [rax + 1]
mov dword [rdx + 0x18], 3
mov dword [rdx + 0x24], ecx
test r9b, 4
je 0x18001742c
or ecx, 0x10
mov dword [rdx + 0x24], ecx
test r9b, r9b
jns 0x180017437
or ecx, 8
mov dword [rdx + 0x24], ecx
cmp ebx, 2
je 0x180017442
and ecx, 0xfffffff0
mov dword [rdx + 0x24], ecx
lea rcx, [r8 + 3]
lea eax, [r10 - 3]
mov qword [r11 + 0x18], rcx
mov dword [r11 + 0x20], eax
cmp dword [r11 + 0x24], 2
mov rbx, qword [rsp + 0x30]
jne 0x1800174b4
mov r10d, dword [rdx]
movzx r9d, cl
mov r8d, r10d
bt r10d, 0x19
jae 0x180017495
lea rax, [rcx - 1]
cmp r12, rax
je 0x180017495
btr r8d, 0x19
cmp dword [rdx + 0x18], 1
mov dword [rdx], r8d
jne 0x18001748d
mov dword [rdx + 0x18], 0
movzx eax, word [rdx + 0xe]
or word [rdx + 0xc], ax
movzx ecx, r9b
test r8d, 0x780
je 0x1800174b4
and r8d, 0xfffff87f
mov dword [rdx], r8d
movzx eax, word [rdx + 0x12]
or word [rdx + 0xc], ax
sub cl, r14b
movzx eax, cl
mov dword [rdx + 8], eax
add rsp, 0x18
pop r14
pop r12
ret