Function at 0x14021bd50
Capabilities:
Read file on windows
Write file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xc8
vmovups xmmword [rsp + 0xa0], xmm6
vmovups xmmword [rsp + 0xb0], xmm7
mov rsi, qword [rcx + 0x10]
mov r15, rcx
mov ecx, 0x28
mov rbx, rdx
mov qword [rsp + 0x98], rsi
call sym.malloc
vmovq xmm7, rbx
mov ecx, 0x14
mov qword [rsp + 0x78], rax
vpbroadcastq ymm0, xmm7
mov qword [rax + 0x20], rbx
vmovdqu ymmword [rax], ymm0
vzeroupper
call sym.malloc
vmovdqu xmm7, xmmword [0x1402ffa20]
mov ecx, ebx
mov qword [rsp + 0x70], rax
mov dword [rax + 0x10], 0
vmovdqu xmmword [rax], xmm7
mov eax, 1
shl eax, cl
test eax, eax
jle 0x14021ccf4
cdqe
lea r12, [rax + rsi]
nop dword [rax]
mov edx, 1
mov ecx, 0x20
call sym.calloc
lea rdx, [rsi + rsi]
mov rdi, rax
mov rax, rsi
sar rax, 0x3f
xor rax, rdx
cmp rax, 0x7f
jbe 0x14021c871
xor edx, edx
nop dword [rax]
mov r8d, eax
mov ecx, edx
shr rax, 7
add edx, 1
or r8d, 0xffffff80
mov byte [rdi + rcx], r8b
cmp rax, 0x7f
ja 0x14021be18
add rdx, rdi
mov byte [rdx], al
mov ecx, 0x40
call sym.malloc
vmovdqu xmm1, xmmword [rdi]
vmovdqu xmm2, xmmword [rdi + 0x10]
mov ecx, 0x20
mov rbp, rax
mov rax, qword [r15 + 0x18]
vmovdqu xmm5, xmmword [rax]
vmovdqu xmmword [rbp], xmm5
vmovdqu xmm0, xmmword [rax + 0x10]
vmovdqu xmmword [rbp + 0x20], xmm1
vmovdqu xmmword [rbp + 0x10], xmm0
vmovdqu xmmword [rbp + 0x30], xmm2
call sym.malloc
mov r9d, 0x20
mov edx, 0x40
mov rcx, rbp
mov r8, rax
mov r13, rax
call sym.sha3
mov rdx, qword [r15 + 0x10]
mov rcx, qword [r15]
xor r8d, r8d
not rdx
and rdx, rsi
add rsi, 1
shl edx, 5
call sym.fseek
mov r9, qword [r15]
mov edx, 1
mov rcx, r13
mov r8d, 0x20
call sym.fwrite
mov rcx, r13
mov qword [rsp + 0x98], rsi
call sym.free
mov rcx, rbp
call sym.free
mov rcx, rdi
call sym.free
cmp rsi, r12
jne 0x14021bde8
mov r10d, 5
cmp rbx, 1
je 0x14021cd07
mov byte [rsp + 0x57], r10b
mov r14, r12
nop dword [rax]
movsx rax, byte [rsp + 0x57]
mov rdi, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x70]
mov rbp, qword [rdi + rax*8 - 8]
mov r13, rax
movsxd r12, dword [rsi + rax*4 - 4]
lea eax, [rax - 1]
mov byte [rsp + 0x28], al
mov byte [rsp + 0x57], al
test al, al
jg 0x14021c3b8
mov ecx, 0x28
call sym.malloc
mov ecx, 0x14
mov rsi, rax
lea rax, [rbp - 1]
vmovq xmm6, rax
mov qword [rsp + 0x38], rax
mov qword [rsi + 0x20], rax
vpbroadcastq ymm0, xmm6
vmovdqu ymmword [rsi], ymm0
vzeroupper
call sym.malloc
mov ecx, ebp
mov r8d, 1
shl r8d, cl
mov edx, 1
lea ecx, [rbp - 1]
mov rdi, rax
shl edx, cl
mov dword [rax + 0x10], 0
movsxd r8, r8d
vmovdqu xmmword [rax], xmm7
movsxd rdx, edx
test r12, r12
je 0x14021c470
cmp r12, 1
je 0x14021c8b2
cmp r12, 2
je 0x14021cb33
cmp r12, 3
je 0x14021c6ca
lea rax, [rbp + 1]
lea rcx, [r8 + r14]
imul rax, r8
imul rax, rbp
sub rcx, rax
test rdx, rdx
jle 0x14021c38c
lea rax, [rdx + r14]
sub rcx, r14
mov qword [rsp + 0x68], rdx
mov r13, r14
mov qword [rsp + 0x28], rax
lea rax, [r14 + rdx*2]
vpxor xmm6, xmm6, xmm6
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0x80], rsi
mov qword [rsp + 0x88], rdi
mov qword [rsp + 0x30], r14
nop dword [rax]
mov rdi, qword [rsp + 0x68]
mov rdx, qword [r15 + 0x10]
mov rax, r13
xor r8d, r8d
mov rcx, qword [r15]
xor esi, esi
sub rax, rdi
not rdx
and rdx, rax
shl edx, 5
call sym.fseek
mov ecx, 0x20
call sym.malloc
mov r9, qword [r15]
mov r8d, 0x20
mov edx, 1
mov rcx, rax
mov rdi, rax
call sym.fread
mov rbx, qword [rsp + 0x60]
mov rdx, qword [r15 + 0x10]
cmp rax, 0x20
mov rcx, qword [r15]
lea rax, [r13 + rbx]
not rdx
cmovne rdi, rsi
xor r8d, r8d
and rdx, rax
shl edx, 5
call sym.fseek
mov ecx, 0x20
call sym.malloc
mov r9, qword [r15]
mov r8d, 0x20
mov edx, 1
mov rcx, rax
mov r12, rax
call sym.fread
mov rdx, qword [r15 + 0x10]
mov rcx, qword [r15]
cmp rax, 0x20
mov rax, qword [rsp + 0x28]
cmovne r12, rsi
not rdx
xor r8d, r8d
add rax, rbx
and rdx, rax
shl edx, 5
call sym.fseek
mov ecx, 0x20
call sym.malloc
mov r9, qword [r15]
mov r8d, 0x20
mov edx, 1
mov rcx, rax
mov rbp, rax
call sym.fread
mov edx, 1
mov ecx, 0x20
cmp rax, 0x20
cmovne rbp, rsi
call sym.calloc
lea rdx, [r13 + r13]
mov rbx, rax
mov rax, r13
sar rax, 0x3f
xor rax, rdx
cmp rax, 0x7f
jbe 0x14021c460
xor edx, edx
nop dword [rax]
mov r8d, eax
mov ecx, edx
shr rax, 7
add edx, 1
or r8d, 0xffffff80
mov byte [rbx + rcx], r8b
cmp rax, 0x7f
ja 0x14021c130
add rdx, rbx
mov byte [rdx], al
mov ecx, pe_nt_image_headers64
call sym.malloc
vmovdqu xmm3, xmmword [rbx]
vmovdqu xmm4, xmmword [rbx + 0x10]
mov ecx, 0x20
mov rsi, rax
mov rax, qword [r15 + 0x18]
vmovdqu xmm5, xmmword [rdi]
vmovdqu xmm0, xmmword [rdi + 0x10]
lea r14, [rsi + 0x60]
lea r11, [rsi + 0x20]
vmovdqu xmm1, xmmword [rax]
lea r10, [rsi + 0x40]
mov qword [rsp + 0x48], r11
mov qword [rsp + 0x40], r10
vmovdqu xmmword [rsi], xmm1
vmovdqu xmm2, xmmword [rax + 0x10]
vmovdqu xmm1, xmmword [r12]
vmovdqu xmmword [rsi + 0x20], xmm3
vmovdqu xmmword [rsi + 0x10], xmm2
vmovdqu xmm2, xmmword [r12 + 0x10]
vmovdqu xmmword [rsi + 0x30], xmm4
vmovdqu xmmword [rsi + 0x40], xmm5
vmovdqu xmmword [rsi + 0x50], xmm0
vmovdqu xmmword [rsi + 0x60], xmm1
vmovdqu xmmword [r14 + 0x10], xmm2
call sym.malloc
mov edx, pe_nt_image_headers64
mov rcx, rsi
mov r9d, 0x20
mov r8, rax
mov qword [rsp + 0x38], rax
call sym.sha3
mov rcx, qword [rsp + 0x28]
mov r10, qword [rsp + 0x40]
mov r11, qword [rsp + 0x48]
vmovdqu xmmword [rbx], xmm6
mov rax, rcx
lea rdx, [rcx + rcx]
vmovdqu xmmword [rbx + 0x10], xmm6
sar rax, 0x3f
xor rax, rdx
cmp rax, 0x7f
jbe 0x14021c458
xor edx, edx
nop dword [rax]
mov r8d, eax
mov ecx, edx
shr rax, 7
add edx, 1
or r8d, 0xffffff80
mov byte [rbx + rcx], r8b
cmp rax, 0x7f
ja 0x14021c220
add rdx, rbx
vmovdqu xmm1, xmmword [rdi]
vmovdqu xmm2, xmmword [rdi + 0x10]
mov byte [rdx], al
mov ecx, 0x20
mov rax, qword [r15 + 0x18]
vmovdqu xmm5, xmmword [rbx]
vmovdqu xmm0, xmmword [rbx + 0x10]
vmovdqu xmm3, xmmword [rax]
vmovdqu xmmword [rsi], xmm3
vmovdqu xmm4, xmmword [rax + 0x10]
vmovdqu xmm3, xmmword [rbp]
vmovdqu xmmword [rsi + 0x20], xmm5
vmovdqu xmmword [rsi + 0x10], xmm4
vmovdqu xmm4, xmmword [rbp + 0x10]
vmovdqu xmmword [r11 + 0x10], xmm0
vmovdqu xmmword [rsi + 0x40], xmm1
vmovdqu xmmword [r10 + 0x10], xmm2
vmovdqu xmmword [rsi + 0x60], xmm3
vmovdqu xmmword [r14 + 0x10], xmm4
call sym.malloc
mov r9d, 0x20
mov edx, pe_nt_image_headers64
mov rcx, rsi
mov r8, rax
mov r14, rax
call sym.sha3
mov rdx, qword [r15 + 0x10]
mov rcx, qword [r15]
xor r8d, r8d
not rdx
and rdx, r13
add r13, 1
shl edx, 5
call sym.fseek
mov r9, qword [r15]
mov rcx, qword [rsp + 0x38]
mov r8d, 0x20
mov edx, 1
call sym.fwrite
mov rdx, qword [r15 + 0x10]
mov rcx, qword [r15]
xor r8d, r8d
not rdx
and rdx, qword [rsp + 0x28]
shl edx, 5
call sym.fseek
mov r9, qword [r15]
mov edx, 1
mov rcx, r14
mov r8d, 0x20
call sym.fwrite
add qword [rsp + 0x30], 2
mov rax, qword [rsp + 0x30]
mov rcx, rdi
mov qword [rsp + 0x98], rax
call sym.free
mov rcx, r12
call sym.free
mov rcx, rbp
call sym.free
mov rcx, rbx
call sym.free
mov rcx, rsi
call sym.free
mov rcx, qword [rsp + 0x38]
call sym.free
mov rcx, r14
call sym.free
add qword [rsp + 0x28], 1
mov rdi, qword [rsp + 0x58]
cmp qword [rsp + 0x30], rdi
jne 0x14021c018
mov rsi, qword [rsp + 0x80]
mov rdi, qword [rsp + 0x88]
mov rcx, rsi
call sym.free
mov rcx, rdi
call sym.free
cmp byte [rsp + 0x57], 0
je 0x14021c879
mov r14, qword [rsp + 0x98]
jmp 0x14021bf08
movzx edx, al
lea rsi, [rdx*8]
mov qword [rsp + 0x30], rdx
mov rcx, rsi
call sym.malloc
lea ecx, [rsi - 1]
mov rdx, rdi
mov rbx, rax
mov rax, qword [rdi + rsi - 8]
mov rdi, rbx
mov qword [rbx + rsi - 8], rax
mov esi, ecx
shr esi, 3
mov ecx, esi
mov rsi, rdx
rep movsq qword [rdi], qword [rsi]
mov rcx, rdx
call sym.free
mov rdx, qword [rsp + 0x30]
lea rsi, [rdx*4]
mov rcx, rsi
call sym.malloc
cmp esi, 8
jae 0x14021c6a7
test sil, 4
jne 0x14021ccde
test esi, esi
je 0x14021c431
mov rdi, qword [rsp + 0x70]
movzx edx, byte [rdi]
mov byte [rax], dl
mov rcx, qword [rsp + 0x70]
mov qword [rsp + 0x30], rax
call sym.free
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x78], rbx
mov qword [rsp + 0x70], rax
jmp 0x14021bf38
mov rdx, rbx
jmp 0x14021c23d
mov rdx, rbx
jmp 0x14021c14d
mov rax, r14
mov r13, rdx
lea r9, [r14 + rdx]
sub rax, r8
sub r13, r14
add r13, rax
test rdx, rdx
jle 0x14021c685
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0x28], r9
mov qword [rsp + 0x30], r8
mov rdi, qword [rsp + 0x30]
mov rdx, qword [r15 + 0x10]
mov rax, r14
xor r8d, r8d
mov rcx, qword [r15]
sub rax, rdi
not rdx
xor edi, edi
and rdx, rax
shl edx, 5
call sym.fseek
mov ecx, 0x20
call sym.malloc
mov r9, qword [r15]
mov r8d, 0x20
mov edx, 1
mov rcx, rax
mov r12, rax
call sym.fread
lea rdx, [r13 + r14]
mov rcx, qword [r15]
cmp rax, 0x20
mov rax, qword [r15 + 0x10]
cmovne r12, rdi
xor r8d, r8d
not rax
and rdx, rax
shl edx, 5
call sym.fseek
mov ecx, 0x20
call sym.malloc
mov r9, qword [r15]
mov r8d, 0x20
mov edx, 1
mov rcx, rax
mov rbp, rax
call sym.fread
mov edx, 1
mov ecx, 0x20
cmp rax, 0x20
cmovne rbp, rdi
call sym.calloc
mov rdx, r14
mov rbx, rax
sar rdx, 0x3f
lea rax, [r14 + r14]
xor rax, rdx
cmp rax, 0x7f
jbe 0x14021c69f
xor edx, edx
nop dword [rax]
mov r8d, eax
mov ecx, edx
shr rax, 7
add edx, 1
or r8d, 0xffffff80
mov byte [rbx + rcx], r8b
cmp rax, 0x7f
ja 0x14021c568
add rdx, rbx
mov byte [rdx], al
mov ecx, pe_nt_image_headers64
call sym.malloc
vmovdqu xmm5, xmmword [rbx]
vmovdqu xmm0, xmmword [rbx + 0x10]
mov ecx, 0x20
mov rsi, rax
mov rax, qword [r15 + 0x18]
vmovdqu xmm1, xmmword [rbp]
vmovdqu xmm2, xmmword [rbp + 0x10]
vmovdqu xmm6, xmmword [rax]
vmovdqu xmmword [rsi], xmm6
vmovdqu xmm6, xmmword [rax + 0x10]
vmovdqu xmmword [rsi + 0x20], xmm5
vmovdqu xmm5, xmmword [r12 + 0x10]
vmovdqu xmmword [rsi + 0x10], xmm6
vmovdqu xmm6, xmmword [r12]
vmovdqu xmmword [rsi + 0x30], xmm0
vmovdqu xmmword [rsi + 0x40], xmm6
vmovdqu xmmword [rsi + 0x50], xmm5
vmovdqu xmmword [rsi + 0x60], xmm1
vmovdqu xmmword [rsi + 0x70], xmm2
call sym.malloc
mov r9d, 0x20
mov edx, pe_nt_image_headers64
mov rcx, rsi
mov r8, rax
mov rdi, rax
call sym.sha3
mov rdx, qword [r15 + 0x10]
mov rcx, qword [r15]
xor r8d, r8d
not rdx
and rdx, r14
add r14, 1
shl edx, 5
call sym.fseek
mov r9, qword [r15]
mov edx, 1
mov rcx, rdi
mov r8d, 0x20
call sym.fwrite
mov rcx, rdi
mov qword [rsp + 0x98], r14
call sym.free
mov rcx, rsi
call sym.free
mov rcx, r12
call sym.free
mov rcx, rbp
call sym.free
mov rcx, rbx
call sym.free
mov rax, qword [rsp + 0x28]
cmp r14, rax
jne 0x14021c4a0
mov rsi, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x38]
lea r8, [rsp + 0x98]
mov rcx, r15
call sym.ButterflyGraph
jmp 0x14021c38c
mov rdx, rbx
jmp 0x14021c585
mov r11, qword [rsp + 0x70]
lea ecx, [rsi - 1]
mov rdi, rax
shr ecx, 3
mov rdx, qword [r11 + rsi - 8]
mov qword [rax + rsi - 8], rdx
mov rsi, r11
rep movsq qword [rdi], qword [rsi]
jmp 0x14021c431
test rdx, rdx
jle 0x14021c685
mov qword [rsp + 0x30], rax
lea r13, [rdx + r14]
mov r12, rdx
mov qword [rsp + 0x28], rsi
mov rsi, r15
nop dword [rax + rax]
mov rdx, qword [rsi + 0x10]
mov rax, r14
mov rcx, qword [rsi]
xor r8d, r8d
sub rax, r12
not rdx
and rdx, rax
shl edx, 5
call sym.fseek
mov ecx, 0x20
call sym.malloc
mov r9, qword [rsi]
mov r8d, 0x20
mov edx, 1
mov rcx, rax
mov rbp, rax
call sym.fread
mov edx, 1
mov ecx, 0x20
cmp rax, 0x20
mov eax, 0
cmovne rbp, rax
call sym.calloc
lea rdx, [r14 + r14]
mov rbx, rax
mov rax, r14
sar rax, 0x3f
xor rax, rdx
cmp rax, 0x7f
jbe 0x14021c869
xor edx, edx
nop word [rax + rax]
mov r8d, eax
mov ecx, edx
shr rax, 7
add edx, 1
or r8d, 0xffffff80
mov byte [rbx + rcx], r8b
cmp rax, 0x7f
ja 0x14021c768
add rdx, rbx
mov byte [rdx], al
mov ecx, 0x60
call sym.malloc
vmovdqu xmm0, xmmword [rbx]
vmovdqu xmm6, xmmword [rbx + 0x10]
mov ecx, 0x20
mov rdi, rax
mov rax, qword [rsi + 0x18]
vmovdqu xmm3, xmmword [rax]
vmovdqu xmmword [rdi], xmm3
vmovdqu xmm4, xmmword [rax + 0x10]
vmovdqu xmm3, xmmword [rbp]
vmovdqu xmmword [rdi + 0x20], xmm0
vmovdqu xmmword [rdi + 0x10], xmm4
vmovdqu xmm4, xmmword [rbp + 0x10]
vmovdqu xmmword [rdi + 0x30], xmm6
vmovdqu xmmword [rdi + 0x40], xmm3
vmovdqu xmmword [rdi + 0x50], xmm4
call sym.malloc
mov r9d, 0x20
mov edx, 0x60
mov rcx, rdi
mov r8, rax
mov r15, rax
call sym.sha3
mov rdx, qword [rsi + 0x10]
mov rcx, qword [rsi]
xor r8d, r8d
not rdx
and rdx, r14
add r14, 1
shl edx, 5
call sym.fseek
mov r9, qword [rsi]
mov edx, 1
mov rcx, r15
mov r8d, 0x20
call sym.fwrite
mov rcx, r15
mov qword [rsp + 0x98], r14
call sym.free
mov rcx, rdi
call sym.free
mov rcx, rbp
call sym.free
mov rcx, rbx
call sym.free
cmp r14, r13
jne 0x14021c6e8
mov r15, rsi
mov rdi, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x28]
jmp 0x14021c685
mov rdx, rbx
jmp 0x14021c785
mov rdx, rdi
jmp 0x14021be35
mov rcx, qword [rsp + 0x78]
call sym.free
mov rcx, qword [rsp + 0x70]
vmovups xmm6, xmmword [rsp + 0xa0]
vmovups xmm7, xmmword [rsp + 0xb0]
add rsp, 0xc8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp sym.free
lea rax, [rdx + r14]
test rdx, rdx
jle 0x14021ca69
mov qword [rsp + 0x40], rbp
mov byte [rsp + 0x30], r13b
mov r13, rdx
mov qword [rsp + 0x48], rsi
mov rsi, rax
mov qword [rsp + 0x58], rdi
mov rdi, r15
nop dword [rax]
mov rdx, qword [rdi + 0x10]
mov rax, r14
mov rcx, qword [rdi]
xor r8d, r8d
sub rax, r13
not rdx
and rdx, rax
shl edx, 5
call sym.fseek
mov ecx, 0x20
call sym.malloc
mov r9, qword [rdi]
mov r8d, 0x20
mov edx, 1
mov rcx, rax
mov r15, rax
call sym.fread
mov edx, 1
mov ecx, 0x20
cmp rax, 0x20
mov eax, 0
cmovne r15, rax
call sym.calloc
lea rdx, [r14 + r14]
mov rbx, rax
mov rax, r14
sar rax, 0x3f
xor rax, rdx
cmp rax, 0x7f
jbe 0x14021cb2b
xor edx, edx
nop word [rax + rax]
mov r8d, eax
mov ecx, edx
shr rax, 7
add edx, 1
or r8d, 0xffffff80
mov byte [rbx + rcx], r8b
cmp rax, 0x7f
ja 0x14021c960
add rdx, rbx
mov byte [rdx], al
mov ecx, 0x60
call sym.malloc
vmovdqu xmm3, xmmword [rbx]
vmovdqu xmm4, xmmword [rbx + 0x10]
mov ecx, 0x20
mov rbp, rax
mov rax, qword [rdi + 0x18]
vmovdqu xmm0, xmmword [r15]
vmovdqu xmm1, xmmword [r15 + 0x10]
vmovdqu xmm6, xmmword [rax]
vmovdqu xmmword [rbp], xmm6
vmovdqu xmm5, xmmword [rax + 0x10]
vmovdqu xmmword [rbp + 0x20], xmm3
vmovdqu xmmword [rbp + 0x10], xmm5
vmovdqu xmmword [rbp + 0x30], xmm4
vmovdqu xmmword [rbp + 0x40], xmm0
vmovdqu xmmword [rbp + 0x50], xmm1
call sym.malloc
mov r9d, 0x20
mov edx, 0x60
mov rcx, rbp
mov r8, rax
mov r12, rax
call sym.sha3
mov rdx, qword [rdi + 0x10]
mov rcx, qword [rdi]
xor r8d, r8d
not rdx
and rdx, r14
add r14, 1
shl edx, 5
call sym.fseek
mov r9, qword [rdi]
mov edx, 1
mov rcx, r12
mov r8d, 0x20
call sym.fwrite
mov rcx, r12
mov qword [rsp + 0x98], r14
call sym.free
mov rcx, rbp
call sym.free
mov rcx, r15
call sym.free
mov rcx, rbx
call sym.free
cmp r14, rsi
jne 0x14021c8e0
mov r15, rdi
movzx r13d, byte [rsp + 0x30]
mov rbp, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x58]
cmp rbp, 2
je 0x14021c685
movsx r12d, byte [rsp + 0x28]
add r12d, 5
movsxd r12, r12d
lea rbx, [r12*8]
shl r12, 2
mov rcx, rbx
sub rbx, 0x28
call sym.malloc
mov r14, qword [rsp + 0x78]
mov r8, rbx
mov rcx, rax
mov rbp, rax
mov rdx, r14
call sym.memcpy
mov rdx, qword [rsi + 0x20]
vmovdqu xmm2, xmmword [rsi]
mov rcx, r14
lea rax, [rbp + rbx]
mov qword [rax + 0x20], rdx
vmovdqu xmmword [rax], xmm2
vmovdqu xmm2, xmmword [rsi + 0x10]
vmovdqu xmmword [rax + 0x10], xmm2
lea eax, [r13 + 4]
mov byte [rsp + 0x57], al
call sym.free
mov rcx, r12
sub r12, 0x14
call sym.malloc
mov rbx, qword [rsp + 0x70]
mov r8, r12
mov rcx, rax
mov r13, rax
mov rdx, rbx
add r12, r13
call sym.memcpy
mov eax, dword [rdi + 0x10]
vmovdqu xmm1, xmmword [rdi]
mov rcx, rbx
mov dword [r12 + 0x10], eax
vmovdqu xmmword [r12], xmm1
call sym.free
mov qword [rsp + 0x70], r13
mov qword [rsp + 0x78], rbp
jmp 0x14021c38c
mov rdx, rbx
jmp 0x14021c97d
test rdx, rdx
jle 0x14021ca69
mov qword [rsp + 0x40], rbp
lea rax, [rdx + r14]
mov byte [rsp + 0x30], r13b
mov r13, rdx
mov qword [rsp + 0x48], rsi
mov rsi, rax
mov qword [rsp + 0x58], rdi
mov rdi, r15
nop dword [rax]
mov rdx, qword [rdi + 0x10]
mov rax, r14
mov rcx, qword [rdi]
xor r8d, r8d
sub rax, r13
not rdx
and rdx, rax
shl edx, 5
call sym.fseek
mov ecx, 0x20
call sym.malloc
mov r9, qword [rdi]
mov r8d, 0x20
mov edx, 1
mov rcx, rax
mov r15, rax
call sym.fread
mov edx, 1
mov ecx, 0x20
cmp rax, 0x20
mov eax, 0
cmovne r15, rax
call sym.calloc
lea rdx, [r14 + r14]
mov rbx, rax
mov rax, r14
sar rax, 0x3f
xor rax, rdx
cmp rax, 0x7f
jbe 0x14021ccd6
xor edx, edx
nop word [rax + rax]
mov r8d, eax
mov ecx, edx
shr rax, 7
add edx, 1
or r8d, 0xffffff80
mov byte [rbx + rcx], r8b
cmp rax, 0x7f
ja 0x14021cbe0
add rdx, rbx
mov byte [rdx], al
mov ecx, 0x60
call sym.malloc
vmovdqu xmm5, xmmword [rbx]
vmovdqu xmm3, xmmword [rbx + 0x10]
mov ecx, 0x20
mov rbp, rax
mov rax, qword [rdi + 0x18]
vmovdqu xmm4, xmmword [r15]
vmovdqu xmm0, xmmword [r15 + 0x10]
vmovdqu xmm2, xmmword [rax]
vmovdqu xmmword [rbp], xmm2
vmovdqu xmm6, xmmword [rax + 0x10]
vmovdqu xmmword [rbp + 0x20], xmm5
vmovdqu xmmword [rbp + 0x10], xmm6
vmovdqu xmmword [rbp + 0x30], xmm3
vmovdqu xmmword [rbp + 0x40], xmm4
vmovdqu xmmword [rbp + 0x50], xmm0
call sym.malloc
mov r9d, 0x20
mov edx, 0x60
mov rcx, rbp
mov r8, rax
mov r12, rax
call sym.sha3
mov rdx, qword [rdi + 0x10]
mov rcx, qword [rdi]
xor r8d, r8d
not rdx
and rdx, r14
add r14, 1
shl edx, 5
call sym.fseek
mov r9, qword [rdi]
mov edx, 1
mov rcx, r12
mov r8d, 0x20
call sym.fwrite
mov rcx, r12
mov qword [rsp + 0x98], r14
call sym.free
mov rcx, rbp
call sym.free
mov rcx, r15
call sym.free
mov rcx, rbx
call sym.free
cmp r14, rsi
jne 0x14021cb60
jmp 0x14021ca51
mov rdx, rbx
jmp 0x14021cbfd
mov rdi, qword [rsp + 0x70]
mov edx, dword [rdi]
mov dword [rax], edx
mov edx, dword [rdi + rsi - 4]
mov dword [rax + rsi - 4], edx
jmp 0x14021c431
mov r12, rsi
mov r10d, 5
cmp rbx, 1
jne 0x14021befc
lea r8, [rsp + 0x98]
mov edx, 1
mov rcx, r15
call sym.ButterflyGraph
nop
vmovups xmm6, xmmword [rsp + 0xa0]
vmovups xmm7, xmmword [rsp + 0xb0]
add rsp, 0xc8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret