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

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push r15
sub rsp, 0x40
mov r10d, dword [rcx + 4]
lea rax, [r8*8]
add qword [rcx + 0xa0], rax
mov r9, r8
mov eax, dword [rcx]
mov r15, rcx
cmp r10d, 4
jae 0x1401ed2d9
mov ecx, 4
sub ecx, r10d
cmp r8, rcx
cmovae r8d, ecx
add r10d, r8d
test r8d, r8d
je 0x1401ed2c6
mov ecx, r8d
sub r9, rcx
mov qword [rsp + 0x60], r9
nop dword [rax + rax]
movzx ecx, byte [rdx]
inc rdx
shl eax, 8
or eax, ecx
add r8d, 0xffffffff
jne 0x1401ed2b0
mov qword [rsp + 0x58], rdx
test r9, r9
jne 0x1401ed2d9
mov dword [r15 + 4], r10d
mov dword [r15], eax
add rsp, 0x40
pop r15
ret
mov r8d, dword [r15 + 8]
xor ecx, ecx
mov qword [rsp + 0x38], rbx
mov r10d, r8d
mov qword [rsp + 0x30], rbp
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], rdi
mov qword [rsp + 0x18], r12
mov qword [rsp + 0x10], r13
lea r13, [0x140000000]
mov qword [rsp + 8], r14
test r8d, r8d
je 0x1401ed32a
sub r10d, 1
je 0x1401edcbd
cmp r10d, 1
je 0x1401ee5e6
jmp 0x1401eef26
mov ecx, dword [r15 + 0xc]
xor dword [r15 + 0x64], ecx
mov ecx, dword [r15 + 0x6c]
xor dword [r15 + 0x10], ecx
mov r9d, dword [r15 + 0x10]
mov r10d, r9d
xor r10d, dword [r15 + 0x90]
mov ecx, dword [r15 + 0x78]
xor dword [r15 + 0x1c], ecx
mov edx, dword [r15 + 0x18]
mov ebx, edx
xor dword [r15 + 0x50], edx
xor ebx, dword [r15 + 0x98]
xor dword [r15 + 0x48], r9d
mov rdx, qword [rsp + 0x50]
mov ecx, dword [r15 + 0x84]
mov r8d, dword [r15 + 0x14]
mov r11d, r8d
xor r11d, dword [r15 + 0x94]
xor dword [r15 + 0x4c], r8d
mov dword [rsp + 0x68], ecx
mov dword [r15 + 0x94], r11d
mov dword [r15 + 0x90], r10d
movzx ecx, byte [r15 + 0x92]
mov dword [r15 + 0xc], eax
mov dword [r15 + 0x98], ebx
mov r15d, dword [r13 + rcx*4 + 0x5951c0]
mov r14d, r15d
mov ecx, r10d
shr rcx, 0x18
xor r14d, dword [r13 + rcx*4 + 0x594530]
movzx ecx, byte [rdx + 0x91]
mov r12d, dword [r13 + rcx*4 + 0x594930]
xor r14d, r12d
movzx ecx, r10b
mov r10, rdx
mov edi, dword [r13 + rcx*4 + 0x594d70]
mov ecx, r11d
shr rcx, 0x18
xor r14d, edi
mov ebp, dword [r13 + rcx*4 + 0x594530]
mov esi, ebp
movzx ecx, byte [rdx + 0x96]
xor esi, dword [r13 + rcx*4 + 0x5951c0]
movzx ecx, byte [rdx + 0x95]
mov ecx, dword [r13 + rcx*4 + 0x594930]
xor esi, ecx
xor r12d, ecx
movzx ecx, r11b
mov ecx, dword [r13 + rcx*4 + 0x594d70]
xor edi, ecx
xor esi, ecx
mov ecx, ebx
shr rcx, 0x18
mov r11d, dword [r13 + rcx*4 + 0x594530]
xor ebp, r11d
movzx ecx, byte [rdx + 0x9a]
mov edx, dword [r13 + rcx*4 + 0x5951c0]
xor r15d, edx
movzx ecx, byte [r10 + 0x99]
xor edx, dword [r13 + rcx*4 + 0x594930]
xor r11d, edx
movzx ecx, bl
mov ecx, dword [r13 + rcx*4 + 0x594d70]
xor r11d, ecx
xor edi, ecx
mov ecx, eax
shr rcx, 0x18
mov r9d, dword [r13 + rcx*4 + 0x594530]
xor ebp, r9d
movzx ecx, byte [r10 + 0xe]
mov ecx, dword [r13 + rcx*4 + 0x5951c0]
xor r9d, ecx
xor r15d, ecx
movzx ecx, byte [r10 + 0xd]
mov edx, dword [r13 + rcx*4 + 0x594930]
xor r12d, edx
movzx ecx, al
xor edx, dword [r13 + rcx*4 + 0x594d70]
mov ecx, edi
xor r9d, edx
xor ecx, r9d
mov rdx, qword [rsp + 0x50]
movzx r13d, cl
mov ebx, r15d
shl ebx, 8
mov ecx, r15d
xor ecx, esi
xor ebx, r11d
and ecx, 0xff0000
and ebx, 0xff0000
or r13d, ecx
mov ecx, r12d
xor ecx, r11d
and ecx, 0xff00
or r13d, ecx
mov ecx, ebp
xor ecx, r14d
and ecx, 0xff000000
or r13d, ecx
mov ecx, edi
shr ecx, 0x18
xor ecx, r14d
mov dword [r10 + 0x90], r13d
movzx ecx, cl
or ebx, ecx
mov ecx, r12d
shl ecx, 8
xor ecx, r9d
and ecx, 0xff00
or ebx, ecx
mov ecx, ebp
shl ecx, 8
xor ecx, esi
and ecx, 0xff000000
or ebx, ecx
mov ecx, edi
shr ecx, 0x10
xor ecx, esi
mov dword [r10 + 0x94], ebx
movzx ecx, cl
mov r10d, r15d
shl r10d, 0x10
xor r10d, r9d
shr r15d, 8
and r10d, 0xff0000
shr edi, 8
or r10d, ecx
xor edi, r11d
mov ecx, ebp
movzx r8d, dil
shl ecx, 0x10
xor r15d, r14d
xor ecx, r11d
shl ebp, 0x18
and ecx, 0xff000000
xor ebp, r9d
or r10d, ecx
and r15d, 0xff0000
mov ecx, r12d
or r8d, r15d
shr ecx, 0x10
and ebp, 0xff000000
shr r12d, 8
xor ecx, r14d
xor r12d, esi
and ecx, 0xff00
mov rsi, rdx
or r10d, ecx
or r8d, ebp
mov dword [rdx + 0x98], r10d
and r12d, 0xff00
mov r9d, r10d
or r8d, r12d
xor r9d, dword [rsi + 0x88]
mov r11d, r8d
mov dword [rdx + 0xc], r8d
mov edx, ebx
xor edx, dword [rsp + 0x68]
xor r11d, dword [rsi + 0x8c]
mov dword [rsi + 0x84], edx
mov dword [rsi + 0x88], r9d
xor dword [rsi + 0x3c], ebx
lea rbx, [0x140000000]
movzx ecx, byte [rsi + 0x86]
xor dword [rsi + 0x44], r8d
xor dword [rsi + 0x40], r10d
mov r10, qword [rsp + 0x50]
mov r15d, dword [rbx + rcx*4 + 0x5951c0]
mov ecx, edx
shr rcx, 0x18
mov r14d, r15d
mov dword [rsi + 0x8c], r11d
xor r14d, dword [rbx + rcx*4 + 0x594530]
movzx ecx, byte [rsi + 0x85]
mov r12d, dword [rbx + rcx*4 + 0x594930]
xor r14d, r12d
movzx ecx, dl
mov edi, dword [rbx + rcx*4 + 0x594d70]
mov ecx, r9d
shr rcx, 0x18
xor r14d, edi
mov ebp, dword [rbx + rcx*4 + 0x594530]
movzx ecx, byte [rsi + 0x8a]
mov esi, ebp
xor esi, dword [rbx + rcx*4 + 0x5951c0]
movzx ecx, byte [r10 + 0x89]
mov ecx, dword [rbx + rcx*4 + 0x594930]
xor esi, ecx
xor r12d, ecx
movzx ecx, r9b
mov ecx, dword [rbx + rcx*4 + 0x594d70]
xor edi, ecx
xor esi, ecx
mov ecx, r11d
shr rcx, 0x18
mov r8d, dword [rbx + rcx*4 + 0x594530]
xor ebp, r8d
movzx ecx, byte [r10 + 0x8e]
mov edx, dword [rbx + rcx*4 + 0x5951c0]
xor r15d, edx
movzx ecx, byte [r10 + 0x8d]
xor edx, dword [rbx + rcx*4 + 0x594930]
xor r8d, edx
movzx ecx, r11b
mov ecx, dword [rbx + rcx*4 + 0x594d70]
xor r8d, ecx
xor edi, ecx
mov ecx, r13d
shr rcx, 0x18
mov r9d, dword [rbx + rcx*4 + 0x594530]
xor ebp, r9d
movzx ecx, byte [r10 + 0x92]
mov ecx, dword [rbx + rcx*4 + 0x5951c0]
xor r9d, ecx
xor r15d, ecx
movzx ecx, byte [r10 + 0x91]
mov edx, dword [rbx + rcx*4 + 0x594930]
xor r12d, edx
movzx ecx, r13b
xor edx, dword [rbx + rcx*4 + 0x594d70]
mov ecx, edi
xor r9d, edx
mov ebx, r15d
xor ecx, r9d
shl ebx, 8
movzx r13d, cl
xor ebx, r8d
mov ecx, r15d
xor ecx, esi
and ecx, 0xff0000
or r13d, ecx
mov ecx, r12d
xor ecx, r8d
and ecx, 0xff00
or r13d, ecx
mov ecx, ebp
xor ecx, r14d
and ecx, 0xff000000
or r13d, ecx
mov ecx, edi
mov dword [r10 + 0x84], r13d
and ebx, 0xff0000
mov rdx, qword [rsp + 0x50]
shr ecx, 0x18
xor ecx, r14d
movzx ecx, cl
or ebx, ecx
mov ecx, r12d
shl ecx, 8
xor ecx, r9d
and ecx, 0xff00
or ebx, ecx
mov ecx, ebp
shl ecx, 8
xor ecx, esi
and ecx, 0xff000000
or ebx, ecx
mov ecx, edi
shr ecx, 0x10
xor ecx, esi
mov dword [r10 + 0x88], ebx
movzx ecx, cl
mov r10d, r15d
shl r10d, 0x10
xor r10d, r9d
shr r15d, 8
xor r15d, r14d
shr edi, 8
xor edi, r8d
and r10d, 0xff0000
or r10d, ecx
and r15d, 0xff0000
mov ecx, ebp
shl ebp, 0x18
shl ecx, 0x10
xor ebp, r9d
xor ecx, r8d
and ebp, 0xff000000
and ecx, 0xff000000
movzx r8d, dil
or r10d, ecx
or r8d, r15d
mov ecx, r12d
or r8d, ebp
shr ecx, 0x10
xor ecx, r14d
shr r12d, 8
and ecx, 0xff00
xor r12d, esi
mov rsi, rdx
or r10d, ecx
and r12d, 0xff00
mov dword [rdx + 0x8c], r10d
or r8d, r12d
mov r9d, r10d
mov dword [rdx + 0x90], r8d
mov r11d, r8d
xor r9d, dword [rsi + 0x7c]
mov edx, ebx
xor edx, dword [rsi + 0x78]
xor dword [rsi + 0x30], ebx
lea rbx, [0x140000000]
xor r11d, dword [rsi + 0x80]
xor dword [rsi + 0x34], r10d
xor dword [rsi + 0x38], r8d
mov dword [rsi + 0x78], edx
movzx ecx, byte [rsi + 0x7a]
mov dword [rsi + 0x7c], r9d
mov dword [rsi + 0x80], r11d
mov r15d, dword [rbx + rcx*4 + 0x5951c0]
mov ecx, edx
shr rcx, 0x18
mov r14d, r15d
xor r14d, dword [rbx + rcx*4 + 0x594530]
movzx ecx, byte [rsi + 0x79]
mov r12d, dword [rbx + rcx*4 + 0x594930]
xor r14d, r12d
movzx ecx, dl
mov edi, dword [rbx + rcx*4 + 0x594d70]
xor r14d, edi
mov ecx, r9d
shr rcx, 0x18
mov ebp, dword [rbx + rcx*4 + 0x594530]
mov r10, qword [rsp + 0x50]
movzx ecx, byte [rsi + 0x7e]
mov esi, ebp
xor esi, dword [rbx + rcx*4 + 0x5951c0]
movzx ecx, byte [r10 + 0x7d]
mov ecx, dword [rbx + rcx*4 + 0x594930]
xor esi, ecx
xor r12d, ecx
movzx ecx, r9b
mov ecx, dword [rbx + rcx*4 + 0x594d70]
xor edi, ecx
xor esi, ecx
mov ecx, r11d
shr rcx, 0x18
mov r8d, dword [rbx + rcx*4 + 0x594530]
xor ebp, r8d
movzx ecx, byte [r10 + 0x82]
mov edx, dword [rbx + rcx*4 + 0x5951c0]
xor r15d, edx
movzx ecx, byte [r10 + 0x81]
xor edx, dword [rbx + rcx*4 + 0x594930]
xor r8d, edx
movzx ecx, r11b
mov ecx, dword [rbx + rcx*4 + 0x594d70]
xor r8d, ecx
xor edi, ecx
mov ecx, r13d
shr rcx, 0x18
mov r9d, dword [rbx + rcx*4 + 0x594530]
xor ebp, r9d
movzx ecx, byte [r10 + 0x86]
mov ecx, dword [rbx + rcx*4 + 0x5951c0]
xor r15d, ecx
xor r9d, ecx
movzx ecx, byte [r10 + 0x85]
mov edx, dword [rbx + rcx*4 + 0x594930]
xor r12d, edx
movzx ecx, r13b
xor edx, dword [rbx + rcx*4 + 0x594d70]
mov ecx, edi
xor r9d, edx
mov ebx, r15d
xor ecx, r9d
shl ebx, 8
movzx r13d, cl
xor ebx, r8d
and ebx, 0xff0000
mov ecx, r15d
xor ecx, esi
and ecx, 0xff0000
or r13d, ecx
mov ecx, r12d
xor ecx, r8d
and ecx, 0xff00
or r13d, ecx
mov ecx, ebp
xor ecx, r14d
and ecx, 0xff000000
or r13d, ecx
mov ecx, edi
shr ecx, 0x18
xor ecx, r14d
mov dword [r10 + 0x78], r13d
movzx ecx, cl
or ebx, ecx
mov ecx, r12d
shl ecx, 8
xor ecx, r9d
and ecx, 0xff00
or ebx, ecx
mov ecx, ebp
shl ecx, 8
xor ecx, esi
and ecx, 0xff000000
or ebx, ecx
mov ecx, edi
mov dword [r10 + 0x7c], ebx
mov r10d, r15d
shl r10d, 0x10
xor r10d, r9d
and r10d, 0xff0000
mov rdx, qword [rsp + 0x50]
shr ecx, 0x10
xor ecx, esi
shr r15d, 8
movzx ecx, cl
xor r15d, r14d
or r10d, ecx
shr edi, 8
xor edi, r8d
mov ecx, ebp
shl ecx, 0x10
and r15d, 0xff0000
xor ecx, r8d
shl ebp, 0x18
and ecx, 0xff000000
movzx r8d, dil
or r10d, ecx
or r8d, r15d
mov r15, rdx
mov ecx, r12d
shr ecx, 0x10
xor ebp, r9d
xor ecx, r14d
shr r12d, 8
xor r12d, esi
and ecx, 0xff00
xor dword [r15 + 0x24], ebx
or r10d, ecx
mov dword [rdx + 0x80], r10d
mov r9d, r10d
xor r10d, dword [r15 + 0x28]
and ebp, 0xff000000
xor r10d, dword [rsp + 0x68]
or r8d, ebp
xor r9d, dword [r15 + 0x70]
and r12d, 0xff00
or r8d, r12d
mov dword [r15 + 0x28], r10d
lea r12, [0x140000000]
mov dword [rdx + 0x84], r8d
mov edx, ebx
mov dword [r15 + 0x70], r9d
xor edx, dword [r15 + 0x6c]
mov ecx, r8d
xor r8d, dword [r15 + 0x2c]
xor ecx, dword [r15 + 0x74]
xor r8d, eax
mov dword [r15 + 0x6c], edx
movzx eax, byte [r15 + 0x6e]
mov r11d, ecx
mov dword [r15 + 0x2c], r8d
mov dword [r15 + 0x74], r11d
mov ebp, dword [r12 + rax*4 + 0x5951c0]
mov eax, edx
shr rax, 0x18
mov esi, ebp
xor esi, dword [r12 + rax*4 + 0x594530]
movzx eax, byte [r15 + 0x6d]
mov r14d, dword [r12 + rax*4 + 0x594930]
xor esi, r14d
movzx eax, dl
mov r10d, dword [r12 + rax*4 + 0x594d70]
xor esi, r10d
mov eax, r9d
shr rax, 0x18
mov edi, dword [r12 + rax*4 + 0x594530]
mov ebx, edi
movzx eax, byte [r15 + 0x72]
xor ebx, dword [r12 + rax*4 + 0x5951c0]
movzx eax, byte [r15 + 0x71]
mov eax, dword [r12 + rax*4 + 0x594930]
xor ebx, eax
xor r14d, eax
movzx eax, r9b
mov eax, dword [r12 + rax*4 + 0x594d70]
xor ebx, eax
xor r10d, eax
mov eax, ecx
shr rax, 0x18
mov r8d, dword [r12 + rax*4 + 0x594530]
xor edi, r8d
movzx eax, byte [r15 + 0x76]
mov ecx, dword [r12 + rax*4 + 0x5951c0]
xor ebp, ecx
movzx eax, byte [r15 + 0x75]
xor ecx, dword [r12 + rax*4 + 0x594930]
xor r8d, ecx
movzx eax, r11b
mov eax, dword [r12 + rax*4 + 0x594d70]
xor r8d, eax
xor r10d, eax
mov eax, r13d
shr rax, 0x18
mov edx, dword [r12 + rax*4 + 0x594530]
xor edi, edx
movzx eax, byte [r15 + 0x7a]
mov eax, dword [r12 + rax*4 + 0x5951c0]
xor ebp, eax
xor edx, eax
movzx eax, byte [r15 + 0x79]
mov ecx, dword [r12 + rax*4 + 0x594930]
xor r14d, ecx
movzx eax, r13b
lea r13, [0x140000000]
xor ecx, dword [r13 + rax*4 + 0x594d70]
mov eax, r10d
xor edx, ecx
xor eax, edx
movzx ecx, al
mov eax, ebp
xor eax, ebx
and eax, 0xff0000
or ecx, eax
mov eax, r14d
xor eax, r8d
and eax, 0xff00
or ecx, eax
mov eax, edi
xor eax, esi
and eax, 0xff000000
or ecx, eax
mov eax, r10d
shr eax, 0x18
xor eax, esi
mov dword [r15 + 0x6c], ecx
movzx eax, al
mov ecx, ebp
shl ecx, 8
xor ecx, r8d
and ecx, 0xff0000
or ecx, eax
mov eax, r14d
shl eax, 8
xor eax, edx
and eax, 0xff00
or ecx, eax
mov eax, edi
shl eax, 8
xor eax, ebx
and eax, 0xff000000
or ecx, eax
mov eax, r10d
shr eax, 0x10
xor eax, ebx
mov dword [r15 + 0x70], ecx
movzx eax, al
mov ecx, ebp
shl ecx, 0x10
xor ecx, edx
and ecx, 0xff0000
or ecx, eax
mov eax, edi
shl eax, 0x10
xor eax, r8d
and eax, 0xff000000
or ecx, eax
mov eax, r14d
shr eax, 0x10
xor eax, esi
and eax, 0xff00
or ecx, eax
mov dword [r15 + 0x74], ecx
mov r9, qword [rsp + 0x60]
shr ebp, 8
shl edi, 0x18
xor ebp, esi
shr r14d, 8
and ebp, 0xff0000
shr r10d, 8
xor edi, edx
xor r10d, r8d
and edi, 0xff000000
xor r14d, ebx
movzx eax, r10b
or eax, ebp
and r14d, 0xff00
or eax, edi
or eax, r14d
mov dword [r15 + 0x78], eax
cmp r9, 4
jbe 0x1401eef19
mov rcx, qword [rsp + 0x58]
mov eax, dword [rcx]
add rcx, 4
sub r9, 4
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x60], r9
bswap eax
mov ecx, dword [r15 + 0x6c]
xor dword [r15 + 0x34], ecx
mov ecx, dword [r15 + 0x3c]
xor dword [r15 + 0x70], ecx
mov r9d, dword [r15 + 0x70]
mov r10d, r9d
xor r10d, dword [r15 + 0x60]
mov ecx, dword [r15 + 0x48]
xor dword [r15 + 0x7c], ecx
mov edx, dword [r15 + 0x78]
mov ebx, edx
xor dword [r15 + 0x20], edx
xor ebx, dword [r15 + 0x68]
xor dword [r15 + 0x18], r9d
mov rdx, qword [rsp + 0x50]
mov ecx, dword [r15 + 0x54]
mov r8d, dword [r15 + 0x74]
mov r11d, r8d
xor r11d, dword [r15 + 0x64]
xor dword [r15 + 0x1c], r8d
mov dword [rsp + 0x68], ecx
mov dword [r15 + 0x64], r11d
mov dword [r15 + 0x60], r10d
movzx ecx, byte [r15 + 0x62]
mov dword [r15 + 0x6c], eax
mov dword [r15 + 0x68], ebx
mov r15d, dword [r13 + rcx*4 + 0x5951c0]
mov r14d, r15d
mov ecx, r10d
shr rcx, 0x18
xor r14d, dword [r13 + rcx*4 + 0x594530]
movzx ecx, byte [rdx + 0x61]
mov r12d, dword [r13 + rcx*4 + 0x594930]
xor r14d, r12d
movzx ecx, r10b
mov r10, rdx
mov edi, dword [r13 + rcx*4 + 0x594d70]
mov ecx, r11d
shr rcx, 0x18
xor r14d, edi
mov ebp, dword [r13 + rcx*4 + 0x594530]
mov esi, ebp
movzx ecx, byte [rdx + 0x66]
xor esi, dword [r13 + rcx*4 + 0x5951c0]
movzx ecx, byte [rdx + 0x65]
mov ecx, dword [r13 + rcx*4 + 0x594930]
xor esi, ecx
xor r12d, ecx
movzx ecx, r11b
mov ecx, dword [r13 + rcx*4 + 0x594d70]
xor edi, ecx
xor esi, ecx
mov ecx, ebx
shr rcx, 0x18
mov r11d, dword [r13 + rcx*4 + 0x594530]
xor ebp, r11d
movzx ecx, byte [rdx + 0x6a]
mov edx, dword [r13 + rcx*4 + 0x5951c0]
xor r15d, edx
movzx ecx, byte [r10 + 0x69]
xor edx, dword [r13 + rcx*4 + 0x594930]
xor r11d, edx
movzx ecx, bl
mov ecx, dword [r13 + rcx*4 + 0x594d70]
xor r11d, ecx
xor edi, ecx
mov ecx, eax
shr rcx, 0x18
mov r9d, dword [r13 + rcx*4 + 0x594530]
xor ebp, r9d
movzx ecx, byte [r10 + 0x6e]
mov ecx, dword [r13 + rcx*4 + 0x5951c0]
xor r9d, ecx
xor r15d, ecx
movzx ecx, byte [r10 + 0x6d]
mov edx, dword [r13 + rcx*4 + 0x594930]
xor r12d, edx
movzx ecx, al
xor edx, dword [r13 + rcx*4 + 0x594d70]
mov ecx, edi
xor r9d, edx
xor ecx, r9d
mov rdx, qword [rsp + 0x50]
movzx r13d, cl
mov ebx, r15d
shl ebx, 8
mov ecx, r15d
xor ecx, esi
xor ebx, r11d
and ecx, 0xff0000
and ebx, 0xff0000
or r13d, ecx
mov ecx, r12d
xor ecx, r11d
and ecx, 0xff00
or r13d, ecx
mov ecx, ebp
xor ecx, r14d
and ecx, 0xff000000
or r13d, ecx
mov ecx, edi
shr ecx, 0x18
xor ecx, r14d
mov dword [r10 + 0x60], r13d
movzx ecx, cl
or ebx, ecx
mov ecx, r12d
shl ecx, 8
xor ecx, r9d
and ecx, 0xff00
or ebx, ecx
mov ecx, ebp
shl ecx, 8
xor ecx, esi
and ecx, 0xff000000
or ebx, ecx
mov ecx, edi
shr ecx, 0x10
xor ecx, esi
mov dword [r10 + 0x64], ebx
movzx ecx, cl
mov r10d, r15d
shl r10d, 0x10
xor r10d, r9d
shr r15d, 8
and r10d, 0xff0000
shr edi, 8
or r10d, ecx
xor edi, r11d
mov ecx, ebp
movzx r8d, dil
shl ecx, 0x10
xor r15d, r14d
xor ecx, r11d
shl ebp, 0x18
and ecx, 0xff000000
xor ebp, r9d
or r10d, ecx
and r15d, 0xff0000
mov ecx, r12d
or r8d, r15d
shr ecx, 0x10
and ebp, 0xff000000
shr r12d, 8
xor ecx, r14d
xor r12d, esi
and ecx, 0xff00
mov rsi, rdx
or r10d, ecx
or r8d, ebp
mov dword [rdx + 0x68], r10d
and r12d, 0xff00
mov r9d, r10d
or r8d, r12d
xor r9d, dword [rsi + 0x58]
mov r11d, r8d
mov dword [rdx + 0x6c], r8d
mov edx, dword [rsp + 0x68]
xor edx, ebx
mov dword [rsi + 0x58], r9d
xor r11d, dword [rsi + 0x5c]
mov dword [rsi + 0x54], edx
xor dword [rsi + 0xc], ebx
lea rbx, [0x140000000]
movzx ecx, byte [rsi + 0x56]
xor dword [rsi + 0x14], r8d
xor dword [rsi + 0x10], r10d
mov r10, qword [rsp + 0x50]
mov r15d, dword [rbx + rcx*4 + 0x5951c0]
mov ecx, edx
shr rcx, 0x18
mov r14d, r15d
mov dword [rsi + 0x5c], r11d
xor r14d, dword [rbx + rcx*4 + 0x594530]
movzx ecx, byte [rsi + 0x55]
mov r12d, dword [rbx + rcx*4 + 0x594930]
xor r14d, r12d
movzx ecx, dl
mov edi, dword [rbx + rcx*4 + 0x594d70]
mov ecx, r9d
shr rcx, 0x18
xor r14d, edi
mov ebp, dword [rbx + rcx*4 + 0x594530]
movzx ecx, byte [rsi + 0x5a]
mov esi, ebp
xor esi, dword [rbx + rcx*4 + 0x5951c0]
movzx ecx, byte [r10 + 0x59]
mov ecx, dword [rbx + rcx*4 + 0x594930]
xor esi, ecx
xor r12d, ecx
movzx ecx, r9b
mov ecx, dword [rbx + rcx*4 + 0x594d70]
xor edi, ecx
xor esi, ecx
mov ecx, r11d
shr rcx, 0x18
mov r8d, dword [rbx + rcx*4 + 0x594530]
xor ebp, r8d
movzx ecx, byte [r10 + 0x5e]
mov edx, dword [rbx + rcx*4 + 0x5951c0]
xor r15d, edx
movzx ecx, byte [r10 + 0x5d]
xor edx, dword [rbx + rcx*4 + 0x594930]
xor r8d, edx
movzx ecx, r11b
mov ecx, dword [rbx + rcx*4 + 0x594d70]
xor r8d, ecx
xor edi, ecx
mov ecx, r13d
shr rcx, 0x18
mov r9d, dword [rbx + rcx*4 + 0x594530]
xor ebp, r9d
movzx ecx, byte [r10 + 0x62]
mov ecx, dword [rbx + rcx*4 + 0x5951c0]
xor r9d, ecx
xor r15d, ecx
movzx ecx, byte [r10 + 0x61]
mov edx, dword [rbx + rcx*4 + 0x594930]
xor r12d, edx
movzx ecx, r13b
xor edx, dword [rbx + rcx*4 + 0x594d70]
mov ecx, edi
xor r9d, edx
mov ebx, r15d
xor ecx, r9d
shl ebx, 8
movzx r13d, cl
xor ebx, r8d
mov ecx, r15d
xor ecx, esi
and ecx, 0xff0000
or r13d, ecx
mov ecx, r12d
xor ecx, r8d
and ecx, 0xff00
or r13d, ecx
mov ecx, ebp
xor ecx, r14d
and ecx, 0xff000000
or r13d, ecx
mov ecx, edi
mov dword [r10 + 0x54], r13d
and ebx, 0xff0000
mov rdx, qword [rsp + 0x50]
shr ecx, 0x18
xor ecx, r14d
movzx ecx, cl
or ebx, ecx
mov ecx, r12d
shl ecx, 8
xor ecx, r9d
and ecx, 0xff00
or ebx, ecx
mov ecx, ebp
shl ecx, 8
xor ecx, esi
and ecx, 0xff000000
or ebx, ecx
mov ecx, edi
shr ecx, 0x10
xor ecx, esi
mov dword [r10 + 0x58], ebx
movzx ecx, cl
mov r10d, r15d
shl r10d, 0x10
xor r10d, r9d
shr r15d, 8
xor r15d, r14d
shr edi, 8
xor edi, r8d
and r10d, 0xff0000
or r10d, ecx
and r15d, 0xff0000
mov ecx, ebp
shl ebp, 0x18
shl ecx, 0x10
xor ebp, r9d
xor ecx, r8d
and ebp, 0xff000000
and ecx, 0xff000000
movzx r8d, dil
or r10d, ecx
or r8d, r15d
mov ecx, r12d
or r8d, ebp
shr ecx, 0x10
xor ecx, r14d
shr r12d, 8
and ecx, 0xff00
xor r12d, esi
mov rsi, rdx
or r10d, ecx
and r12d, 0xff00
mov dword [rdx + 0x5c], r10d
or r8d, r12d
mov r9d, r10d
mov dword [rdx + 0x60], r8d
mov r11d, r8d
xor r9d, dword [rsi + 0x4c]
mov edx, ebx
xor edx, dword [rsi + 0x48]
xor dword [rsi + 0x90], ebx
lea rbx, [0x140000000]
xor r11d, dword [rsi + 0x50]
xor dword [rsi + 0x94], r10d
xor dword [rsi + 0x98], r8d
mov dword [rsi + 0x48], edx
movzx ecx, byte [rsi + 0x4a]
mov dword [rsi + 0x4c], r9d
mov dword [rsi + 0x50], r11d
mov r15d, dword [rbx + rcx*4 + 0x5951c0]
mov ecx, edx
shr rcx, 0x18
mov r14d, r15d
xor r14d, dword [rbx + rcx*4 + 0x594530]
movzx ecx, byte [rsi + 0x49]
mov r12d, dword [rbx + rcx*4 + 0x594930]
xor r14d, r12d
movzx ecx, dl
mov edi, dword [rbx + rcx*4 + 0x594d70]
xor r14d, edi
mov ecx, r9d
shr rcx, 0x18
mov ebp, dword [rbx + rcx*4 + 0x594530]
mov r10, qword [rsp + 0x50]
movzx ecx, byte [rsi + 0x4e]
mov esi, ebp
xor esi, dword [rbx + rcx*4 + 0x5951c0]
movzx ecx, byte [r10 + 0x4d]
mov ecx, dword [rbx + rcx*4 + 0x594930]
xor esi, ecx
xor r12d, ecx
movzx ecx, r9b
mov ecx, dword [rbx + rcx*4 + 0x594d70]
xor edi, ecx
xor esi, ecx
mov ecx, r11d
shr rcx, 0x18
mov r8d, dword [rbx + rcx*4 + 0x594530]
xor ebp, r8d
movzx ecx, byte [r10 + 0x52]
mov edx, dword [rbx + rcx*4 + 0x5951c0]
xor r15d, edx
movzx ecx, byte [r10 + 0x51]
xor edx, dword [rbx + rcx*4 + 0x594930]
xor r8d, edx
movzx ecx, r11b
mov ecx, dword [rbx + rcx*4 + 0x594d70]
xor r8d, ecx
xor edi, ecx
mov ecx, r13d
shr rcx, 0x18
mov r9d, dword [rbx + rcx*4 + 0x594530]
xor ebp, r9d
movzx ecx, byte [r10 + 0x56]
mov ecx, dword [rbx + rcx*4 + 0x5951c0]
xor r15d, ecx
xor r9d, ecx
movzx ecx, byte [r10 + 0x55]
mov edx, dword [rbx + rcx*4 + 0x594930]
xor r12d, edx
movzx ecx, r13b
xor edx, dword [rbx + rcx*4 + 0x594d70]
mov ecx, edi
xor r9d, edx
mov ebx, r15d
xor ecx, r9d
shl ebx, 8
movzx r13d, cl
xor ebx, r8d
and ebx, 0xff0000
mov ecx, r15d
xor ecx, esi
and ecx, 0xff0000
or r13d, ecx
mov ecx, r12d
xor ecx, r8d
and ecx, 0xff00
or r13d, ecx
mov ecx, ebp
xor ecx, r14d
and ecx, 0xff000000
or r13d, ecx
mov ecx, edi
shr ecx, 0x18
xor ecx, r14d
mov dword [r10 + 0x48], r13d
movzx ecx, cl
or ebx, ecx
mov ecx, r12d
shl ecx, 8
xor ecx, r9d
and ecx, 0xff00
or ebx, ecx
mov ecx, ebp
shl ecx, 8
xor ecx, esi
and ecx, 0xff000000
or ebx, ecx
mov ecx, edi
mov dword [r10 + 0x4c], ebx
mov r10d, r15d
shl r10d, 0x10
xor r10d, r9d
and r10d, 0xff0000
mov rdx, qword [rsp + 0x50]
shr ecx, 0x10
xor ecx, esi
shr r15d, 8
movzx ecx, cl
xor r15d, r14d
or r10d, ecx
shr edi, 8
xor edi, r8d
mov ecx, ebp
shl ecx, 0x10
and r15d, 0xff0000
xor ecx, r8d
shl ebp, 0x18
and ecx, 0xff000000
movzx r8d, dil
or r10d, ecx
or r8d, r15d
mov r15, rdx
mov ecx, r12d
shr ecx, 0x10
xor ebp, r9d
xor ecx, r14d
shr r12d, 8
xor r12d, esi
and ecx, 0xff00
xor dword [r15 + 0x84], ebx
or r10d, ecx
mov ecx, dword [rsp + 0x68]
and ebp, 0xff000000
or r8d, ebp
mov dword [rdx + 0x50], r10d
and r12d, 0xff00
mov r9d, r10d
xor r9d, dword [r15 + 0x40]
or r8d, r12d
lea r12, [0x140000000]
mov dword [rdx + 0x54], r8d
mov edx, ebx
mov dword [r15 + 0x40], r9d
xor edx, dword [r15 + 0x3c]
mov r11d, r8d
xor r8d, dword [r15 + 0x8c]
xor ecx, r10d
xor r11d, dword [r15 + 0x44]
xor r8d, eax
xor dword [r15 + 0x88], ecx
mov dword [r15 + 0x3c], edx
movzx eax, byte [r15 + 0x3e]
mov dword [r15 + 0x8c], r8d
mov dword [r15 + 0x44], r11d
mov ebp, dword [r12 + rax*4 + 0x5951c0]
mov eax, edx
shr rax, 0x18
mov esi, ebp
xor esi, dword [r12 + rax*4 + 0x594530]
movzx eax, byte [r15 + 0x3d]
mov r14d, dword [r12 + rax*4 + 0x594930]
xor esi, r14d
movzx eax, dl
mov r10d, dword [r12 + rax*4 + 0x594d70]
xor esi, r10d
mov eax, r9d
shr rax, 0x18
mov edi, dword [r12 + rax*4 + 0x594530]
mov ebx, edi
movzx eax, byte [r15 + 0x42]
xor ebx, dword [r12 + rax*4 + 0x5951c0]
movzx eax, byte [r15 + 0x41]
mov eax, dword [r12 + rax*4 + 0x594930]
xor ebx, eax
xor r14d, eax
movzx eax, r9b
mov eax, dword [r12 + rax*4 + 0x594d70]
xor ebx, eax
xor r10d, eax
mov eax, r11d
shr rax, 0x18
mov r8d, dword [r12 + rax*4 + 0x594530]
xor edi, r8d
movzx eax, byte [r15 + 0x46]
mov ecx, dword [r12 + rax*4 + 0x5951c0]
xor ebp, ecx
movzx eax, byte [r15 + 0x45]
xor ecx, dword [r12 + rax*4 + 0x594930]
xor r8d, ecx
movzx eax, r11b
mov eax, dword [r12 + rax*4 + 0x594d70]
xor r8d, eax
xor r10d, eax
mov eax, r13d
shr rax, 0x18
mov edx, dword [r12 + rax*4 + 0x594530]
xor edi, edx
movzx eax, byte [r15 + 0x4a]
mov eax, dword [r12 + rax*4 + 0x5951c0]
xor ebp, eax
xor edx, eax
movzx eax, byte [r15 + 0x49]
mov ecx, dword [r12 + rax*4 + 0x594930]
xor r14d, ecx
movzx eax, r13b
lea r13, [0x140000000]
xor ecx, dword [r13 + rax*4 + 0x594d70]
mov eax, r10d
xor edx, ecx
xor eax, edx
movzx ecx, al
mov eax, ebp
xor eax, ebx
and eax, 0xff0000
or ecx, eax
mov eax, r14d
xor eax, r8d
and eax, 0xff00
or ecx, eax
mov eax, edi
xor eax, esi
and eax, 0xff000000
or ecx, eax
mov eax, r10d
shr eax, 0x18
xor eax, esi
mov dword [r15 + 0x3c], ecx
movzx eax, al
mov ecx, ebp
shl ecx, 8
xor ecx, r8d
and ecx, 0xff0000
or ecx, eax
mov eax, r14d
shl eax, 8
xor eax, edx
and eax, 0xff00
or ecx, eax
mov eax, edi
shl eax, 8
xor eax, ebx
and eax, 0xff000000
or ecx, eax
mov eax, r10d
shr eax, 0x10
xor eax, ebx
mov dword [r15 + 0x40], ecx
movzx eax, al
mov ecx, ebp
shl ecx, 0x10
xor ecx, edx
and ecx, 0xff0000
or ecx, eax
mov eax, edi
shl eax, 0x10
xor eax, r8d
and eax, 0xff000000
or ecx, eax
mov eax, r14d
shr eax, 0x10
xor eax, esi
and eax, 0xff00
or ecx, eax
mov dword [r15 + 0x44], ecx
shr r10d, 8
mov r9, qword [rsp + 0x60]
xor r10d, r8d
shr ebp, 8
shl edi, 0x18
xor ebp, esi
shr r14d, 8
and ebp, 0xff0000
xor edi, edx
movzx eax, r10b
or eax, ebp
and edi, 0xff000000
xor r14d, ebx
or eax, edi
and r14d, 0xff00
or eax, r14d
mov dword [r15 + 0x48], eax
cmp r9, 4
jbe 0x1401eef11
mov rcx, qword [rsp + 0x58]
mov eax, dword [rcx]
add rcx, 4
sub r9, 4
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x60], r9
bswap eax
mov ecx, dword [r15 + 0x3c]
xor dword [r15 + 0x94], ecx
mov ecx, dword [r15 + 0xc]
xor dword [r15 + 0x40], ecx
mov r9d, dword [r15 + 0x40]
mov r10d, r9d
xor r10d, dword [r15 + 0x30]
mov ecx, dword [r15 + 0x18]
xor dword [r15 + 0x4c], ecx
mov edx, dword [r15 + 0x48]
mov ebx, edx
xor dword [r15 + 0x80], edx
xor ebx, dword [r15 + 0x38]
xor dword [r15 + 0x78], r9d
mov rdx, qword [rsp + 0x50]
mov ecx, dword [r15 + 0x24]
mov r8d, dword [r15 + 0x44]
mov r11d, r8d
xor r11d, dword [r15 + 0x34]
xor dword [r15 + 0x7c], r8d
mov dword [rsp + 0x68], ecx
mov dword [r15 + 0x34], r11d
mov dword [r15 + 0x30], r10d
movzx ecx, byte [r15 + 0x32]
mov dword [r15 + 0x3c], eax
mov dword [r15 + 0x38], ebx
mov r15d, dword [r13 + rcx*4 + 0x5951c0]
mov r14d, r15d
mov ecx, r10d
shr rcx, 0x18
xor r14d, dword [r13 + rcx*4 + 0x594530]
movzx ecx, byte [rdx + 0x31]
mov r12d, dword [r13 + rcx*4 + 0x594930]
xor r14d, r12d
movzx ecx, r10b
mov r10, rdx
mov edi, dword [r13 + rcx*4 + 0x594d70]
mov ecx, r11d
shr rcx, 0x18
xor r14d, edi
mov ebp, dword [r13 + rcx*4 + 0x594530]
mov esi, ebp
movzx ecx, byte [rdx + 0x36]
xor esi, dword [r13 + rcx*4 + 0x5951c0]
movzx ecx, byte [rdx + 0x35]
mov ecx, dword [r13 + rcx*4 + 0x594930]
xor esi, ecx
xor r12d, ecx
movzx ecx, r11b
mov ecx, dword [r13 + rcx*4 + 0x594d70]
xor edi, ecx
xor esi, ecx
mov ecx, ebx
shr rcx, 0x18
mov r11d, dword [r13 + rcx*4 + 0x594530]
xor ebp, r11d
movzx ecx, byte [rdx + 0x3a]
mov edx, dword [r13 + rcx*4 + 0x5951c0]
xor r15d, edx
movzx ecx, byte [r10 + 0x39]
xor edx, dword [r13 + rcx*4 + 0x594930]
xor r11d, edx
movzx ecx, bl
mov ecx, dword [r13 + rcx*4 + 0x594d70]
xor r11d, ecx
xor edi, ecx
mov ecx, eax
shr rcx, 0x18
mov r9d, dword [r13 + rcx*4 + 0x594530]
xor ebp, r9d
movzx ecx, byte [r10 + 0x3e]
mov ecx, dword [r13 + rcx*4 + 0x5951c0]
xor r9d, ecx
xor r15d, ecx
movzx ecx, byte [r10 + 0x3d]
mov edx, dword [r13 + rcx*4 + 0x594930]
xor r12d, edx
movzx ecx, al
xor edx, dword [r13 + rcx*4 + 0x594d70]
mov ecx, edi
xor r9d, edx
xor ecx, r9d
mov rdx, qword [rsp + 0x50]
movzx r13d, cl
mov ebx, r15d
shl ebx, 8
mov ecx, r15d
xor ecx, esi
xor ebx, r11d
and ecx, 0xff0000
and ebx, 0xff0000
or r13d, ecx
mov ecx, r12d
xor ecx, r11d
and ecx, 0xff00
or r13d, ecx
mov ecx, ebp
xor ecx, r14d
and ecx, 0xff000000
or r13d, ecx
mov ecx, edi
shr ecx, 0x18
xor ecx, r14d
mov dword [r10 + 0x30], r13d
movzx ecx, cl
or ebx, ecx
mov ecx, r12d
shl ecx, 8
xor ecx, r9d
and ecx, 0xff00
or ebx, ecx
mov ecx, ebp
shl ecx, 8
xor ecx, esi
and ecx, 0xff000000
or ebx, ecx
mov ecx, edi
shr ecx, 0x10
xor ecx, esi
mov dword [r10 + 0x34], ebx
movzx ecx, cl
mov r10d, r15d
shl r10d, 0x10
xor r10d, r9d
shr r15d, 8
and r10d, 0xff0000
shr edi, 8
or r10d, ecx
xor edi, r11d
mov ecx, ebp
movzx r8d, dil
shl ecx, 0x10
xor r15d, r14d
xor ecx, r11d
shl ebp, 0x18
and ecx, 0xff000000
xor ebp, r9d
or r10d, ecx
and r15d, 0xff0000
mov ecx, r12d
or r8d, r15d
shr ecx, 0x10
and ebp, 0xff000000
shr r12d, 8
xor ecx, r14d
xor r12d, esi
and ecx, 0xff00
mov rsi, rdx
or r10d, ecx
or r8d, ebp
mov dword [rdx + 0x38], r10d
and r12d, 0xff00
mov r9d, r10d
or r8d, r12d
xor r9d, dword [rsi + 0x28]
mov r11d, r8d
mov dword [rdx + 0x3c], r8d
mov edx, dword [rsp + 0x68]
xor edx, ebx
mov dword [rsi + 0x28], r9d
xor r11d, dword [rsi + 0x2c]
mov dword [rsi + 0x24], edx
xor dword [rsi + 0x6c], ebx
xor dword [rsi + 0x70], r10d
movzx ecx, byte [rsi + 0x26]
xor dword [rsi + 0x74], r8d
lea r8, [0x140000000]
mov dword [rsi + 0x2c], r11d
mov r15d, dword [r8 + rcx*4 + 0x5951c0]
mov ecx, edx
shr rcx, 0x18
mov ebp, r15d
xor ebp, dword [r8 + rcx*4 + 0x594530]
movzx ecx, byte [rsi + 0x25]
mov r14d, dword [r8 + rcx*4 + 0x594930]
xor ebp, r14d
movzx ecx, dl
mov rdx, qword [rsp + 0x50]
mov edi, dword [r8 + rcx*4 + 0x594d70]
xor ebp, edi
mov ecx, r9d
shr rcx, 0x18
mov r12d, dword [r8 + rcx*4 + 0x594530]
movzx ecx, byte [rsi + 0x2a]
mov esi, r12d
xor esi, dword [r8 + rcx*4 + 0x5951c0]
movzx ecx, byte [rdx + 0x29]
mov ecx, dword [r8 + rcx*4 + 0x594930]
xor esi, ecx
xor r14d, ecx
movzx ecx, r9b
mov r9, rdx
mov ecx, dword [r8 + rcx*4 + 0x594d70]
xor esi, ecx
xor edi, ecx
mov ecx, r11d
shr rcx, 0x18
mov ebx, dword [r8 + rcx*4 + 0x594530]
xor r12d, ebx
movzx ecx, byte [rdx + 0x2e]
mov edx, dword [r8 + rcx*4 + 0x5951c0]
xor r15d, edx
movzx ecx, byte [r9 + 0x2d]
xor ebx, dword [r8 + rcx*4 + 0x594930]
movzx ecx, r11b
xor ebx, edx
mov ecx, dword [r8 + rcx*4 + 0x594d70]
xor ebx, ecx
xor edi, ecx
mov ecx, r13d
shr rcx, 0x18
mov r10d, dword [r8 + rcx*4 + 0x594530]
xor r12d, r10d
movzx ecx, byte [r9 + 0x32]
mov r11d, r12d
shl r11d, 8
xor r11d, esi
mov ecx, dword [r8 + rcx*4 + 0x5951c0]
xor r10d, ecx
xor r15d, ecx
movzx ecx, byte [r9 + 0x31]
mov edx, dword [r8 + rcx*4 + 0x594930]
xor r14d, edx
movzx ecx, r13b
mov r13d, r12d
xor r13d, ebp
and r13d, 0xff000000
xor r10d, dword [r8 + rcx*4 + 0x594d70]
xor r10d, edx
mov ecx, r10d
xor ecx, edi
movzx edx, cl
mov ecx, esi
xor ecx, r15d
or r13d, edx
and ecx, 0xff0000
or r13d, ecx
mov ecx, ebx
xor ecx, r14d
and ecx, 0xff00
or r13d, ecx
mov dword [r9 + 0x24], r13d
and r11d, 0xff000000
mov rdx, qword [rsp + 0x50]
mov ecx, r15d
shl ecx, 8
xor ecx, ebx
and ecx, 0xff0000
or r11d, ecx
mov ecx, edi
shr ecx, 0x18
xor ecx, ebp
movzx ecx, cl
or r11d, ecx
mov ecx, r14d
shl ecx, 8
xor ecx, r10d
and ecx, 0xff00
or r11d, ecx
mov ecx, r15d
shl ecx, 0x10
xor ecx, r10d
mov dword [r9 + 0x28], r11d
and ecx, 0xff0000
shr r15d, 8
mov r9d, r12d
xor r15d, ebp
shl r12d, 0x18
and r15d, 0xff0000
xor r12d, r10d
shl r9d, 0x10
xor r9d, ebx
and r12d, 0xff000000
and r9d, 0xff000000
or r9d, ecx
mov ecx, edi
shr ecx, 0x10
xor ecx, esi
shr edi, 8
movzx ecx, cl
xor edi, ebx
or r9d, ecx
mov rbx, rdx
mov ecx, r14d
shr r14d, 8
shr ecx, 0x10
xor r14d, esi
xor ecx, ebp
and r14d, 0xff00
xor dword [rbx + 0x60], r11d
and ecx, 0xff00
or r9d, ecx
movzx ecx, dil
xor dword [rbx + 0x64], r9d
or r12d, ecx
or r12d, r15d
mov dword [rdx + 0x2c], r9d
or r12d, r14d
mov r8d, r9d
xor r8d, dword [rbx + 0x1c]
mov r10d, r12d
xor dword [rbx + 0x68], r12d
xor r10d, dword [rbx + 0x20]
mov dword [rdx + 0x30], r12d
mov edx, r11d
xor edx, dword [rbx + 0x18]
lea r12, [0x140000000]
mov dword [rbx + 0x18], edx
movzx ecx, byte [rbx + 0x1a]
mov dword [rbx + 0x1c], r8d
mov dword [rbx + 0x20], r10d
mov r14d, dword [r12 + rcx*4 + 0x5951c0]
mov ecx, edx
shr rcx, 0x18
mov ebp, r14d
xor ebp, dword [r12 + rcx*4 + 0x594530]
movzx ecx, byte [rbx + 0x19]
mov r15d, dword [r12 + rcx*4 + 0x594930]
xor ebp, r15d
movzx ecx, dl
mov r11d, dword [r12 + rcx*4 + 0x594d70]
xor ebp, r11d
mov ecx, r8d
shr rcx, 0x18
mov esi, dword [r12 + rcx*4 + 0x594530]
mov edi, esi
movzx ecx, byte [rbx + 0x1e]
xor edi, dword [r12 + rcx*4 + 0x5951c0]
movzx ecx, byte [rbx + 0x1d]
mov ecx, dword [r12 + rcx*4 + 0x594930]
xor edi, ecx
xor r15d, ecx
movzx ecx, r8b
mov ecx, dword [r12 + rcx*4 + 0x594d70]
xor r11d, ecx
xor edi, ecx
mov ecx, r10d
shr rcx, 0x18
mov r8d, dword [r12 + rcx*4 + 0x594530]
xor esi, r8d
movzx ecx, byte [rbx + 0x22]
mov edx, dword [r12 + rcx*4 + 0x5951c0]
xor r14d, edx
movzx ecx, byte [rbx + 0x21]
xor edx, dword [r12 + rcx*4 + 0x594930]
movzx ecx, r10b
xor r8d, edx
mov ecx, dword [r12 + rcx*4 + 0x594d70]
xor r8d, ecx
xor r11d, ecx
mov ecx, r13d
shr rcx, 0x18
mov r9d, dword [r12 + rcx*4 + 0x594530]
xor esi, r9d
movzx ecx, byte [rbx + 0x26]
mov ecx, dword [r12 + rcx*4 + 0x5951c0]
xor r14d, ecx
xor r9d, ecx
mov r10d, r14d
movzx ecx, byte [rbx + 0x25]
shl r10d, 0x10
mov edx, dword [r12 + rcx*4 + 0x594930]
xor r15d, edx
movzx ecx, r13b
lea r13, [0x140000000]
xor edx, dword [r13 + rcx*4 + 0x594d70]
mov ecx, r11d
xor r9d, edx
mov rdx, qword [rsp + 0x50]
xor ecx, r9d
movzx r12d, cl
mov ecx, r14d
xor ecx, edi
and ecx, 0xff0000
or r12d, ecx
mov ecx, r15d
xor ecx, r8d
and ecx, 0xff00
or r12d, ecx
mov ecx, esi
xor ecx, ebp
and ecx, 0xff000000
or r12d, ecx
mov ecx, r11d
shr ecx, 0x18
xor ecx, ebp
mov dword [rbx + 0x18], r12d
movzx ecx, cl
mov ebx, r14d
shl ebx, 8
xor ebx, r8d
and ebx, 0xff0000
or ebx, ecx
mov ecx, r15d
shl ecx, 8
xor ecx, r9d
and ecx, 0xff00
or ebx, ecx
mov ecx, esi
shl ecx, 8
xor ecx, edi
and ecx, 0xff000000
or ebx, ecx
mov dword [rdx + 0x1c], ebx
xor r10d, r9d
and r10d, 0xff0000
shr r14d, 8
mov ecx, r11d
xor r14d, ebp
shr ecx, 0x10
and r14d, 0xff0000
xor ecx, edi
shr r11d, 8
movzx ecx, cl
xor r11d, r8d
or r10d, ecx
mov ecx, esi
shl ecx, 0x10
xor ecx, r8d
shl esi, 0x18
and ecx, 0xff000000
movzx r8d, r11b
or r10d, ecx
xor esi, r9d
or r8d, r14d
and esi, 0xff000000
or r8d, esi
mov ecx, r15d
shr ecx, 0x10
xor ecx, ebp
shr r15d, 8
and ecx, 0xff00
xor r15d, edi
or r10d, ecx
and r15d, 0xff00
mov ecx, dword [rsp + 0x68]
or r8d, r15d
mov r15, rdx
mov dword [rdx + 0x20], r10d
xor ecx, r10d
mov dword [rdx + 0x24], r8d
mov edx, dword [rdx + 0xc]
mov r11d, r8d
xor r8d, eax
xor edx, ebx
xor dword [r15 + 0x54], ebx
mov r9d, r10d
xor r9d, dword [r15 + 0x10]
xor r11d, dword [r15 + 0x14]
xor dword [r15 + 0x5c], r8d
xor dword [r15 + 0x58], ecx
mov dword [r15 + 0xc], edx
movzx eax, byte [r15 + 0xe]
mov dword [r15 + 0x10], r9d
mov dword [r15 + 0x14], r11d
mov ebp, dword [r13 + rax*4 + 0x5951c0]
mov eax, edx
shr rax, 0x18
mov esi, ebp
xor esi, dword [r13 + rax*4 + 0x594530]
movzx eax, byte [r15 + 0xd]
mov r14d, dword [r13 + rax*4 + 0x594930]
xor esi, r14d
movzx eax, dl
mov r10d, dword [r13 + rax*4 + 0x594d70]
xor esi, r10d
mov eax, r9d
shr rax, 0x18
mov edi, dword [r13 + rax*4 + 0x594530]
mov ebx, edi
movzx eax, byte [r15 + 0x12]
xor ebx, dword [r13 + rax*4 + 0x5951c0]
movzx eax, byte [r15 + 0x11]
mov eax, dword [r13 + rax*4 + 0x594930]
xor ebx, eax
xor r14d, eax
movzx eax, r9b
mov eax, dword [r13 + rax*4 + 0x594d70]
xor ebx, eax
xor r10d, eax
mov eax, r11d
shr rax, 0x18
mov r8d, dword [r13 + rax*4 + 0x594530]
xor edi, r8d
movzx eax, byte [r15 + 0x16]
mov ecx, dword [r13 + rax*4 + 0x5951c0]
movzx eax, byte [r15 + 0x15]
xor ebp, ecx
xor ecx, dword [r13 + rax*4 + 0x594930]
xor r8d, ecx
movzx eax, r11b
mov eax, dword [r13 + rax*4 + 0x594d70]
xor r8d, eax
xor r10d, eax
mov eax, r12d
shr rax, 0x18
mov edx, dword [r13 + rax*4 + 0x594530]
xor edi, edx
movzx eax, byte [r15 + 0x1a]
mov eax, dword [r13 + rax*4 + 0x5951c0]
xor ebp, eax
xor edx, eax
movzx eax, byte [r15 + 0x19]
mov ecx, dword [r13 + rax*4 + 0x594930]
xor r14d, ecx
movzx eax, r12b
xor ecx, dword [r13 + rax*4 + 0x594d70]
mov eax, r10d
xor edx, ecx
xor eax, edx
movzx ecx, al
mov eax, ebp
xor eax, ebx
and eax, 0xff0000
or ecx, eax
mov eax, r14d
xor eax, r8d
and eax, 0xff00
or ecx, eax
mov eax, edi
xor eax, esi
and eax, 0xff000000
or ecx, eax
mov eax, r10d
shr eax, 0x18
xor eax, esi
mov dword [r15 + 0xc], ecx
movzx eax, al
mov ecx, ebp
shl ecx, 8
xor ecx, r8d
and ecx, 0xff0000
or ecx, eax
mov eax, r14d
shl eax, 8
xor eax, edx
and eax, 0xff00
or ecx, eax
mov eax, edi
shl eax, 8
xor eax, ebx
and eax, 0xff000000
or ecx, eax
mov eax, r10d
shr eax, 0x10
xor eax, ebx
mov dword [r15 + 0x10], ecx
movzx eax, al
mov ecx, ebp
shl ecx, 0x10
xor ecx, edx
shr r10d, 8
and ecx, 0xff0000
or ecx, eax
mov eax, edi
shl eax, 0x10
xor eax, r8d
and eax, 0xff000000
or ecx, eax
mov eax, r14d
shr eax, 0x10
xor eax, esi
and eax, 0xff00
or ecx, eax
xor r10d, r8d
mov dword [r15 + 0x14], ecx
movzx eax, r10b
mov r9, qword [rsp + 0x60]
shr ebp, 8
shl edi, 0x18
xor ebp, esi
shr r14d, 8
and ebp, 0xff0000
or eax, ebp
xor edi, edx
and edi, 0xff000000
xor r14d, ebx
or eax, edi
and r14d, 0xff00
or eax, r14d
mov dword [r15 + 0x18], eax
cmp r9, 4
jbe 0x1401eef0a
mov rcx, qword [rsp + 0x58]
mov eax, dword [rcx]
add rcx, 4
sub r9, 4
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x60], r9
bswap eax
jmp 0x1401ed32a
xor ecx, ecx
mov r8d, ecx
jmp 0x1401eef21
mov r8d, 2
jmp 0x1401eef1f
mov r8d, 1
xor ecx, ecx
mov rdx, qword [rsp + 0x58]
mov r14, qword [rsp + 8]
mov r13, qword [rsp + 0x10]
mov r12, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x28]
mov rbp, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x38]
mov dword [r15 + 4], r9d
test r9, r9
je 0x1401eef72
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rdx]
lea rdx, [rdx + 1]
shl ecx, 8
or ecx, eax
sub r9, 1
jne 0x1401eef60
mov dword [r15 + 8], r8d
mov dword [r15], ecx
add rsp, 0x40
pop r15
ret