Function at 0x18001a6c0
Capabilities:
Check for software breakpoints

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov dword [rsp + 8], ecx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x58]
sub rsp, 0x158
mov rsi, qword [rsp + 0x30]
lea eax, [rcx + 0x485]
mov dword [rsp + 0x40], eax
mov r10, r9
mov r9, rdx
mov edx, ecx
cmp ecx, eax
jae case.0x18001a77b.107
mov r14d, dword [rbp + 0xa0]
xor ecx, ecx
mov edi, dword [rbp + 0xa0]
mov r11d, 0x120
mov r15, qword [rbp + 8]
mov r13d, 0x800
mov ebx, dword [rbp + 0xa0]
mov r12, qword [rbp - 0x60]
mov qword [rbp - 0x68], r14
mov qword [rsp + 0x50], rdi
mov qword [rbp - 0x70], rsi
cmp edx, 0xf2
ja 0x18001a835
je 0x18001a815
lea eax, [rdx - 0x12]
cmp eax, 0xc4
ja case.default.0x18001a77b
lea r8, [0x180000000]
movzx eax, byte [r8 + rax + 0x1b23c]
mov ecx, dword [r8 + rax*4 + 0x1b224]
add rcx, r8
jmp rcx
mov r9d, 0x6b
mov qword [rbp + 0x28], 0
xor r8d, r8d
lea rdx, [rbp + 0x28]
mov rcx, r10
call fcn.18005b780
mov rsi, rax
mov qword [rbp - 0x70], rax
mov qword [rsp + 0x30], rax
mov r9, qword [rbp + 0xa8]
mov r11d, 0x120
mov edx, dword [rbp + 0xa0]
mov r10, qword [rbp + 0xb8]
jmp case.0x18001a77b.19
xor ecx, ecx
mov ebx, ecx
test r9, r9
jne case.default.0x18001a77b
mov qword [rsp + 0x20], rcx
mov rdx, r10
mov dword [rsp + 0x48], 0x10
mov r9d, 0xef
lea rcx, [rsp + 0x48]
xor r8d, r8d
call fcn.18004e9d0
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x30]
jmp 0x18001a865
xor r9d, r9d
xor edx, edx
xor ecx, ecx
mov r8d, 0x7fff
call qword [sym.imp.KERNEL32.dll_CreateSemaphoreW]
jmp 0x18001a79a
mov rax, qword [rbp + 0xc0]
cmp dword [rax], 0
jne case.default.0x18001a77b
lea r9, [rbp + 0x30]
mov qword [rbp + 0xa8], r9
jmp case.default.0x18001a77b
cmp edx, 0x1a4
ja 0x18001adc2
je 0x18001ad1e
mov eax, edx
sub eax, 0x121
je 0x18001aba0
sub eax, 0x2a
je 0x18001a879
cmp eax, 0x2f
jne case.default.0x18001a77b
mov rax, rsi
add rsp, 0x158
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov r13, r9
mov qword [rsp + 0x38], r9
mov qword [rsp + 0x20], rcx
mov r9, r10
mov ecx, 0x121
xor r8d, r8d
xor edx, edx
call fcn.18001a6c0
mov qword [rbp + 8], rax
mov r15, rax
test rax, rax
je 0x18001afc1
test byte [rax + 0x18], 1
je 0x18001af9c
mov r10, qword [rbp + 0xb8]
mov r11d, 0x120
movzx eax, word [r10 + 0x14]
cmp ax, r11w
jb 0x18001ab63
mov ecx, dword [r10]
cmp ecx, eax
je 0x18001af4d
cmp ecx, 1
je 0x18001af4d
movzx eax, word [r10 + 0x18]
mov edx, 0x4800
and ax, dx
mov edx, 0x800
cmp ax, dx
jne 0x18001a902
cmp ecx, 0x40
jge 0x18001af4d
mov eax, 0xcc
mov dword [rbp - 0x78], eax
nop word [rax + rax]
cmp eax, 0xcc
je 0x18001a933
cmp eax, 0x8118
jne 0x18001ab50
lea eax, [rdi + rbx]
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x30]
jmp 0x18001a865
mov ecx, dword [r10]
cmp ecx, 1
je 0x18001aa9f
mov rax, qword [rbp + 0xc0]
lea r9, [rbp - 0x20]
mov dword [rbp - 0x18], ecx
lea r8, [rbp - 0x18]
mov edx, 0x34
mov rcx, r13
mov eax, dword [rax]
mov dword [rbp - 0x20], eax
xor eax, eax
mov word [rsp + 0x58], ax
mov rax, qword [rbp + 0xb0]
mov eax, dword [rax]
mov dword [rbp - 0x28], eax
lea rax, [rbp - 0x28]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x58]
mov qword [rsp + 0x20], rax
call fcn.180031970
mov rbx, rax
mov rax, qword [rbp + 0xc0]
mov ecx, dword [rax]
test ecx, ecx
je 0x18001a9a4
movsxd rax, ebx
add r13, rax
mov qword [rsp + 0x38], r13
mov r10, qword [rbp + 0xb8]
mov eax, 0x120
cmp word [r10 + 0x14], ax
jbe 0x18001aa9f
mov eax, 0x4000
test word [r10 + 0x18], ax
je 0x18001aa96
mov r15, qword [rsp + 0x38]
mov r13d, 0xfc
mov rsi, qword [rbp + 0xc0]
mov r14, r10
mov r12, qword [rbp + 0xb0]
cmp r13d, 0xfc
je 0x18001aa0d
cmp r13d, 0xb22c
jne 0x18001aa58
cmp dword [rsi], 0
je 0x18001aa04
movsxd rax, edi
add r15, rax
add ebx, edi
add dword [r12], 4
jmp 0x18001aa58
mov eax, dword [rsi]
lea r9, [rbp - 8]
mov dword [rbp - 8], eax
lea r8, [rbp]
xor eax, eax
mov edx, 0x34
mov word [rsp + 0x60], ax
mov rcx, r15
mov eax, dword [r12]
mov dword [rbp - 0x10], eax
movzx eax, word [r14 + 0x14]
and eax, 0xfffffedf
mov dword [rbp], eax
lea rax, [rbp - 0x10]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
call fcn.180031970
mov rdi, rax
add r13d, 0xb130
cmp r13d, 0x16260
jbe 0x18001a9e7
mov rax, qword [rbp + 0xc0]
mov rsi, qword [rbp - 0x70]
mov r14, qword [rbp - 0x68]
mov r12, qword [rbp - 0x60]
mov ecx, dword [rax]
mov r10, qword [rbp + 0xb8]
mov qword [rsp + 0x38], r15
mov r15, qword [rbp + 8]
mov r13, qword [rsp + 0x38]
test ecx, ecx
je 0x18001aa9f
mov byte [r13 - 2], 0x77
mov eax, 0x800
test word [r10 + 0x18], ax
je 0x18001aaf9
mov eax, 0x103
cmp word [r15 + 0x14], ax
jne 0x18001aaf9
mov rax, qword [rbp + 0xc0]
lea rcx, [rsp + 0x50]
mov r9, r15
mov rdx, r13
mov eax, dword [rax]
mov dword [rbp - 0x80], eax
mov rax, qword [rbp + 0xb0]
mov eax, dword [rax]
add eax, 4
mov dword [rsp + 0x50], eax
lea rax, [rbp - 0x80]
mov qword [rsp + 0x28], rax
xor eax, eax
mov qword [rsp + 0x20], rax
lea r8d, [rax + 0x3a]
call fcn.1800509c0
jmp 0x18001ab31
mov rax, qword [rbp + 0xc0]
lea r8, [rbp - 0x58]
mov r9, r15
mov rdx, r13
mov ecx, StrCmpICA
mov eax, dword [rax]
mov dword [rbp + 0x10], eax
mov rax, qword [rbp + 0xb0]
mov eax, dword [rax]
add eax, 4
mov dword [rbp - 0x58], eax
lea rax, [rbp + 0x10]
mov qword [rsp + 0x20], rax
call fcn.18001a6c0
mov edi, eax
mov qword [rsp + 0x50], rdi
test eax, eax
js 0x18001af3d
mov eax, dword [rbp - 0x78]
mov r11d, 0x120
mov r10, qword [rbp + 0xb8]
add eax, 0x804c
mov dword [rbp - 0x78], eax
cmp eax, 0x10098
jbe 0x18001a910
mov edx, dword [rbp + 0xa0]
mov r9, qword [rbp + 0xa8]
mov r13d, 0x800
xor ecx, ecx
add edx, 0x59
mov dword [rbp + 0xa0], edx
cmp edx, dword [rsp + 0x40]
jae case.0x18001a77b.107
mov r8, qword [rbp + 0xb0]
jmp 0x18001a740
movzx eax, word [r10 + 0x18]
movzx ecx, ax
and cx, 2
je 0x18001abb5
cmp qword [r10 + 0x20], 0
jne 0x18001abce
test r13w, ax
jne 0x18001abce
cmp word [r10 + 0x14], r11w
jne 0x18001ad06
test al, 1
je 0x18001ad06
test cx, cx
je 0x18001abe8
mov rax, qword [r10 + 0x20]
test rax, rax
je 0x18001abe8
mov r10, rax
mov qword [rbp + 0xb8], rax
jmp 0x18001aba0
cmp word [r10 + 0x14], r11w
jb 0x18001aba0
mov r13d, 0x7c
mov eax, r13d
sub eax, 0x7c
je 0x18001ac5f
sub eax, 0x71
je 0x18001ac1d
sub eax, 0x71
je 0x18001ac15
cmp eax, 0x71
je case.0x18001a77b.107
jmp 0x18001acdd
mov rsi, r12
jmp 0x18001acdd
test r12, r12
jne 0x18001acdd
test byte [r10 + 0x18], 4
jne 0x18001acdd
xor eax, eax
mov dword [rbp + 0x18], 0xb
mov r9d, 0xef
mov qword [rsp + 0x20], rax
xor r8d, r8d
lea rcx, [rbp + 0x18]
mov rdx, r10
call fcn.18004e9d0
mov edx, dword [rbp + 0xa0]
jmp 0x18001acdd
lea r12, [r10 + 0x38]
mov qword [rbp - 0x60], r12
test r12, r12
je 0x18001accc
mov r15, qword [rbp + 0xb8]
mov edi, 0x1000
mov r14d, 0x800
nop
test word [r15 + 0x18], r14w
je 0x18001ac8f
test word [r12 + 0x18], di
jmp 0x18001ac95
test byte [r12 + 0x18], 1
jne 0x18001acbb
mov r9d, 0xad
mov dword [rbp + 0x20], 1
xor r8d, r8d
lea rdx, [rbp + 0x20]
mov rcx, r12
call fcn.1800596b0
mov r12, rax
test rax, rax
jne 0x18001ac80
mov rdi, qword [rsp + 0x50]
mov r14, qword [rbp - 0x68]
mov r15, qword [rbp + 8]
mov qword [rbp - 0x60], r12
mov edx, 0x121
mov r13d, 0x7c
mov dword [rbp + 0xa0], edx
mov r10, qword [rbp + 0xb8]
add r13d, 0x71
cmp r13d, 0x240
jb 0x18001abf5
mov r13d, 0x800
mov r11d, 0x120
jmp 0x18001aba0
mov r9, qword [rbp + 0xa8]
mov rsi, r10
mov qword [rbp - 0x70], r10
mov qword [rsp + 0x30], r10
jmp case.0x18001a77b.19
mov rax, qword [rbp + 0xc0]
lea r9, [rbp - 0x50]
mov r13, qword [rsp + 0x38]
mov ecx, 0x2000
mov edx, 0x34
mov eax, dword [rax]
mov dword [rbp - 0x50], eax
movzx eax, word [r10 + 0x18]
and ax, cx
mov rcx, r13
mov word [rsp + 0x68], ax
mov eax, dword [r8]
lea r8, [rbp - 0x48]
mov dword [rsp + 0x48], eax
mov eax, dword [r10]
mov dword [rbp - 0x48], eax
lea rax, [rsp + 0x48]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x68]
mov qword [rsp + 0x20], rax
call fcn.180031970
mov r10, qword [rbp + 0xb8]
add ebx, eax
mov edx, dword [rbp + 0xa0]
mov r14, rax
mov r9, qword [rbp + 0xa8]
mov r11d, 0x120
mov qword [rbp - 0x68], rax
mov rax, qword [rbp + 0xc0]
mov dword [rsp + 0x78], 4
cmp dword [rax], 0
je 0x18001ab70
movsxd rax, r14d
add r13, rax
mov qword [rsp + 0x38], r13
jmp 0x18001ab70
mov eax, edx
sub eax, 0x1fd
je 0x18001ae26
cmp eax, 0x59
jne case.default.0x18001a77b
test byte [r15 + 0x14], 0x20
je 0x18001b1d1
mov r13, qword [rsp + 0x48]
lea r12d, [rax + 0x18]
mov r14d, dword [rbp + 0xa0]
mov esi, dword [rbp + 0xa0]
mov rcx, qword [rsp + 0x38]
nop word [rax + rax]
mov eax, r12d
sub eax, 0x71
je 0x18001b1be
sub eax, 0x33
je 0x18001afd2
cmp eax, 0x33
jne 0x18001b19f
mov byte [rcx], 0
jmp 0x18001b19f
movzx eax, word [r15 + 0x14]
cmp ax, 5
je 0x18001b216
mov r13d, 0x4000
test word [r15 + 0x18], r13w
mov r13d, 0x800
je case.default.0x18001a77b
cmp ax, r11w
jae case.default.0x18001a77b
mov rsi, qword [rsp + 0x38]
mov r13d, 0x3f
mov rdi, qword [rbp + 0xc0]
mov r12d, dword [rsp + 0x78]
nop dword [rax]
cmp r13d, 0x3f
je 0x18001ae93
cmp r13d, 0xc4
jne 0x18001aee9
add dword [r8], 4
add ebx, r14d
cmp dword [rdi], 0
je 0x18001aee9
movsxd rax, r14d
add rsi, rax
jmp 0x18001aee9
mov eax, dword [rdi]
lea r9, [rbp - 0x38]
mov ecx, dword [r8]
mov edx, 0x34
mov dword [rbp - 0x38], eax
lea r8, [rbp - 0x30]
movzx eax, word [r15 + 0x18]
add ecx, r12d
and ax, 0x20
mov dword [rbp - 0x40], ecx
mov word [rsp + 0x70], ax
mov rcx, rsi
movzx eax, word [r15 + 0x14]
mov dword [rbp - 0x30], eax
lea rax, [rbp - 0x40]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x70]
mov qword [rsp + 0x20], rax
call fcn.180031970
mov r8, qword [rbp + 0xb0]
mov r14d, eax
add r13d, 0x85
cmp r13d, 0x149
jb 0x18001ae70
mov rdi, qword [rsp + 0x50]
mov r13d, 0x800
mov r12, qword [rbp - 0x60]
mov qword [rsp + 0x38], rsi
mov rsi, qword [rbp - 0x70]
mov qword [rbp - 0x68], r14
jmp 0x18001a7a6
xor eax, eax
lea rdx, [rsp + 0x48]
mov r8d, 0xe8
mov qword [rsp + 0x48], rax
mov rcx, r10
call fcn.180048e80
jmp 0x18001a865
sub edi, ebx
mov dword [rsp + 0x30], edi
mov rax, qword [rsp + 0x30]
jmp 0x18001a865
mov rax, qword [rbp + 0xc0]
lea r8, [rsp + 0x40]
mov rdx, qword [rbp + 0xa8]
mov r9, r15
mov ecx, StrCmpICA
mov eax, dword [rax]
mov dword [rbp + 0xa0], eax
mov rax, qword [rbp + 0xb0]
mov eax, dword [rax]
mov dword [rsp + 0x40], eax
lea rax, [rbp + 0xa0]
mov qword [rsp + 0x20], rax
call fcn.18001a6c0
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x30]
jmp 0x18001a865
mov rdx, qword [rbp + 0xb8]
xor eax, eax
test byte [rdx + 0x18], 4
jne 0x18001b08d
mov dword [rsp + 0x48], 6
mov qword [rsp + 0x20], rax
jmp 0x18001a7e2
mov rdx, qword [rbp + 0xb8]
mov qword [rsp + 0x20], rax
jmp 0x18001a7da
mov r12d, 0xa4
nop dword [rax + rax]
mov r15, r13
test r13, r13
je 0x18001b188
nop dword [rax]
mov rdi, r15
test r14d, r14d
je 0x18001b003
cmp qword [r15 + 0x20], 0
je 0x18001b188
cmp dword [r15], r11d
jne 0x18001b0a2
cmp word [r15 + 0x14], r11w
jne 0x18001b0a2
xor eax, eax
mov r9, r15
xor r8d, r8d
mov qword [rsp + 0x20], rax
xor edx, edx
mov ecx, 0x121
call fcn.18001a6c0
mov rdi, rax
test rax, rax
je 0x18001b03e
test byte [rax + 0x18], 1
jne 0x18001b09b
test byte [r15 + 0x18], 4
jne 0x18001b153
test byte [rax + 0x18], 4
jne 0x18001b153
mov eax, 0x101
cmp word [rdi + 0x14], ax
je 0x18001b153
xor eax, eax
mov dword [rbp + 0xa0], 6
mov r9d, 0xef
mov qword [rsp + 0x20], rax
xor r8d, r8d
lea rcx, [rbp + 0xa0]
mov rdx, r15
call fcn.18004e9d0
sub eax, ebx
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x30]
jmp 0x18001a865
mov r8, qword [rbp + 0xb0]
test esi, esi
je 0x18001b0ec
test byte [r15 + 0x18], 1
jne 0x18001b0b3
test byte [rdi + 0x18], 1
je 0x18001b0ec
mov rcx, qword [rbp + 0xc0]
add ebx, 5
mov eax, dword [r8]
add ebx, eax
cmp dword [rcx], 0
je 0x18001b0ec
mov rdx, qword [rsp + 0x38]
lea rcx, [rbp + 0xa0]
mov r8d, StrCmpICA
mov dword [rbp + 0xa0], eax
call fcn.18003c9f0
movsxd rcx, eax
add qword [rsp + 0x38], rcx
mov rax, qword [rbp + 0xc0]
lea r8, [rsp + 0x50]
mov ecx, dword [rsp + 0x78]
mov r9, rdi
mov rdi, qword [rsp + 0x38]
mov rdx, rdi
mov eax, dword [rax]
mov dword [rsp + 0x40], eax
mov rax, qword [rbp + 0xb0]
mov eax, dword [rax]
add ecx, eax
mov dword [rsp + 0x50], ecx
lea rax, [rsp + 0x40]
mov ecx, StrCmpICA
mov qword [rsp + 0x20], rax
call fcn.18001a6c0
test eax, eax
js 0x18001b08b
mov rcx, qword [rbp + 0xc0]
add esi, eax
add ebx, eax
cmp dword [rcx], 0
je 0x18001b153
movsxd rcx, eax
add rdi, rcx
mov qword [rsp + 0x38], rdi
mov r9d, 0xad
mov dword [rbp - 0x80], 1
xor r8d, r8d
lea rdx, [rbp - 0x80]
mov rcx, r15
call fcn.1800596b0
mov r8, qword [rbp + 0xb0]
mov r15, rax
mov r11d, 0x120
test rax, rax
jne 0x18001aff0
test r14d, r14d
je 0x18001b19a
mov r13, qword [r13 + 0x20]
test r13, r13
jne 0x18001afe0
mov rcx, qword [rsp + 0x38]
add r12d, 0x33
cmp r12d, 0x10a
jb 0x18001ae00
mov dword [rsp + 0x30], ebx
mov rax, qword [rsp + 0x30]
jmp 0x18001a865
movzx r14d, word [r15 + 0x18]
lea r13, [r15 + 0x38]
and r14d, 8
xor eax, eax
mov esi, eax
jmp 0x18001b19f
mov rax, qword [rbp + 0xc0]
mov r9, r10
mov ecx, dword [rsp + 0x78]
add ecx, dword [r8]
mov rdx, qword [rsp + 0x38]
mov eax, dword [rax]
mov dword [rbp + 0xa0], eax
lea rax, [rbp + 0xa0]
mov qword [rsp + 0x28], rax
xor eax, eax
mov dword [rsp + 0x40], ecx
lea rcx, [rsp + 0x40]
mov qword [rsp + 0x20], rax
lea r8d, [rax + 0x3a]
call fcn.1800509c0
add ebx, eax
mov dword [rsp + 0x30], ebx
mov rax, qword [rsp + 0x30]
jmp 0x18001a865