Function at 0x6f58a940
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x108
mov eax, dword [rcx + 4]
mov qword [rsp + 0x168], r9
mov qword [rsp + 0x150], rcx
mov r9d, r8d
add r9, qword [rcx + 0xa0]
bswap r9
mov edi, eax
mov qword [rsp + 0x64], r9
or edi, r8d
je 0x6f58a9a1
cmp eax, 3
jbe 0x6f58b94d
test r8d, r8d
jne 0x6f58b94d
mov r8d, 0x10
lea rdx, [rsp + rax + 0x60]
sub r8, rax
jmp 0x6f58a9ac
lea rdx, [rsp + 0x64]
mov r8d, 0xc
mov rcx, qword [rsp + 0x150]
lea r15, [rsp + 0x70]
mov r14d, 0x20
call dbg.fugue4_core
mov rax, qword [rsp + 0x150]
mov rdi, qword [rsp + 0x150]
mov rcx, r15
mov qword [rsp + 0x28], r15
mov eax, dword [rax + 8]
add rdi, 0xc
lea esi, [rax + rax*2]
lea eax, [rsi*4]
mov rsi, rax
lea rbx, [rax*4]
neg rax
lea rdx, [rdi + rax*4 + 0x90]
mov r8, rbx
call sym.memcpy
mov r8d, 0x24
lea rcx, [r15 + rbx]
mov rdx, rdi
sub r8d, esi
lea rsi, [r15 + 0xc]
shl r8, 2
call sym.memcpy
mov qword [rsp + 0x38], rsi
nop dword [rax]
mov rdx, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x38]
mov r8d, 0x84
mov ebp, dword [rsp + 0xf4]
mov ebx, dword [rsp + 0xf8]
lea r13, [0x6f7339c0]
mov edi, dword [rsp + 0xfc]
lea rsi, [0x6f733dc0]
call sym.memmove
mov r12d, dword [rsp + 0x80]
mov edx, dword [rsp + 0x88]
mov eax, ebp
mov ecx, dword [rsp + 0x84]
xor dword [rsp + 0xc0], edx
lea r11, [0x6f7335c0]
xor dword [rsp + 0xbc], ecx
mov r15d, dword [rsp + 0xb8]
xor eax, r12d
xor edi, edx
mov edx, eax
mov r10d, edi
lea rdi, [0x6f7331c0]
shr edx, 0x10
xor ebx, ecx
movzx r8d, al
movzx edx, dl
mov r8d, dword [rdi + r8*4]
movzx edi, bh
mov ecx, dword [r13 + rdx*4]
movzx edx, ah
shr eax, 0x18
mov ebp, dword [rsi + rax*4]
mov edx, dword [r11 + rdx*4]
mov eax, ebx
mov r11d, dword [r11 + rdi*4]
shr eax, 0x18
movzx r9d, bl
mov eax, dword [rsi + rax*4]
shr ebx, 0x10
xor r15d, r12d
xor ebp, r8d
movzx ebx, bl
mov dword [rsp + 0xb8], r15d
xor ebp, ecx
xor ebp, edx
xor edx, r11d
mov edi, eax
mov dword [rsp + 0x30], edx
lea rdx, [0x6f7331c0]
mov r9d, dword [rdx + r9*4]
xor edi, r9d
xor edi, dword [r13 + rbx*4]
xor r8d, r9d
mov r9d, r10d
shr r9d, 0x18
xor edi, r11d
mov r11d, dword [rsi + r9*4]
mov r9d, r10d
shr r9d, 0x10
movzx r9d, r9b
mov r13d, dword [r13 + r9*4]
movzx r9d, r10b
xor eax, r11d
mov ebx, dword [rdx + r9*4]
mov r9d, r11d
mov edx, r10d
lea r11, [0x6f7335c0]
movzx edx, dh
xor ecx, r13d
xor r8d, ebx
xor r9d, ebx
mov ebx, dword [rsp + 0x7c]
xor r9d, r13d
xor r9d, dword [r11 + rdx*4]
lea r13, [0x6f7339c0]
mov r10d, ebx
movzx edx, bh
shr r10d, 0x18
mov r11d, dword [rsi + r10*4]
mov r10d, ebx
lea rsi, [0x6f7331c0]
shr r10d, 0x10
movzx ebx, bl
movzx r10d, r10b
mov r10d, dword [r13 + r10*4]
mov r13, rdx
lea rdx, [0x6f7335c0]
xor eax, r11d
mov r13d, dword [rdx + r13*4]
mov edx, dword [rsp + 0x30]
xor ecx, r10d
xor edx, r13d
xor r11d, dword [rsi + rbx*4]
mov ebx, ebp
xor ebx, eax
and ebx, 0xff000000
xor r10d, r11d
mov r11d, edi
xor r11d, ecx
xor r10d, r13d
mov r13d, r8d
and r11d, 0xff0000
shr r13d, 0x18
or ebx, r11d
mov r11d, r8d
xor r13d, ebp
xor r11d, r10d
movzx r13d, r13b
movzx r11d, r11b
or ebx, r11d
mov r11d, r9d
xor r11d, edx
and r11d, 0xff00
or ebx, r11d
mov r11d, eax
shl r11d, 8
mov dword [rsp + 0x70], ebx
xor r11d, edi
and r11d, 0xff000000
or r11d, r13d
mov r13d, ecx
shl r13d, 8
xor r13d, r9d
and r13d, 0xff0000
or r11d, r13d
mov r13d, edx
shl r13d, 8
xor r13d, r10d
and r13d, 0xff00
or r11d, r13d
mov r13d, r8d
mov dword [rsp + 0x74], r11d
mov r11d, eax
shr r13d, 0x10
shl r11d, 0x10
xor r13d, edi
xor r11d, r9d
movzx r13d, r13b
and r11d, 0xff000000
or r11d, r13d
mov r13d, ecx
shl eax, 0x18
shl r13d, 0x10
shr r8d, 8
shr ecx, 8
xor r13d, r10d
xor r9d, r8d
xor r10d, eax
and r13d, 0xff0000
and r10d, 0xff000000
movzx r9d, r9b
or r11d, r13d
mov r13d, edx
shr edx, 8
shr r13d, 0x10
or r10d, r9d
xor edi, edx
xor r13d, ebp
xor ebp, ecx
and edi, 0xff00
and ebp, 0xff0000
and r13d, 0xff00
or ebp, r10d
or r11d, r13d
or edi, ebp
sub r14d, 1
mov dword [rsp + 0x78], r11d
mov dword [rsp + 0x7c], edi
jne 0x6f58aa30
mov rax, qword [rsp + 0x28]
mov dword [rsp + 0x54], 0xd
lea rdi, [rax + 0x24]
add rax, 0x20
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x30], rdi
mov edi, ebx
jmp 0x6f58ad08
mov r15d, dword [rsp + 0xb8]
mov ebp, dword [rsp + 0x94]
xor r12d, edi
xor r15d, edi
mov r10d, dword [rsp + 0xf0]
mov eax, dword [rsp + 0xec]
mov r8d, 0x6c
mov rdx, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x30]
xor ebp, edi
xor edi, dword [rsp + 0xdc]
mov esi, dword [rsp + 0xe4]
mov r14d, dword [rsp + 0xe0]
mov ebx, dword [rsp + 0xe8]
mov r13d, dword [rsp + 0xf4]
mov dword [rsp + 0x44], r12d
mov dword [rsp + 0x80], r12d
mov dword [rsp + 0x94], ebp
mov r12d, dword [rsp + 0xf8]
mov dword [rsp + 0xb8], r15d
mov dword [rsp + 0x4c], edi
mov dword [rsp + 0x38], r10d
mov edi, dword [rsp + 0xfc]
mov dword [rsp + 0x48], eax
call sym.memmove
mov r9d, dword [rsp + 0x4c]
mov r10d, dword [rsp + 0x38]
lea rcx, [0x6f7339c0]
mov dword [rsp + 0x8c], r12d
lea rdx, [0x6f7335c0]
mov dword [rsp + 0x90], edi
lea r8, [0x6f733dc0]
mov dword [rsp + 0x88], r13d
mov eax, r9d
mov dword [rsp + 0x84], r10d
lea r10, [0x6f7331c0]
shr eax, 0x10
movzx eax, al
mov r12d, dword [rcx + rax*4]
mov eax, r9d
movzx eax, ah
mov edi, dword [rdx + rax*4]
movzx eax, r9b
shr r9d, 0x18
mov r13d, dword [r10 + rax*4]
mov eax, r14d
mov r11d, dword [r8 + r9*4]
shr eax, 0x18
mov r9, r8
mov r8d, dword [r8 + rax*4]
mov eax, r14d
movzx eax, ah
xor r11d, r13d
mov edx, dword [rdx + rax*4]
movzx eax, r14b
shr r14d, 0x10
mov eax, dword [r10 + rax*4]
movzx r14d, r14b
mov r10d, r8d
xor r11d, r12d
mov dword [rsp + 0x38], edx
mov rdx, rcx
xor r11d, edi
xor r10d, eax
xor r10d, dword [rcx + r14*4]
mov ecx, esi
shr ecx, 0x18
movzx r14d, sil
xor r10d, dword [rsp + 0x38]
mov r9d, dword [r9 + rcx*4]
mov ecx, esi
shr ecx, 0x10
movzx ecx, cl
mov ecx, dword [rdx + rcx*4]
lea rdx, [0x6f7331c0]
xor r8d, r9d
mov r14d, dword [rdx + r14*4]
mov edx, esi
movzx esi, dh
lea rdx, [0x6f7335c0]
xor eax, r14d
xor r9d, r14d
lea r14, [0x6f7335c0]
xor r13d, eax
xor r9d, ecx
mov eax, ebx
xor r9d, dword [rdx + rsi*4]
lea rsi, [0x6f733dc0]
shr eax, 0x18
lea rdx, [0x6f7339c0]
mov eax, dword [rsi + rax*4]
mov esi, ebx
shr esi, 0x10
movzx esi, sil
mov esi, dword [rdx + rsi*4]
xor r8d, eax
mov edx, dword [rsp + 0x38]
xor ecx, esi
xor r12d, ecx
movzx ecx, bh
movzx ebx, bl
mov ecx, dword [r14 + rcx*4]
lea r14, [0x6f7331c0]
xor eax, dword [r14 + rbx*4]
mov ebx, r10d
xor edx, ecx
xor edi, edx
xor eax, esi
mov esi, r8d
xor ecx, eax
mov eax, r9d
xor ebx, r12d
xor eax, edi
and ebx, 0xff0000
shl esi, 8
and eax, 0xff00
or ebx, eax
mov eax, r13d
xor eax, ecx
movzx eax, al
or ebx, eax
mov eax, r11d
xor eax, r8d
and eax, 0xff000000
or ebx, eax
mov eax, r12d
shl eax, 8
mov dword [rsp + 0x70], ebx
xor eax, r9d
and eax, 0xff0000
mov edx, eax
mov eax, edi
shl eax, 8
xor eax, ecx
and eax, 0xff00
or eax, edx
mov edx, esi
mov esi, r13d
xor edx, r10d
shr esi, 0x18
and edx, 0xff000000
or eax, edx
mov edx, esi
mov esi, r8d
xor edx, r11d
shl esi, 0x10
movzx edx, dl
or eax, edx
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x74], eax
mov eax, esi
mov esi, r13d
xor eax, r9d
shr esi, 0x10
and eax, 0xff000000
mov edx, esi
mov esi, r12d
xor edx, r10d
shl esi, 0x10
movzx edx, dl
or eax, edx
mov edx, esi
mov esi, edi
xor edx, ecx
shr esi, 0x10
shl r8d, 0x18
and edx, 0xff0000
shr r13d, 8
xor r8d, ecx
xor r13d, r9d
or eax, edx
shr r12d, 8
shr edi, 8
mov edx, esi
and r8d, 0xff000000
xor edx, r11d
xor r10d, edi
xor r11d, r12d
mov edi, dword [rsp + 0x48]
movzx r13d, r13b
and r11d, 0xff0000
or r13d, r8d
and edx, 0xff00
and r10d, 0xff00
or r13d, r11d
or eax, edx
xor ebp, ebx
or r10d, r13d
xor edi, ebx
mov dword [rsp + 0x78], eax
mov dword [rsp + 0x7c], r10d
mov dword [rsp + 0x80], edi
xor r15d, ebx
mov edi, dword [rsp + 0x98]
mov r11d, dword [rsp + 0xec]
mov r8d, 0x6c
mov r10d, dword [rsp + 0xf0]
mov rdx, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x30]
mov esi, dword [rsp + 0xe4]
xor edi, ebx
mov r14d, dword [rsp + 0xf4]
mov ebx, dword [rsp + 0xe8]
mov r13d, dword [rsp + 0xf8]
mov r12d, dword [rsp + 0xfc]
mov dword [rsp + 0x98], edi
mov dword [rsp + 0xb8], ebp
mov dword [rsp + 0x50], r15d
mov dword [rsp + 0x4c], r11d
mov r15d, dword [rsp + 0xe0]
mov dword [rsp + 0x48], r10d
call sym.memmove
mov r9d, dword [rsp + 0x50]
mov r10d, dword [rsp + 0x48]
lea rdx, [0x6f7339c0]
mov dword [rsp + 0x90], r12d
mov dword [rsp + 0x8c], r13d
lea r8, [0x6f733dc0]
mov dword [rsp + 0x88], r14d
lea r14, [0x6f7331c0]
mov r12d, r9d
mov dword [rsp + 0x84], r10d
lea r10, [0x6f7335c0]
shr r12d, 0x10
movzx eax, r12b
mov r13d, dword [rdx + rax*4]
mov eax, r9d
movzx eax, ah
mov r12d, dword [r10 + rax*4]
movzx eax, r9b
shr r9d, 0x18
mov r14d, dword [r14 + rax*4]
mov ecx, dword [r8 + r9*4]
lea r9, [0x6f7331c0]
xor ecx, r14d
mov r11d, ecx
mov ecx, r15d
shr ecx, 0x18
xor r11d, r13d
mov eax, ecx
xor r11d, r12d
mov r8d, dword [r8 + rax*4]
mov eax, r15d
movzx eax, ah
mov ecx, dword [r10 + rax*4]
movzx eax, r15b
shr r15d, 0x10
mov eax, dword [r9 + rax*4]
movzx r15d, r15b
mov r10d, r8d
xor r10d, eax
xor r10d, dword [rdx + r15*4]
mov r15d, esi
shr r15d, 0x18
mov dword [rsp + 0x48], eax
mov eax, r15d
lea r15, [0x6f733dc0]
mov r9d, dword [r15 + rax*4]
mov r15d, esi
xor r10d, ecx
shr r15d, 0x10
movzx eax, r15b
movzx r15d, sil
mov eax, dword [rdx + rax*4]
lea rdx, [0x6f7331c0]
xor r8d, r9d
mov r15d, dword [rdx + r15*4]
mov edx, esi
movzx esi, dh
lea rdx, [0x6f7335c0]
xor r9d, r15d
xor r9d, eax
xor r9d, dword [rdx + rsi*4]
mov edx, dword [rsp + 0x48]
mov esi, ebx
shr esi, 0x18
xor edx, r15d
lea r15, [0x6f7339c0]
xor r14d, edx
mov edx, esi
lea rsi, [0x6f733dc0]
mov edx, dword [rsi + rdx*4]
mov esi, ebx
shr esi, 0x10
movzx esi, sil
mov esi, dword [r15 + rsi*4]
lea r15, [0x6f7335c0]
xor r8d, edx
xor eax, esi
xor r13d, eax
movzx eax, bh
movzx ebx, bl
mov eax, dword [r15 + rax*4]
lea r15, [0x6f7331c0]
xor edx, dword [r15 + rbx*4]
mov ebx, r10d
xor ecx, eax
xor ebx, r13d
xor r12d, ecx
and ebx, 0xff0000
xor edx, esi
mov esi, r8d
xor eax, edx
mov edx, r9d
xor edx, r12d
and edx, 0xff00
or ebx, edx
mov edx, r14d
xor edx, eax
movzx edx, dl
or ebx, edx
mov edx, r11d
xor edx, r8d
and edx, 0xff000000
or ebx, edx
mov edx, r13d
shl edx, 8
shl esi, 8
mov dword [rsp + 0x70], ebx
xor edx, r9d
and edx, 0xff0000
mov ecx, edx
mov edx, r12d
shl edx, 8
xor edx, eax
and edx, 0xff00
or edx, ecx
mov ecx, esi
mov esi, r14d
xor ecx, r10d
shr esi, 0x18
and ecx, 0xff000000
or edx, ecx
mov ecx, esi
mov esi, r8d
xor ecx, r11d
shl esi, 0x10
shl r8d, 0x18
movzx ecx, cl
xor r8d, eax
or edx, ecx
and r8d, 0xff000000
mov dword [rsp + 0x48], edx
mov dword [rsp + 0x74], edx
mov edx, esi
mov esi, r14d
xor edx, r9d
shr r14d, 8
shr esi, 0x10
and edx, 0xff000000
mov ecx, esi
mov esi, r13d
xor ecx, r10d
shl esi, 0x10
movzx ecx, cl
or edx, ecx
mov ecx, esi
mov esi, r12d
xor ecx, eax
shr esi, 0x10
mov eax, dword [rsp + 0x38]
and ecx, 0xff0000
or edx, ecx
mov ecx, esi
xor ecx, r11d
and ecx, 0xff00
or edx, ecx
xor r9d, r14d
shr r13d, 8
movzx r9d, r9b
xor r13d, r11d
shr r12d, 8
mov r11d, dword [rsp + 0x4c]
or r8d, r9d
and r13d, 0xff0000
xor r10d, r12d
or r8d, r13d
xor eax, ebx
and r10d, 0xff00
mov dword [rsp + 0x78], edx
xor edi, ebx
xor r11d, ebx
or r8d, r10d
xor ebp, ebx
mov dword [rsp + 0x80], r11d
mov dword [rsp + 0x7c], r8d
mov r8d, 0x6c
mov dword [rsp + 0x98], eax
mov r14d, dword [rsp + 0xec]
mov esi, eax
mov r10d, dword [rsp + 0xf0]
mov rdx, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x30]
mov r12d, dword [rsp + 0xe4]
mov ebx, dword [rsp + 0xe8]
mov r15d, dword [rsp + 0xf4]
mov r13d, dword [rsp + 0xfc]
mov dword [rsp + 0xbc], edi
mov dword [rsp + 0x50], ebp
mov dword [rsp + 0x38], r14d
mov ebp, dword [rsp + 0xe0]
mov r14d, dword [rsp + 0xf8]
mov dword [rsp + 0x4c], r10d
call sym.memmove
mov r9d, dword [rsp + 0x50]
mov r10d, dword [rsp + 0x4c]
lea rcx, [0x6f7339c0]
mov dword [rsp + 0x8c], r14d
mov dword [rsp + 0x88], r15d
lea r15, [0x6f7331c0]
mov dword [rsp + 0x90], r13d
lea r8, [0x6f733dc0]
mov eax, r9d
mov dword [rsp + 0x84], r10d
lea r10, [0x6f7335c0]
shr eax, 0x10
movzx eax, al
mov r14d, dword [rcx + rax*4]
mov eax, r9d
movzx eax, ah
mov r13d, dword [r10 + rax*4]
movzx eax, r9b
shr r9d, 0x18
mov r15d, dword [r15 + rax*4]
mov eax, ebp
mov r11d, dword [r8 + r9*4]
shr eax, 0x18
lea r9, [0x6f7331c0]
mov r8d, dword [r8 + rax*4]
mov eax, ebp
movzx eax, ah
xor r11d, r15d
mov edx, dword [r10 + rax*4]
movzx eax, bpl
shr ebp, 0x10
mov eax, dword [r9 + rax*4]
movzx ebp, bpl
mov r10d, r8d
xor r11d, r14d
xor r11d, r13d
mov dword [rsp + 0x4c], eax
xor r10d, eax
mov rax, rcx
xor r10d, dword [rcx + rbp*4]
mov ecx, r12d
lea rbp, [0x6f733dc0]
shr ecx, 0x18
mov r9d, dword [rbp + rcx*4]
mov ecx, r12d
movzx ebp, r12b
shr ecx, 0x10
movzx ecx, cl
xor r10d, edx
mov ecx, dword [rax + rcx*4]
lea rax, [0x6f7331c0]
xor r8d, r9d
mov ebp, dword [rax + rbp*4]
mov eax, r12d
movzx eax, ah
mov r12, rax
lea rax, [0x6f7335c0]
xor r9d, ebp
xor r9d, ecx
xor r9d, dword [rax + r12*4]
mov eax, dword [rsp + 0x4c]
lea r12, [0x6f7339c0]
xor eax, ebp
mov ebp, ebx
xor r15d, eax
shr ebp, 0x18
mov eax, ebp
lea rbp, [0x6f733dc0]
mov eax, dword [rbp + rax*4]
mov ebp, ebx
shr ebp, 0x10
movzx ebp, bpl
mov ebp, dword [r12 + rbp*4]
lea r12, [0x6f7335c0]
xor r8d, eax
xor ecx, ebp
xor r14d, ecx
movzx ecx, bh
movzx ebx, bl
mov ecx, dword [r12 + rcx*4]
xor edx, ecx
xor edx, r13d
lea r13, [0x6f7331c0]
xor eax, dword [r13 + rbx*4]
xor eax, ebp
xor ecx, eax
mov eax, r10d
xor eax, r14d
mov ebx, eax
mov eax, r9d
xor eax, edx
and ebx, 0xff0000
and eax, 0xff00
or ebx, eax
mov eax, r15d
xor eax, ecx
movzx eax, al
or ebx, eax
mov eax, r11d
xor eax, r8d
and eax, 0xff000000
or ebx, eax
mov eax, r14d
shl eax, 8
mov dword [rsp + 0x70], ebx
xor eax, r9d
and eax, 0xff0000
mov ebp, eax
mov eax, edx
shl eax, 8
xor eax, ecx
and eax, 0xff00
or eax, ebp
mov ebp, r8d
shl ebp, 8
xor ebp, r10d
and ebp, 0xff000000
or eax, ebp
mov ebp, r15d
shr ebp, 0x18
xor ebp, r11d
movzx ebp, bpl
or eax, ebp
mov ebp, r15d
shr r15d, 8
mov dword [rsp + 0x74], eax
mov eax, r8d
shr ebp, 0x10
shl eax, 0x10
xor ebp, r10d
shl r8d, 0x18
xor eax, r9d
movzx ebp, bpl
xor r8d, ecx
and eax, 0xff000000
xor r9d, r15d
and r8d, 0xff000000
or eax, ebp
mov ebp, r14d
shr r14d, 8
shl ebp, 0x10
movzx r9d, r9b
xor ebp, ecx
or r9d, r8d
mov r8d, 0x70
and ebp, 0xff0000
or eax, ebp
mov ebp, edx
shr edx, 8
shr ebp, 0x10
xor edx, r10d
xor ebp, r11d
xor r11d, r14d
mov r14d, dword [rsp + 0x38]
and ebp, 0xff00
and r11d, 0xff0000
and edx, 0xff00
or eax, ebp
or r9d, r11d
mov dword [rsp + 0x78], eax
mov eax, dword [rsp + 0x48]
or edx, r9d
xor r14d, ebx
mov dword [rsp + 0x7c], edx
mov dword [rsp + 0x80], r14d
xor eax, ebx
xor esi, ebx
xor edi, ebx
mov dword [rsp + 0x98], eax
mov dword [rsp + 0xbc], esi
mov rdx, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x58]
mov esi, dword [rsp + 0xe8]
mov r15d, dword [rsp + 0xe4]
mov r13d, dword [rsp + 0xf4]
mov ebp, dword [rsp + 0xf8]
mov ebx, dword [rsp + 0xfc]
mov r12d, dword [rsp + 0xf0]
call sym.memmove
mov eax, edi
lea r9, [0x6f7339c0]
lea r8, [0x6f7335c0]
shr eax, 0x10
mov dword [rsp + 0x84], r13d
lea r10, [0x6f7331c0]
movzx eax, al
mov dword [rsp + 0x88], ebp
mov dword [rsp + 0x8c], ebx
mov r13d, dword [r9 + rax*4]
mov eax, edi
lea rbx, [0x6f733dc0]
movzx eax, ah
mov ecx, r15d
mov dword [rsp + 0x80], r12d
mov ebp, dword [r8 + rax*4]
movzx eax, dil
movzx edx, ch
mov r14d, dword [r10 + rax*4]
mov eax, r15d
movzx ecx, r15b
shr eax, 0x18
mov edx, dword [r8 + rdx*4]
mov r8d, dword [r10 + rcx*4]
mov eax, dword [rbx + rax*4]
shr edi, 0x18
shr r15d, 0x10
mov r11d, dword [rbx + rdi*4]
mov ecx, esi
movzx r15d, r15b
shr ecx, 0x18
mov edi, eax
xor edi, r8d
xor r11d, r14d
mov r10d, edi
mov rdi, r9
xor r10d, dword [r9 + r15*4]
mov r9d, dword [rbx + rcx*4]
mov ecx, esi
movzx ebx, sil
shr ecx, 0x10
lea r15, [0x6f7335c0]
xor r11d, r13d
movzx ecx, cl
xor r11d, ebp
xor eax, r9d
mov ecx, dword [rdi + rcx*4]
xor r10d, edx
mov dword [rsp + 0x38], eax
lea rax, [0x6f7331c0]
mov ebx, dword [rax + rbx*4]
mov eax, esi
movzx esi, ah
mov eax, dword [r15 + rsi*4]
xor r9d, ebx
xor r8d, ebx
lea rbx, [0x6f733dc0]
xor r9d, ecx
xor r14d, r8d
xor eax, r9d
mov r9d, dword [rsp + 0x44]
mov esi, eax
mov eax, dword [rsp + 0x38]
mov r8d, r9d
shr r8d, 0x18
mov r8d, dword [rbx + r8*4]
mov ebx, r9d
shr r9d, 0x10
movzx r9d, r9b
mov r9d, dword [rdi + r9*4]
lea rdi, [0x6f7331c0]
xor eax, r8d
xor ecx, r9d
xor r13d, ecx
movzx ecx, bh
mov ecx, dword [r15 + rcx*4]
mov r15d, r13d
xor edx, ecx
xor ebp, edx
movzx edx, bl
xor r8d, dword [rdi + rdx*4]
mov edx, esi
mov edi, r14d
xor r9d, r8d
mov r8d, r14d
xor ecx, r9d
mov r9d, r10d
xor r9d, r13d
xor edx, ebp
shl r15d, 8
and edx, 0xff00
and r9d, 0xff0000
xor r15d, esi
or r9d, edx
mov edx, ebp
and r15d, 0xff0000
shl edx, 8
shr r8d, 0x10
xor edi, ecx
xor edx, ecx
xor r8d, r10d
movzx edi, dil
and edx, 0xff00
movzx r8d, r8b
or r9d, edi
or r15d, edx
mov edx, eax
mov edi, r11d
shl edx, 8
xor edi, eax
xor edx, r10d
and edi, 0xff000000
and edx, 0xff000000
or edi, r9d
or r15d, edx
mov edx, r14d
mov dword [rsp + 0x70], edi
shr edx, 0x18
xor edx, r11d
movzx edx, dl
or r15d, edx
mov edx, eax
shl edx, 0x10
mov dword [rsp + 0x74], r15d
xor edx, esi
and edx, 0xff000000
or edx, r8d
mov r8d, r13d
shl r8d, 0x10
xor r8d, ecx
and r8d, 0xff0000
shl eax, 0x18
shr r14d, 8
or edx, r8d
mov r8d, ebp
xor eax, ecx
shr r8d, 0x10
xor r14d, esi
shr r13d, 8
xor r8d, r11d
and eax, 0xff000000
xor r11d, r13d
shr ebp, 8
movzx ecx, r14b
and r11d, 0xff0000
or eax, ecx
xor r10d, ebp
and r8d, 0xff00
or eax, r11d
and r10d, 0xff00
or edx, r8d
or r10d, eax
sub dword [rsp + 0x54], 1
mov dword [rsp + 0x78], edx
mov dword [rsp + 0x7c], r10d
jne 0x6f58ad00
mov r8d, edx
mov ecx, dword [rsp + 0x94]
mov edx, dword [rsp + 0xb8]
mov eax, dword [rsp + 0xdc]
mov ebx, edi
mov r14d, r10d
xor ecx, edi
xor edx, edi
xor eax, edi
bswap r15d
mov rdi, qword [rsp + 0x168]
mov dword [rdi], r15d
bswap r8d
mov dword [rdi + 4], r8d
bswap r14d
mov dword [rdi + 8], r14d
xor ebx, r12d
bswap ebx
mov dword [rdi + 0xc], ebx
bswap ecx
mov dword [rdi + 0x10], ecx
mov ecx, dword [rsp + 0x98]
bswap ecx
mov dword [rdi + 0x14], ecx
mov ecx, dword [rsp + 0x9c]
bswap ecx
mov dword [rdi + 0x18], ecx
mov ecx, dword [rsp + 0xa0]
bswap ecx
mov dword [rdi + 0x1c], ecx
bswap edx
mov dword [rdi + 0x20], edx
mov edx, dword [rsp + 0xbc]
bswap edx
mov dword [rdi + 0x24], edx
mov edx, dword [rsp + 0xc0]
bswap edx
mov dword [rdi + 0x28], edx
mov edx, dword [rsp + 0xc4]
bswap edx
mov dword [rdi + 0x2c], edx
bswap eax
mov dword [rdi + 0x30], eax
mov eax, dword [rsp + 0xe0]
bswap eax
mov dword [rdi + 0x34], eax
mov eax, dword [rsp + 0xe4]
bswap eax
mov dword [rdi + 0x38], eax
mov eax, dword [rsp + 0xe8]
bswap eax
mov rcx, qword [rsp + 0x150]
mov dword [rdi + 0x3c], eax
call dbg.sph_fugue512_init
nop
add rsp, 0x108
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r9d, 0xff
mov ecx, r8d
shr r9d, cl
not r9d
and edx, r9d
cmp eax, 4
je 0x6f58b9a4
mov ecx, eax
mov r8d, 0x10
add eax, 1
sub r8, rcx
cmp eax, 3
mov byte [rsp + rcx + 0x60], dl
lea rdx, [rsp + rcx + 0x60]
ja 0x6f58a9ac
nop dword [rax + rax]
mov ecx, eax
add eax, 1
cmp eax, 4
mov byte [rsp + rcx + 0x60], 0
jne 0x6f58b990
jmp 0x6f58a9ac
mov byte [rsp + 0x60], dl
mov r8d, 0x10
lea rdx, [rsp + 0x60]
mov eax, 1
jmp 0x6f58b990