Function at 0x18003c040
Capabilities:
Check for software breakpoints

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x37]
sub rsp, 0xa0
mov rax, qword [0x180054020]
xor rax, rsp
mov qword [rbp + 0x2f], rax
xor eax, eax
mov word [rbp - 0x21], 0x15ff
xor bl, bl
mov dword [rbp - 0x1f], 2
xor r14b, r14b
mov word [rbp - 0x1b], 0x8eb
mov byte [rbp - 0x48], r14b
mov rsi, rcx
mov qword [rbp - 0x19], rax
mov r15d, eax
mov word [rbp - 0x41], 0x25ff
mov r13d, eax
mov dword [rbp - 0x3f], eax
mov qword [rbp - 0x3b], rax
mov qword [rbp - 0x31], 0x25ff0e70
mov qword [rbp - 0x29], rax
mov byte [rbp - 0x49], bl
mov qword [rcx + 0x20], rax
nop dword [rax]
movzx ebx, bl
lea rdx, [rbp - 0x11]
add rbx, qword [rsi]
movzx r12d, r14b
mov rcx, rbx
add r12, qword [rsi + 0x10]
call fcn.18003ada0
mov r14d, dword [rbp + 0x10]
mov edi, eax
bt r14d, 0xc
jb 0x18003c40f
cmp byte [rbp - 0x49], 5
mov r10, rbx
jb 0x18003c10a
mov edi, 0xe
mov qword [rbp - 0x3b], rbx
lea r10, [rbp - 0x41]
lea r13d, [rdi - 0xd]
jmp 0x18003c287
movzx eax, byte [rbp - 4]
and al, 0xc7
cmp al, 5
jne 0x18003c163
mov r8, rdi
lea rcx, [rbp + 0x1f]
mov rdx, rbx
call sub.VCRUNTIME140.dll_memcpy
movzx eax, byte [rbp - 0x11]
lea r10, [rbp + 0x1f]
mov ecx, r14d
mov edx, ebx
shr rcx, 2
sub edx, r12d
add edx, dword [rbp + 0xc]
and ecx, 0xf
sub rax, rcx
mov dword [rbp + rax + 0x1b], edx
cmp byte [rbp - 6], 0xff
jne 0x18003c287
cmp byte [rbp - 2], 4
jne 0x18003c287
mov r13d, 1
jmp 0x18003c287
movzx ecx, byte [rbp - 6]
cmp cl, 0xe8
jne 0x18003c187
movsxd rax, dword [rbp + 4]
lea r10, [rbp - 0x21]
movzx ecx, byte [rbp - 0x11]
add rax, rbx
add rcx, rax
mov qword [rbp - 0x19], rcx
jmp 0x18003c282
movzx eax, cl
and al, 0xfd
cmp al, 0xe9
jne 0x18003c1e5
movzx edx, byte [rbp - 0x11]
movsx rax, byte [rbp + 4]
add rdx, rbx
cmp cl, 0xeb
je 0x18003c1a5
movsxd rax, dword [rbp + 4]
lea rcx, [rax + rdx]
mov rax, qword [rsi]
cmp rax, rcx
ja 0x18003c1c9
add rax, 5
cmp rcx, rax
jae 0x18003c1c9
cmp r15, rcx
cmovae rcx, r15
mov r15, rcx
jmp 0x18003c287
xor r13d, r13d
mov qword [rbp - 0x3b], rcx
cmp rbx, r15
lea r10, [rbp - 0x41]
mov edi, 0xe
setae r13b
jmp 0x18003c287
movzx r9d, byte [rbp - 5]
movzx edx, cl
and dl, 0xf0
cmp dl, 0x70
je 0x18003c21c
movzx eax, cl
and al, 0xfc
cmp al, 0xe0
je 0x18003c21c
movzx eax, r9b
and al, 0xf0
cmp al, 0x80
je 0x18003c21c
and cl, 0xfe
cmp cl, 0xc2
jne 0x18003c287
xor r13d, r13d
cmp rbx, r15
setae r13b
jmp 0x18003c287
movzx r8d, byte [rbp - 0x11]
add r8, rbx
cmp dl, 0x70
je 0x18003c236
movzx eax, cl
and al, 0xfc
cmp al, 0xe0
movsxd rax, dword [rbp + 4]
jne 0x18003c23b
movsx rax, byte [rbp + 4]
lea rdx, [rax + r8]
mov rax, qword [rsi]
cmp rax, rdx
ja 0x18003c25c
add rax, 5
cmp rdx, rax
jae 0x18003c25c
cmp r15, rdx
cmovae rdx, r15
mov r15, rdx
jmp 0x18003c287
movzx eax, cl
and al, 0xfc
cmp al, 0xe0
je 0x18003c40f
mov eax, ecx
cmp cl, 0xf
jne 0x18003c273
mov eax, r9d
and al, 0xf
mov qword [rbp - 0x29], rdx
xor al, 0x71
lea r10, [rbp - 0x31]
mov byte [rbp - 0x31], al
mov edi, 0x10
cmp rbx, r15
jae 0x18003c298
movzx eax, byte [rbp - 0x11]
cmp edi, eax
jne 0x18003c40f
movzx r14d, byte [rbp - 0x48]
lea eax, [rdi + r14]
cmp eax, 0x32
ja 0x18003c40f
mov eax, dword [rsi + 0x24]
cmp eax, 8
jae 0x18003c40f
movzx ebx, byte [rbp - 0x49]
mov ecx, r14d
mov byte [rax + rsi + 0x28], bl
mov rdx, r10
mov eax, dword [rsi + 0x24]
mov r8d, edi
mov byte [rax + rsi + 0x30], r14b
add rcx, qword [rsi + 0x10]
inc dword [rsi + 0x24]
call sub.VCRUNTIME140.dll_memcpy
add bl, byte [rbp - 0x11]
add r14b, dil
mov byte [rbp - 0x48], r14b
mov byte [rbp - 0x49], bl
test r13d, r13d
je 0x18003c0c0
cmp bl, 5
jae 0x18003c3da
mov r10, qword [rsi]
movzx r8d, bl
add r8, r10
movzx edx, byte [r8]
test dl, dl
je 0x18003c316
cmp dl, 0x90
je 0x18003c316
cmp dl, 0xcc
jne 0x18003c344
movzx eax, bl
mov r9d, 5
sub r9d, eax
mov ecx, 1
cmp r9d, ecx
jbe 0x18003c3da
mov eax, ecx
cmp byte [rax + r8], dl
jne 0x18003c344
inc ecx
cmp ecx, r9d
jb 0x18003c330
jmp 0x18003c3da
cmp bl, 2
jae 0x18003c384
test dl, dl
je 0x18003c35b
cmp dl, 0x90
je 0x18003c35b
cmp dl, 0xcc
jne 0x18003c40f
movzx eax, bl
mov r9d, 2
sub r9d, eax
mov ecx, 1
cmp r9d, ecx
jbe 0x18003c384
mov eax, ecx
cmp byte [rax + r8], dl
jne 0x18003c40f
inc ecx
cmp ecx, r9d
jb 0x18003c371
lea rcx, [r10 - 5]
mov r8d, 0x30
lea rdx, [rbp - 0x11]
call qword [sym.imp.KERNEL32.dll_VirtualQuery]
cmp dword [rbp + 0xf], 0x1000
jne 0x18003c40f
test byte [rbp + 0x13], 0xf0
je 0x18003c40f
mov rax, qword [rsi]
movzx edx, byte [rax - 5]
test dl, dl
je 0x18003c3bc
cmp dl, 0x90
je 0x18003c3bc
cmp dl, 0xcc
jne 0x18003c40f
mov ecx, 1
add rax, 0xfffffffffffffffc
cmp byte [rax], dl
jne 0x18003c40f
inc ecx
inc rax
cmp ecx, 5
jb 0x18003c3c5
mov dword [rsi + 0x20], 1
mov rcx, qword [rsi + 8]
mov eax, 1
mov qword [rbp - 0x3b], rcx
mov ecx, dword [rbp - 0x39]
movsd xmm0, qword [rbp - 0x41]
movzx r8d, r14b
add r8, qword [rsi + 0x10]
mov qword [rsi + 0x18], r8
movsd qword [r8], xmm0
mov dword [r8 + 8], ecx
movzx ecx, word [rbp - 0x35]
mov word [r8 + 0xc], cx
jmp 0x18003c411
xor eax, eax
mov rcx, qword [rbp + 0x2f]
xor rcx, rsp
call fcn.180042310
lea r11, [rsp + 0xa0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret