Function at 0x454a30
Capabilities:
Check for software breakpoints

Disassembly:
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x20
mov ebp, dword [rsp + 0x80]
mov r8d, r8d
mov rdi, rcx
mov ecx, r9d
mov r12, rdx
mov rax, r8
mov r13, r8
mov r14, rcx
imul rax, rbp
mul rcx
seto sil
xor eax, eax
movzx esi, sil
test rsi, rsi
jne 0x454c44
imul rbp, rcx
mov rbx, qword [rdi + 0x58]
imul rbp, r8
cmp qword [rdi + 0x60], rbp
jae 0x454ab3
mov rdx, rbp
mov rcx, rbx
call sub.msvcrt.dll_realloc
test rbp, rbp
je 0x454a9f
test rax, rax
je 0x455020
mov qword [rdi + 0x58], rax
test rax, rax
je 0x455344
mov qword [rdi + 0x60], rbp
mov rbx, rax
imul eax, dword [rsp + 0x80], 0x64
add eax, r13d
cmp eax, 0xce
je 0x4553d0
ja 0x454c53
cmp eax, 0x6a
je 0x455480
jbe 0x454d20
cmp eax, 0xc9
je 0x4552d0
jbe 0x454e84
cmp eax, 0xca
je 0x4550c0
cmp eax, 0xcc
jne 0x454d3b
test r14d, r14d
je 0x454b54
mov r10, qword [r12]
mov r9, qword [r12 + 8]
lea ecx, [r14 - 1]
xor eax, eax
mov r8, qword [r12 + 0x10]
mov r11, qword [r12 + 0x18]
jmp 0x454b28
mov rax, rdx
mov edx, dword [r10 + rax*4]
mov word [rbx + rax*8], dx
mov edx, dword [r9 + rax*4]
mov word [rbx + rax*8 + 2], dx
mov edx, dword [r8 + rax*4]
mov word [rbx + rax*8 + 4], dx
mov edx, dword [r11 + rax*4]
mov word [rbx + rax*8 + 6], dx
lea rdx, [rax + 1]
cmp rcx, rax
jne 0x454b25
mov eax, dword [rdi + 0x50]
mov edx, eax
add edx, ebp
mov dword [rdi + 0x50], edx
jae 0x454b64
add dword [rdi + 0x54], 1
and eax, 0x3f
mov rdx, rdi
mov esi, eax
mov eax, 0x40
sub eax, esi
mov r13d, eax
sub rdx, r13
lea rcx, [rdx + 0x40]
cmp ebp, eax
jb 0x454f65
cmp eax, 8
jae 0x454f84
test al, 4
jne 0x455300
test eax, eax
je 0x454ba7
movzx edx, byte [rbx]
mov byte [rcx], dl
test al, 2
jne 0x455333
lea r12, [rdi + 0x40]
mov rdx, rdi
lea ebp, [rsi + rbp - 0x40]
add rbx, r13
mov rcx, r12
call fcn.00453fd0
cmp ebp, 0x3f
jbe 0x455355
lea esi, [rbp - 0x40]
shr esi, 6
add rsi, 1
shl rsi, 6
add rsi, rbx
nop word [rax + rax]
movdqu xmm0, xmmword [rbx]
mov rdx, rdi
mov rcx, r12
add rbx, 0x40
movups xmmword [rdi], xmm0
movdqu xmm1, xmmword [rbx - 0x30]
movups xmmword [rdi + 0x10], xmm1
movdqu xmm2, xmmword [rbx - 0x20]
movups xmmword [rdi + 0x20], xmm2
movdqu xmm3, xmmword [rbx - 0x10]
movups xmmword [rdi + 0x30], xmm3
call fcn.00453fd0
cmp rbx, rsi
jne 0x454be0
and ebp, 0x3f
cmp ebp, 8
jae 0x454fd0
test bpl, 4
jne 0x455313
test ebp, ebp
je 0x454c3f
movzx eax, byte [rsi]
mov byte [rdi], al
test bpl, 2
jne 0x455324
mov eax, 1
add rsp, 0x20
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
ret
cmp eax, 0x191
je 0x455445
jbe 0x454dd0
cmp eax, 0x194
je 0x455270
jbe 0x454f20
cmp eax, 0x196
je 0x455050
cmp eax, 0x198
jne 0x454d3b
test r14d, r14d
je 0x454b54
lea eax, [r14 - 1]
mov r13, qword [r12]
mov rsi, qword [r12 + 8]
mov r11, qword [r12 + 0x10]
mov r10, qword [r12 + 0x18]
lea r14, [rax*4 + 4]
xor eax, eax
mov r9, qword [r12 + 0x20]
mov r8, qword [r12 + 0x28]
mov rcx, qword [r12 + 0x30]
mov r12, qword [r12 + 0x38]
nop dword [rax]
mov edx, dword [r13 + rax]
mov dword [rbx + rax*8], edx
mov edx, dword [rsi + rax]
mov dword [rbx + rax*8 + 4], edx
mov edx, dword [r11 + rax]
mov dword [rbx + rax*8 + 8], edx
mov edx, dword [r10 + rax]
mov dword [rbx + rax*8 + 0xc], edx
mov edx, dword [r9 + rax]
mov dword [rbx + rax*8 + 0x10], edx
mov edx, dword [r8 + rax]
mov dword [rbx + rax*8 + 0x14], edx
mov edx, dword [rcx + rax]
mov dword [rbx + rax*8 + 0x18], edx
mov edx, dword [r12 + rax]
mov dword [rbx + rax*8 + 0x1c], edx
add rax, 4
cmp r14, rax
jne 0x454cd0
jmp 0x454b54
cmp eax, 0x66
je 0x455230
cmp eax, 0x68
je 0x455190
cmp eax, 0x65
je 0x455160
cmp dword [rsp + 0x80], 2
je 0x4554e8
jbe 0x455360
cmp dword [rsp + 0x80], 3
je 0x455550
cmp dword [rsp + 0x80], 4
jne 0x454b54
test r14d, r14d
je 0x454b54
lea eax, [r14 - 1]
lea r8d, [r13 - 1]
mov rcx, rbx
lea r9, [rax*4 + 4]
lea r10, [r8*4 + 4]
nop
xor eax, eax
test r13d, r13d
jne 0x454da3
jmp 0x454db9
mov rax, rdx
mov rdx, qword [r12 + rax*8]
mov edx, dword [rdx + rsi]
mov dword [rcx + rax*4], edx
lea rdx, [rax + 1]
cmp rax, r8
jne 0x454da0
add rcx, r10
add rsi, 4
cmp r9, rsi
jne 0x454d90
jmp 0x454b54
cmp eax, 0x12d
je 0x4551f0
cmp eax, 0x12e
je 0x455102
cmp eax, 0xd0
jne 0x454d3b
test r14d, r14d
je 0x454b54
lea eax, [r14 - 1]
mov r13, qword [r12]
mov rsi, qword [r12 + 8]
mov r11, qword [r12 + 0x10]
mov r10, qword [r12 + 0x18]
lea r14, [rax*4 + 4]
xor eax, eax
mov r9, qword [r12 + 0x20]
mov r8, qword [r12 + 0x28]
mov rcx, qword [r12 + 0x30]
mov r12, qword [r12 + 0x38]
nop
mov edx, dword [r13 + rax]
mov word [rbx + rax*4], dx
mov edx, dword [rsi + rax]
mov word [rbx + rax*4 + 2], dx
mov edx, dword [r11 + rax]
mov word [rbx + rax*4 + 4], dx
mov edx, dword [r10 + rax]
mov word [rbx + rax*4 + 6], dx
mov edx, dword [r9 + rax]
mov word [rbx + rax*4 + 8], dx
mov edx, dword [r8 + rax]
mov word [rbx + rax*4 + 0xa], dx
mov edx, dword [rcx + rax]
mov word [rbx + rax*4 + 0xc], dx
mov edx, dword [r12 + rax]
mov word [rbx + rax*4 + 0xe], dx
add rax, 4
cmp r14, rax
jne 0x454e30
jmp 0x454b54
cmp eax, 0x6c
jne 0x454d3b
test r14d, r14d
je 0x454b54
lea eax, [r14 - 1]
lea rdx, [rbx + rax*8 + 8]
nop
mov rax, qword [r12]
add rbx, 8
mov eax, dword [rax + rsi]
mov byte [rbx - 8], al
mov rax, qword [r12 + 8]
mov eax, dword [rax + rsi]
mov byte [rbx - 7], al
mov rax, qword [r12 + 0x10]
mov eax, dword [rax + rsi]
mov byte [rbx - 6], al
mov rax, qword [r12 + 0x18]
mov eax, dword [rax + rsi]
mov byte [rbx - 5], al
mov rax, qword [r12 + 0x20]
mov eax, dword [rax + rsi]
mov byte [rbx - 4], al
mov rax, qword [r12 + 0x28]
mov eax, dword [rax + rsi]
mov byte [rbx - 3], al
mov rax, qword [r12 + 0x30]
mov eax, dword [rax + rsi]
mov byte [rbx - 2], al
mov rax, qword [r12 + 0x38]
mov eax, dword [rax + rsi]
add rsi, 4
mov byte [rbx - 1], al
cmp rbx, rdx
jne 0x454ea0
mov eax, dword [rdi + 0x50]
mov rbx, qword [rdi + 0x58]
mov edx, eax
add edx, ebp
mov dword [rdi + 0x50], edx
jae 0x454b64
jmp 0x454b60
cmp eax, 0x192
jne 0x454d3b
test r14d, r14d
je 0x454b54
mov r9, qword [r12]
mov r8, qword [r12 + 8]
lea ecx, [r14 - 1]
xor eax, eax
jmp 0x454f48
mov rax, rdx
mov edx, dword [r9 + rax*4]
mov dword [rbx + rax*8], edx
mov edx, dword [r8 + rax*4]
mov dword [rbx + rax*8 + 4], edx
lea rdx, [rax + 1]
cmp rcx, rax
jne 0x454f45
jmp 0x454b54
mov r8d, ebp
mov rdx, rbx
call sub.msvcrt.dll_memcpy
mov eax, 1
add rsp, 0x20
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
ret
mov rdx, qword [rbx]
lea r8, [rcx + 8]
mov r10, rbx
and r8, 0xfffffffffffffff8
mov qword [rcx], rdx
mov rdx, qword [rbx + r13 - 8]
mov qword [rcx + r13 - 8], rdx
sub rcx, r8
add eax, ecx
sub r10, rcx
and eax, 0xfffffff8
cmp eax, 8
jb 0x454ba7
and eax, 0xfffffff8
xor edx, edx
mov ecx, edx
add edx, 8
mov r9, qword [r10 + rcx]
mov qword [r8 + rcx], r9
cmp edx, eax
jb 0x454fb8
jmp 0x454ba7
mov rax, qword [rsi]
lea rcx, [rdi + 8]
and rcx, 0xfffffffffffffff8
mov qword [rdi], rax
mov eax, ebp
mov rdx, qword [rsi + rax - 8]
mov qword [rdi + rax - 8], rdx
sub rdi, rcx
sub rsi, rdi
add edi, ebp
and edi, 0xfffffff8
cmp edi, 8
jb 0x454c3f
and edi, 0xfffffff8
xor eax, eax
mov edx, eax
add eax, 8
mov r8, qword [rsi + rdx]
mov qword [rcx + rdx], r8
cmp eax, edi
jb 0x455003
mov eax, 1
jmp 0x454c44
mov rcx, rbx
call sub.msvcrt.dll_free
mov rcx, rbp
call sub.msvcrt.dll_malloc
mov qword [rdi + 0x58], rax
test rax, rax
jne 0x454aac
mov qword [rdi + 0x60], 0
jmp 0x454c44
test r14d, r14d
je 0x454b54
mov rsi, qword [r12]
mov r11, qword [r12 + 8]
lea r13d, [r14 - 1]
mov rdx, rbx
mov r10, qword [r12 + 0x10]
mov r9, qword [r12 + 0x18]
xor eax, eax
mov r8, qword [r12 + 0x20]
mov r12, qword [r12 + 0x28]
jmp 0x455084
mov rax, rcx
mov ecx, dword [rsi + rax*4]
add rdx, 0x18
mov dword [rdx - 0x18], ecx
mov ecx, dword [r11 + rax*4]
mov dword [rdx - 0x14], ecx
mov ecx, dword [r10 + rax*4]
mov dword [rdx - 0x10], ecx
mov ecx, dword [r9 + rax*4]
mov dword [rdx - 0xc], ecx
mov ecx, dword [r8 + rax*4]
mov dword [rdx - 8], ecx
mov ecx, dword [r12 + rax*4]
mov dword [rdx - 4], ecx
lea rcx, [rax + 1]
cmp r13, rax
jne 0x455081
jmp 0x454b54
test r14d, r14d
je 0x454b54
mov r9, qword [r12]
mov r8, qword [r12 + 8]
lea ecx, [r14 - 1]
xor eax, eax
jmp 0x4550e3
mov rax, rdx
mov edx, dword [r9 + rax*4]
mov word [rbx + rax*4], dx
mov edx, dword [r8 + rax*4]
mov word [rbx + rax*4 + 2], dx
lea rdx, [rax + 1]
cmp rcx, rax
jne 0x4550e0
jmp 0x454b54
test r14d, r14d
je 0x454b54
lea eax, [r14 - 1]
lea rdx, [rax*4 + 4]
nop word [rax + rax]
mov rax, qword [r12]
add rbx, 6
mov eax, dword [rax + rsi]
mov byte [rbx - 6], al
mov byte [rbx - 5], ah
sar eax, 0x10
mov byte [rbx - 4], al
mov rax, qword [r12 + 8]
mov eax, dword [rax + rsi]
add rsi, 4
mov byte [rbx - 3], al
mov byte [rbx - 2], ah
sar eax, 0x10
mov byte [rbx - 1], al
cmp rdx, rsi
jne 0x455120
jmp 0x454f04
test r14d, r14d
je 0x454b54
lea ecx, [r14 - 1]
xor eax, eax
jmp 0x455174
mov rax, rdx
mov rdx, qword [r12]
mov edx, dword [rdx + rax*4]
mov byte [rbx + rax], dl
lea rdx, [rax + 1]
cmp rcx, rax
jne 0x455171
jmp 0x454f04
test r14d, r14d
je 0x454b54
lea edx, [r14 - 1]
mov r9, 0xfffffffffffffffc
lea rax, [rbx + 4]
lea r8, [rbx + rdx*4 + 8]
sub r9, rbx
mov rcx, qword [r12]
lea rdx, [r9 + rax]
add rax, 4
mov ecx, dword [rcx + rdx]
mov byte [rax - 8], cl
mov rcx, qword [r12 + 8]
mov ecx, dword [rcx + rdx]
mov byte [rax - 7], cl
mov rcx, qword [r12 + 0x10]
mov ecx, dword [rcx + rdx]
mov byte [rax - 6], cl
mov rcx, qword [r12 + 0x18]
mov edx, dword [rcx + rdx]
mov byte [rax - 5], dl
cmp r8, rax
jne 0x4551b0
jmp 0x454f04
test r14d, r14d
je 0x454b54
lea eax, [r14 - 1]
lea rdx, [rax + rax*2 + 3]
add rdx, rbx
mov rax, qword [r12]
add rbx, 3
mov eax, dword [rax + rsi]
add rsi, 4
mov byte [rbx - 3], al
mov byte [rbx - 2], ah
sar eax, 0x10
mov byte [rbx - 1], al
cmp rbx, rdx
jne 0x455205
jmp 0x454f04
test r14d, r14d
je 0x454b54
lea eax, [r14 - 1]
lea rdx, [rbx + rax*2 + 2]
mov rax, qword [r12]
add rbx, 2
mov eax, dword [rax + rsi]
mov byte [rbx - 2], al
mov rax, qword [r12 + 8]
mov eax, dword [rax + rsi]
add rsi, 4
mov byte [rbx - 1], al
cmp rbx, rdx
jne 0x455242
jmp 0x454f04
test r14d, r14d
je 0x454b54
lea eax, [r14 - 1]
mov r11, qword [r12]
mov r10, qword [r12 + 8]
mov r9, qword [r12 + 0x10]
mov r8, qword [r12 + 0x18]
lea rcx, [rax*4 + 4]
xor eax, eax
nop word [rax + rax]
mov edx, dword [r11 + rax]
mov dword [rbx + rax*4], edx
mov edx, dword [r10 + rax]
mov dword [rbx + rax*4 + 4], edx
mov edx, dword [r9 + rax]
mov dword [rbx + rax*4 + 8], edx
mov edx, dword [r8 + rax]
mov dword [rbx + rax*4 + 0xc], edx
add rax, 4
cmp rcx, rax
jne 0x4552a0
jmp 0x454b54
test r14d, r14d
je 0x454b54
mov r8, qword [r12]
lea ecx, [r14 - 1]
xor eax, eax
jmp 0x4552e8
mov rax, rdx
mov edx, dword [r8 + rax*4]
mov word [rbx + rax*2], dx
lea rdx, [rax + 1]
cmp rcx, rax
jne 0x4552e5
jmp 0x454b54
mov eax, dword [rbx]
mov dword [rcx], eax
mov eax, dword [rbx + r13 - 4]
mov dword [rcx + r13 - 4], eax
jmp 0x454ba7
mov eax, dword [rsi]
mov dword [rdi], eax
mov eax, dword [rsi + rbp - 4]
mov dword [rdi + rbp - 4], eax
jmp 0x454c3f
movzx eax, word [rsi + rbp - 2]
mov word [rdi + rbp - 2], ax
jmp 0x454c3f
movzx eax, word [rbx + r13 - 2]
mov word [rcx + r13 - 2], ax
jmp 0x454ba7
test rbp, rbp
mov ecx, 1
cmovne rcx, rbp
jmp 0x45502b
mov rsi, rbx
jmp 0x454c19
cmp dword [rsp + 0x80], 1
jne 0x454b54
test r14d, r14d
je 0x454b54
lea eax, [r14 - 1]
lea ecx, [r13 - 1]
lea r8, [rax*4 + 4]
lea r9, [rcx + 1]
nop dword [rax + rax]
xor eax, eax
test r13d, r13d
jne 0x4553a3
jmp 0x4553b9
mov rax, rdx
mov rdx, qword [r12 + rax*8]
mov edx, dword [rdx + rsi]
mov byte [rbx + rax], dl
lea rdx, [rax + 1]
cmp rcx, rax
jne 0x4553a0
add rbx, r9
add rsi, 4
cmp r8, rsi
jne 0x455390
jmp 0x454f04
test r14d, r14d
je 0x454b54
mov rsi, qword [r12]
mov r11, qword [r12 + 8]
lea r13d, [r14 - 1]
mov rdx, rbx
mov r10, qword [r12 + 0x10]
mov r9, qword [r12 + 0x18]
xor eax, eax
mov r8, qword [r12 + 0x20]
mov r12, qword [r12 + 0x28]
jmp 0x455404
mov rax, rcx
mov ecx, dword [rsi + rax*4]
add rdx, 0xc
mov word [rdx - 0xc], cx
mov ecx, dword [r11 + rax*4]
mov word [rdx - 0xa], cx
mov ecx, dword [r10 + rax*4]
mov word [rdx - 8], cx
mov ecx, dword [r9 + rax*4]
mov word [rdx - 6], cx
mov ecx, dword [r8 + rax*4]
mov word [rdx - 4], cx
mov ecx, dword [r12 + rax*4]
mov word [rdx - 2], cx
lea rcx, [rax + 1]
cmp r13, rax
jne 0x455401
jmp 0x454b54
test r14d, r14d
je 0x454b54
mov r8, qword [r12]
lea ecx, [r14 - 1]
xor eax, eax
jmp 0x455463
mov rax, rdx
mov edx, dword [r8 + rax*4]
mov dword [rbx + rax*4], edx
lea rdx, [rax + 1]
cmp rcx, rax
jne 0x455460
jmp 0x454b54
test r14d, r14d
je 0x454b54
lea eax, [r14 - 1]
lea rdx, [rax*4 + 4]
mov rax, qword [r12]
add rbx, 6
mov eax, dword [rax + rsi]
mov byte [rbx - 6], al
mov rax, qword [r12 + 8]
mov eax, dword [rax + rsi]
mov byte [rbx - 5], al
mov rax, qword [r12 + 0x10]
mov eax, dword [rax + rsi]
mov byte [rbx - 4], al
mov rax, qword [r12 + 0x18]
mov eax, dword [rax + rsi]
mov byte [rbx - 3], al
mov rax, qword [r12 + 0x20]
mov eax, dword [rax + rsi]
mov byte [rbx - 2], al
mov rax, qword [r12 + 0x28]
mov eax, dword [rax + rsi]
add rsi, 4
mov byte [rbx - 1], al
cmp rdx, rsi
jne 0x455495
jmp 0x454f04
test r14d, r14d
je 0x454b54
lea eax, [r14 - 1]
lea r8d, [r13 - 1]
mov rcx, rbx
lea r9, [rax*4 + 4]
lea r10, [r8 + r8 + 2]
nop dword [rax]
xor eax, eax
test r13d, r13d
jne 0x455523
jmp 0x45553a
mov rax, rdx
mov rdx, qword [r12 + rax*8]
mov edx, dword [rdx + rsi]
mov word [rcx + rax*2], dx
lea rdx, [rax + 1]
cmp rax, r8
jne 0x455520
add rcx, r10
add rsi, 4
cmp r9, rsi
jne 0x455510
jmp 0x454b54
test r14d, r14d
je 0x454b54
lea eax, [r14 - 1]
lea r9, [rax*4 + 4]
lea eax, [r13 - 1]
lea r8, [rax + rax*2 + 3]
nop
mov rdx, r12
lea r11, [rbx + r8]
test r13d, r13d
je 0x45559f
nop dword [rax]
mov rax, qword [rdx]
add rbx, 3
add rdx, 8
mov eax, dword [rax + rsi]
mov byte [rbx - 3], al
mov byte [rbx - 2], ah
sar eax, 0x10
mov byte [rbx - 1], al
cmp rbx, r11
jne 0x455580
add rsi, 4
cmp r9, rsi
jne 0x455570
jmp 0x454f04