Function at 0x180017980
Capabilities:
Check for software breakpoints

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xe8
mov r11, rdx
mov r12, r8
mov edx, dword [rsp + 0x158]
mov r10, r9
mov r8, rcx
lea eax, [rdx + 0xcc]
mov dword [rsp + 0x60], eax
cmp edx, eax
jae case.0x180017a79.12
mov eax, dword [rsp + 0x158]
lea rcx, [0x180000000]
movzx ebp, word [rsp + 0x158]
xor ebx, ebx
mov esi, dword [rsp + 0x158]
mov r13d, dword [rsp + 0x158]
mov r9d, dword [rsp + 0x158]
mov r14, qword [rsp + 0xa8]
lea rdi, [rbx - 1]
mov r15d, dword [rsp + 0x68]
mov qword [rsp + 0xc0], rax
mov eax, dword [rsp + 0x158]
mov dword [rsp + 0x44], ebp
mov qword [rsp + 0x98], rsi
mov qword [rsp + 0x78], rax
mov qword [rsp + 0xb0], r13
mov qword [rsp + 0xa0], r9
nop dword [rax]
cmp edx, 0x107
ja 0x180018064
je 0x18001803a
lea eax, [rdx - 6]
cmp eax, 0xcd
ja case.default.0x180017a79
movzx eax, byte [rcx + rax + 0x18248]
mov ecx, dword [rcx + rax*4 + 0x18214]
lea rax, [0x180000000]
add rcx, rax
jmp rcx
movzx eax, byte [r12 + 2]
movzx ecx, byte [r12 + 3]
shl rcx, 8
or rcx, rax
movzx eax, byte [r12 + 1]
shl rcx, 8
or rcx, rax
movzx eax, byte [r12]
shl rcx, 8
or rcx, rax
mov qword [rsp + 0xd8], rcx
jmp case.0x180017a79.18
mov rax, qword [r8]
movabs rcx, 0xc2b2ae3d27d4eb4f
imul rax, rcx
movabs rcx, 0x9e3779b185ebca87
add rax, qword [r12]
rol rax, 0x1f
imul rax, rcx
mov qword [r12], rax
mov qword [rsp + 0x48], rax
jmp case.0x180017a79.18
mov rcx, qword [rsp + 0x70]
lea rdx, [rsp + 0x58]
mov r12, qword [rsp + 0x90]
add r12, 0x48
mov qword [rsp + 0x20], r12
mov eax, dword [rcx + 8]
mov r9, qword [rcx]
mov r8, qword [rcx + 0x10]
mov ecx, 0xe3
mov dword [rsp + 0x58], eax
call fcn.180090700
mov qword [rsp + 0x98], rax
mov rsi, rax
test eax, eax
jne 0x180018105
mov rax, qword [rsp + 0x70]
xor r9d, r9d
mov qword [rsp + 0x30], rbx
xor r8d, r8d
mov dword [rsp + 0x28], 0x2b
xor edx, edx
xor ecx, ecx
mov qword [rsp + 0x20], r12
mov ebp, dword [rax + 0x10]
call fcn.1800dacd0
mov r12, qword [rsp + 0x140]
lea rcx, [rsp + 0x58]
mov qword [rsp + 0x28], r12
lea r8, [rsp + 0x80]
mov qword [rsp + 0x20], rcx
xor r9d, r9d
mov rcx, rax
mov dword [rsp + 0x80], ebx
mov edx, 0xe5
mov dword [rsp + 0x58], ebp
call fcn.180062a00
mov ebp, dword [rsp + 0x44]
jmp 0x18001810d
mov rax, qword [rsp + 0x90]
mov rbp, qword [rax]
test rbp, rbp
je 0x180017c15
mov rdi, qword [rsp + 0x130]
test byte [rbp + 0xd8], 1
jne 0x180017bfe
mov eax, dword [rdi + 8]
lea r8, [rbp + 0x48]
mov dword [rsp + 0x88], eax
xor r9d, r9d
mov rax, qword [rdi]
xor edx, edx
mov qword [rsp + 0x30], rax
xor ecx, ecx
lea rax, [rsp + 0x88]
mov dword [rsp + 0x28], 0x11d
mov qword [rsp + 0x20], rax
call fcn.180018b10
mov qword [rsp + 0x70], rax
cmp rax, 0
jne 0x180017c07
mov rbp, qword [rbp]
test rbp, rbp
jne 0x180017bb3
mov r8, qword [rsp + 0x130]
xor ebx, ebx
lea rdi, [rbx - 1]
cmp qword [rsp + 0x70], 0
mov edx, 0x47
je 0x180018154
mov ebp, dword [rsp + 0x44]
jmp case.0x180017a79.18
mov rcx, qword [r12 + 0xf0]
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x90], rcx
mov rax, qword [rcx]
test rax, rax
je case.0x180017a79.18
test byte [rcx + 0xd8], 1
je case.0x180017a79.18
mov rcx, rax
mov qword [rsp + 0x90], rax
mov rax, qword [rax]
test rax, rax
jne 0x180017c50
jmp case.0x180017a79.18
mov rsi, qword [rsp + 0x150]
mov r8d, ebx
mov r15d, dword [rsp + 0x40]
mov r13, qword [rsp + 0x78]
mov r14, qword [rsp + 0xc0]
nop dword [rax]
nop word [rax + rax]
mov eax, r8d
mov ecx, dword [rsi + rax*4]
lea rdx, [rsi + rax*4]
add rax, rax
test ecx, ecx
jne 0x180017cb8
mov word [rax + r12], bx
jmp 0x180017ceb
cmp ecx, r14d
ja 0x180017ccc
mov word [r12 + rax], di
inc r15d
mov eax, dword [rdx]
sub qword [r11], rax
jmp 0x180017ceb
cmp ecx, r13d
ja 0x180017ce6
mov r9d, 1
inc r15d
mov word [r12 + rax], r9w
mov eax, dword [rdx]
sub qword [r11], rax
jmp 0x180017cf1
mov word [r12 + rax], bp
mov r9d, 1
inc r8d
cmp r8d, dword [r10]
jbe 0x180017ca0
mov r8, qword [rsp + 0x130]
mov eax, r9d
mov rsi, qword [rsp + 0x98]
mov r14, qword [rsp + 0xa8]
mov r13, qword [rsp + 0xb0]
mov ecx, dword [r8]
mov dword [rsp + 0x40], r15d
mov r15d, dword [rsp + 0x68]
shl eax, cl
sub eax, dword [rsp + 0x40]
mov dword [rsp + 0x54], eax
jmp 0x180018115
mov qword [rsp + 0x48], rbx
jmp case.0x180017a79.18
mov r8, qword [r11]
xor edx, edx
mov ebp, dword [rsp + 0x54]
mov rax, r8
mov ecx, dword [rsp + 0x78]
div rbp
cmp rax, rcx
jbe 0x180017de3
mov rdi, qword [rsp + 0x150]
lea ecx, [rbp*2]
lea rax, [r8 + r8*2]
xor edx, edx
mov r8d, dword [rsp + 0x44]
div rcx
mov ecx, ebx
mov ebx, dword [rsp + 0x40]
mov rsi, rax
mov qword [rsp + 0x78], rax
nop dword [rax]
mov edx, ecx
mov ebp, 1
cmp word [r12 + rdx*2], r8w
jne 0x180017db0
cmp dword [rdi + rdx*4], esi
ja 0x180017db0
mov word [r12 + rdx*2], bp
inc ebx
mov eax, dword [rdi + rdx*4]
sub qword [r11], rax
mov eax, dword [r10]
inc ecx
cmp ecx, eax
jbe 0x180017d90
mov rcx, qword [rsp + 0x130]
mov rsi, qword [rsp + 0x98]
mov dword [rsp + 0x40], ebx
xor ebx, ebx
mov ecx, dword [rcx]
shl ebp, cl
mov ecx, dword [rsp + 0x40]
lea rdi, [rbx - 1]
sub ebp, ecx
mov dword [rsp + 0x54], ebp
jmp 0x180017dea
mov eax, dword [r10]
mov ecx, dword [rsp + 0x40]
inc eax
cmp ecx, eax
jne 0x180017e9a
mov r11d, 0x7f
nop word [rax + rax]
mov eax, r11d
sub eax, 0x7f
je 0x180017e76
sub eax, 1
je 0x180017e2d
sub eax, 1
je 0x180017e1d
cmp eax, 1
je case.0x180017a79.12
jmp 0x180017e7a
mov eax, dword [rsp + 0x50]
mov qword [rsp + 0x48], rbx
add word [r12 + rax*2], bp
jmp 0x180017e7a
mov r10d, dword [r10]
mov edx, ebx
mov r9, qword [rsp + 0x150]
mov r8d, ebx
mov edi, dword [rsp + 0x50]
mov ecx, dword [r9]
lea r9, [r9 + 4]
cmp ecx, edx
mov eax, r8d
cmovbe eax, edi
inc r8d
cmp ecx, edx
mov edi, eax
cmovbe ecx, edx
mov edx, ecx
cmp r8d, r10d
jbe 0x180017e41
mov r10, qword [rsp + 0x148]
mov rdi, 0xffffffffffffffff
mov dword [rsp + 0x50], eax
jmp 0x180017e7a
mov dword [rsp + 0x50], ebx
inc r11d
cmp r11d, 0x83
jb 0x180017e00
mov r9, qword [rsp + 0xa0]
mov r11, qword [rsp + 0x138]
cmp qword [r11], 0
je 0x180018161
mov ebp, 0xa3
nop dword [rax]
mov eax, ebp
sub eax, 0xa2
je 0x180017f13
cmp eax, 1
jne 0x180017ff0
mov rcx, qword [rsp + 0x130]
mov eax, 0x3e
mov r8d, 1
sub eax, dword [rcx]
mov edx, eax
mov qword [rsp + 0xd0], rdx
lea ecx, [rax + 0xff]
mov eax, dword [rsp + 0x54]
shl r8, cl
mov ecx, edx
dec r8
shl rax, cl
add rax, r8
mov qword [rsp + 0xb8], r8
xor edx, edx
div qword [r11]
mov qword [rsp + 0xc8], rax
jmp 0x180017ff0
mov eax, dword [rsp + 0x44]
mov r11d, ebx
nop word [rax + rax]
mov r10d, r11d
cmp word [r12 + r10*2], ax
jne 0x180017fd4
mov edx, 0x27
mov eax, edx
sub eax, 0x24
je 0x180017fbd
sub eax, 1
je 0x180017fb6
sub eax, 1
je 0x180017f9d
cmp eax, 1
jne 0x180017fc5
mov rcx, qword [rsp + 0xd0]
mov rax, qword [rsp + 0x150]
mov r13, qword [rsp + 0xb8]
shr r13, cl
mov qword [rsp + 0xb0], r13
mov r14d, dword [rax + r10*4]
imul r14, qword [rsp + 0xc8]
add r14, qword [rsp + 0xb8]
mov r9, r14
mov qword [rsp + 0xa8], r14
shr r9, cl
mov qword [rsp + 0xa0], r9
jmp 0x180017fc5
mov r15d, r9d
sub r15d, r13d
mov dword [rsp + 0x68], r15d
cmp r15d, 1
jae 0x180017fc5
mov rax, rdi
jmp 0x1800181fd
mov word [r12 + r10*2], r15w
jmp 0x180017fc5
mov qword [rsp + 0xb8], r14
dec edx
cmp edx, 0x23
ja 0x180017f33
mov eax, dword [rsp + 0x44]
mov r10, qword [rsp + 0x148]
inc r11d
cmp r11d, dword [r10]
jbe 0x180017f20
mov r11, qword [rsp + 0x138]
dec ebp
cmp ebp, 0xa1
ja 0x180017eb0
mov ebp, dword [rsp + 0x44]
jmp 0x18001810d
mov rax, qword [r11]
mov ebp, 0xfffffffe
mov ecx, dword [r8]
mov r9, rax
shr r9, cl
inc ecx
mov dword [rsp + 0x44], ebp
lea rax, [rax + rax*2]
mov dword [rsp + 0x40], ebx
shr rax, cl
mov dword [rsp + 0x78], eax
mov qword [rsp + 0xc0], r9
jmp case.0x180017a79.18
mov rax, qword [r12]
lea rdx, [rsp + 0x80]
mov r8d, 0x11b
mov qword [rsp + 0x80], rax
xor ecx, ecx
call fcn.18000fe60
mov dword [rsp + 0x48], eax
jmp 0x18001810d
mov eax, edx
sub eax, 0x109
je 0x180018084
sub eax, 0xa
je case.0x180017a79.12
cmp eax, 2
je case.0x180017a79.12
jmp case.default.0x180017a79
mov edx, dword [r12 + 0x18]
mov eax, ebx
mov r9d, dword [r12 + 4]
mov r11d, 0x11
cmp dword [r12], r11d
mov r10d, 0x11
mov ecx, ebx
cmovb r11d, dword [r12]
cmp dword [r8], r10d
cmovb r10d, dword [r8]
cmp dword [r8 + 0x10], 3
mov r8d, ebx
setne cl
cmp dword [r12 + 0x10], 3
sete al
xor ecx, eax
mov rax, qword [rsp + 0x130]
cmp edx, dword [rax + 0x18]
mov eax, dword [rax + 8]
cmove r8d, ecx
cmp dword [r12 + 8], eax
mov rax, qword [rsp + 0x130]
mov ecx, ebx
sete cl
and r8d, ecx
mov ecx, ebx
cmp r9d, dword [rax + 4]
mov eax, ebx
cmove ecx, r8d
cmp r11d, r10d
sete al
and ecx, eax
mov dword [rsp + 0x48], ecx
jmp 0x18001810d
mov r12, qword [rsp + 0x140]
mov r8, qword [rsp + 0x130]
mov edx, dword [rsp + 0x158]
lea rcx, [0x180000000]
add edx, 0xc
mov dword [rsp + 0x158], edx
cmp edx, dword [rsp + 0x60]
jae case.0x180017a79.12
mov r9, qword [rsp + 0xa0]
mov r10, qword [rsp + 0x148]
mov r11, qword [rsp + 0x138]
jmp 0x180017a40
mov dword [rsp + 0x48], 0xfffffffa
jmp case.0x180017a79.12
mov edx, ebx
test ebp, ebp
je 0x180018198
nop word [rax + rax]
mov eax, edx
lea rcx, [r12 + rax*2]
movzx eax, word [r12 + rax*2]
test ax, ax
jle 0x180018188
dec ebp
inc ax
mov word [rcx], ax
mov ecx, dword [r10]
lea eax, [rdx + 1]
inc ecx
xor edx, edx
div ecx
test ebp, ebp
jne 0x180018170
mov rax, rbx
jmp 0x1800181fd
mov rax, qword [rsp + 0x150]
lea rcx, [rsp + 0x158]
mov rdx, qword [rsp + 0x130]
lea r8, [rsp + 0x60]
mov qword [rsp + 0x30], rcx
xor r9d, r9d
mov dword [rsp + 0x28], StrCmpNICW
mov rcx, r12
mov eax, dword [rax]
mov dword [rsp + 0x158], eax
mov rax, qword [rsp + 0xd8]
dec rax
mov dword [rsp + 0x60], ebx
add rax, r12
mov qword [rsp + 0x20], rax
call fcn.18005e480
jmp 0x1800181fd
mov dword [rsp + 0x48], esi
mov rax, qword [rsp + 0x48]
add rsp, 0xe8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret