Function at 0x140046d48
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0xb0
mov rax, qword [0x1400fe008]
xor rax, rsp
mov qword [rbp + 0x27], rax
mov al, byte [rcx]
mov r15, rcx
mov dword [rbp + 0xb], edx
mov qword [rbp - 9], rcx
test al, al
jne 0x140046d90
xor eax, eax
jmp 0x140049229
dec al
cmp al, 4
ja 0x140049226
mov eax, dword [rcx + 0x444]
mov esi, 3
neg eax
mov r9d, 0x176a
mov eax, dword [rcx + 0x428]
sbb r8d, r8d
add eax, esi
cdq
and r8d, 5
and edx, esi
inc r8d
mov dword [rbp + 7], r8d
lea r13d, [rdx + rax]
mov eax, dword [rcx + 0x42c]
add eax, esi
sar r13d, 2
cdq
shl r13d, 4
and edx, esi
mov dword [rbp - 0x31], r13d
lea ebx, [rdx + rax]
sar ebx, 2
imul ebx, r13d
shl ebx, 2
mov ecx, ebx
mov dword [rbp - 0x3d], ebx
imul ecx, r8d
lea r8, str.DxBaseImage.cpp
call fcn.140057880
mov qword [rbp - 1], rax
mov rdi, rax
test rax, rax
je 0x140049226
mov eax, dword [r15 + 0x428]
mov r10d, 0xff
add eax, esi
cdq
and edx, esi
add eax, edx
sar eax, 2
mov r11d, eax
mov dword [rbp - 0x41], eax
mov eax, dword [r15 + 0x42c]
add eax, esi
cdq
and edx, esi
add eax, edx
sar eax, 2
mov r14d, eax
mov dword [rbp - 0x2d], eax
xor eax, eax
mov dword [rbp - 0x11], eax
movzx ecx, byte [r15]
mov r12, qword [r15 + 0x438]
imul eax, ebx
mov edx, eax
add rdx, rdi
mov qword [rbp - 0x21], rdx
sub ecx, 1
je 0x140048e4d
sub ecx, 1
je 0x140048440
sub ecx, 1
je 0x140047fa0
sub ecx, 1
je 0x1400473e4
cmp ecx, 1
jne 0x14004919b
xor eax, eax
mov dword [rbp - 0x49], eax
test r14d, r14d
je 0x14004919b
and dword [rbp - 0x45], 0
test r11d, r11d
je 0x1400473d1
mov r14d, dword [rbp - 0x41]
imul eax, r13d
mov r15d, r13d
mov r13d, dword [rbp - 0x45]
mov byte [rbp + 0x12], r10b
mov byte [rbp + 0x16], r10b
shl eax, 2
mov r8d, eax
mov qword [rbp - 0x29], r8
mov byte [rbp + 0x1a], r10b
mov byte [rbp + 0x1e], r10b
mov ecx, r13d
shl ecx, 4
add rcx, r8
movzx r8d, word [r12 + 8]
add rcx, rdx
mov eax, r8d
and eax, 0x1f
mov qword [rbp - 0x39], rcx
imul ecx, eax, 0xff
mov eax, 0x84210843
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, r8d
shr eax, 5
and eax, 0x3f
movzx edi, dl
imul ecx, eax, 0xff
mov eax, 0x82082083
shr r8d, 0xb
mov byte [rbp + 0xf], dil
imul ecx
add edx, ecx
imul ecx, r8d, 0xff
movzx r8d, word [r12 + 0xa]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0x84210843
movzx ebx, dl
imul ecx
mov byte [rbp + 0x10], bl
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, r8d
and eax, 0x1f
movzx r11d, dl
imul ecx, eax, 0xff
mov eax, 0x84210843
mov byte [rbp + 0x11], r11b
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, r8d
shr eax, 5
and eax, 0x3f
movzx r10d, dl
imul ecx, eax, 0xff
mov eax, 0x82082083
shr r8d, 0xb
mov byte [rbp + 0x13], r10b
imul ecx
add edx, ecx
imul ecx, r8d, 0xff
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0x84210843
movzx r9d, dl
imul ecx
mov byte [rbp + 0x14], r9b
add edx, ecx
lea ecx, [r10 + rdi*2]
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0xaaaaaaab
movzx r8d, dl
mov byte [rbp + 0x15], r8b
mul ecx
lea ecx, [r9 + rbx*2]
mov eax, 0xaaaaaaab
shr edx, 1
mov byte [rbp + 0x17], dl
mul ecx
lea ecx, [r8 + r11*2]
mov eax, 0xaaaaaaab
shr edx, 1
mov byte [rbp + 0x18], dl
mul ecx
lea ecx, [rdi + r10*2]
mov r10d, 0xaaaaaaab
shr edx, 1
mov eax, r10d
mov byte [rbp + 0x19], dl
mul ecx
lea ecx, [rbx + r9*2]
mov eax, r10d
shr edx, 1
mov byte [rbp + 0x1b], dl
mul ecx
lea ecx, [r11 + r8*2]
mov eax, r10d
mov r11, qword [rbp - 0x39]
shr edx, 1
mov byte [rbp + 0x1c], dl
mul ecx
mov ecx, dword [r12 + 0xc]
lea rbx, [r15 + r11]
shr edx, 1
lea r10, [r15 + rbx]
mov byte [rbp + 0x1d], dl
mov eax, ecx
mov edx, 3
and rax, rdx
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [r11], eax
mov eax, ecx
shr rax, 2
and rax, rdx
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [r11 + 4], eax
mov eax, ecx
shr rax, 4
and rax, rdx
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [r11 + 8], eax
mov eax, ecx
shr rax, 6
and rax, rdx
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [r11 + 0xc], eax
mov eax, ecx
shr rax, 8
and rax, rdx
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [rbx], eax
mov eax, ecx
shr rax, 0xa
and rax, rdx
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [rbx + 4], eax
mov eax, ecx
shr rax, 0xc
and rax, rdx
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [rbx + 8], eax
mov eax, ecx
shr rax, 0xe
and rax, rdx
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [rbx + 0xc], eax
mov eax, ecx
shr rax, 0x10
and rax, rdx
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [r10], eax
mov eax, ecx
shr rax, 0x12
and rax, rdx
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [r10 + 4], eax
mov eax, ecx
shr rax, 0x14
and rax, rdx
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [r10 + 8], eax
mov eax, ecx
shr rax, 0x16
and rax, rdx
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [r10 + 0xc], eax
mov eax, ecx
shr rax, 0x18
and rax, rdx
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [r15 + r10], eax
mov eax, ecx
shr rax, 0x1a
and rax, rdx
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [r15 + r10 + 4], eax
mov eax, ecx
shr rax, 0x1c
and rax, rdx
shr rcx, 0x1e
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [r15 + r10 + 8], eax
mov eax, dword [rbp + rcx*4 + 0xf]
mov dword [r15 + r10 + 0xc], eax
movzx eax, byte [r12]
movzx r8d, byte [r12 + 1]
mov r9d, eax
mov byte [rbp + 0x1f], al
mov byte [rbp + 0x20], r8b
cmp al, r8b
jbe 0x140047208
lea eax, [rax + rax*2]
mov edi, 0x24924925
lea ecx, [r8 + rax*2]
mov eax, edi
mul ecx
lea eax, [r9 + r9*4]
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 2
mov byte [rbp + 0x21], cl
lea ecx, [rax + r8*2]
mov eax, edi
mul ecx
lea eax, [r8 + r8*2]
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 2
mov byte [rbp + 0x22], cl
lea ecx, [rax + r9*4]
mov eax, edi
mul ecx
lea eax, [r9 + r9*2]
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 2
mov byte [rbp + 0x23], cl
lea ecx, [rax + r8*4]
mov eax, edi
mul ecx
lea eax, [r8 + r8*4]
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 2
mov byte [rbp + 0x24], cl
lea ecx, [rax + r9*2]
mov eax, edi
mul ecx
lea eax, [r8 + r8*2]
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 2
mov byte [rbp + 0x25], cl
lea ecx, [r9 + rax*2]
mov eax, edi
mul ecx
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 2
mov byte [rbp + 0x26], cl
jmp 0x140047253
lea ecx, [r8 + rax*4]
mov word [rbp + 0x25], 0xff00
mov edi, 0xcccccccd
mov eax, edi
mul ecx
lea eax, [r9 + r9*2]
lea ecx, [rax + r8*2]
shr edx, 2
mov byte [rbp + 0x21], dl
mov eax, edi
mul ecx
lea eax, [r8 + r8*2]
shr edx, 2
lea ecx, [rax + r9*2]
mov byte [rbp + 0x22], dl
mov eax, edi
mul ecx
lea ecx, [r9 + r8*4]
mov eax, edi
shr edx, 2
mov byte [rbp + 0x23], dl
mul ecx
shr edx, 2
mov byte [rbp + 0x24], dl
movzx eax, byte [r12 + 3]
mov esi, 7
movzx ecx, byte [r12 + 4]
shl rcx, 8
or rcx, rax
movzx eax, byte [r12 + 2]
shl rcx, 8
or rcx, rax
mov rax, rcx
and rax, rsi
mov al, byte [rbp + rax + 0x1f]
mov byte [r11 + 3], al
mov rax, rcx
shr rax, 3
and rax, rsi
mov al, byte [rbp + rax + 0x1f]
mov byte [r11 + 7], al
mov rax, rcx
shr rax, 6
and rax, rsi
mov al, byte [rbp + rax + 0x1f]
mov byte [r11 + 0xb], al
mov rax, rcx
shr rax, 9
and rax, rsi
mov al, byte [rbp + rax + 0x1f]
mov byte [r11 + 0xf], al
mov rax, rcx
shr rax, 0xc
and rax, rsi
mov al, byte [rbp + rax + 0x1f]
mov byte [rbx + 3], al
mov rax, rcx
shr rax, 0xf
and rax, rsi
mov al, byte [rbp + rax + 0x1f]
mov byte [rbx + 7], al
mov rax, rcx
shr rax, 0x12
and rax, rsi
shr rcx, 0x15
mov al, byte [rbp + rax + 0x1f]
mov byte [rbx + 0xb], al
mov al, byte [rbp + rcx + 0x1f]
mov byte [rbx + 0xf], al
movzx eax, byte [r12 + 6]
movzx ecx, byte [r12 + 7]
shl rcx, 8
or rcx, rax
movzx eax, byte [r12 + 5]
shl rcx, 8
or rcx, rax
mov rax, rcx
and rax, rsi
mov al, byte [rbp + rax + 0x1f]
mov byte [r10 + 3], al
mov rax, rcx
shr rax, 3
and rax, rsi
mov al, byte [rbp + rax + 0x1f]
mov byte [r10 + 7], al
mov rax, rcx
shr rax, 6
and rax, rsi
mov al, byte [rbp + rax + 0x1f]
mov byte [r10 + 0xb], al
mov rax, rcx
shr rax, 9
and rax, rsi
mov al, byte [rbp + rax + 0x1f]
mov byte [r10 + 0xf], al
mov rax, rcx
shr rax, 0xc
and rax, rsi
mov al, byte [rbp + rax + 0x1f]
mov byte [r15 + r10 + 3], al
mov rax, rcx
shr rax, 0xf
and rax, rsi
mov al, byte [rbp + rax + 0x1f]
mov byte [r15 + r10 + 7], al
mov rdx, qword [rbp - 0x21]
mov rax, rcx
mov r8, qword [rbp - 0x29]
add r12, 0x10
shr rax, 0x12
inc r13d
and rax, rsi
shr rcx, 0x15
mov al, byte [rbp + rax + 0x1f]
mov byte [r15 + r10 + 0xb], al
mov al, byte [rbp + rcx + 0x1f]
mov byte [r15 + r10 + 0xf], al
cmp r13d, r14d
jb 0x140046ed4
mov r13d, dword [rbp - 0x31]
mov r10d, 0xff
mov r14d, dword [rbp - 0x2d]
mov r11d, dword [rbp - 0x41]
mov eax, dword [rbp - 0x49]
inc eax
mov dword [rbp - 0x49], eax
cmp eax, r14d
jb 0x140046e9e
jmp 0x140049190
xor eax, eax
mov dword [rbp - 0x49], eax
test r14d, r14d
je 0x14004919b
and dword [rbp - 0x45], 0
test r11d, r11d
je 0x140047f8d
mov r14d, dword [rbp - 0x41]
imul eax, r13d
mov r15d, r13d
mov byte [rbp + 0x12], r10b
mov byte [rbp + 0x16], r10b
mov byte [rbp + 0x1a], r10b
shl eax, 2
mov r8d, eax
lea eax, [r13*2]
add eax, r13d
mov qword [rbp - 0x19], r8
mov r13d, dword [rbp - 0x45]
mov qword [rbp - 0x29], rax
mov byte [rbp + 0x1e], r10b
mov ecx, r13d
shl ecx, 4
add rcx, r8
movzx r8d, word [r12 + 8]
add rcx, rdx
mov eax, r8d
and eax, 0x1f
mov qword [rbp - 0x39], rcx
imul ecx, eax, 0xff
mov eax, 0x84210843
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, r8d
shr eax, 5
and eax, 0x3f
movzx edi, dl
imul ecx, eax, 0xff
mov eax, 0x82082083
shr r8d, 0xb
mov byte [rbp + 0xf], dil
imul ecx
add edx, ecx
imul ecx, r8d, 0xff
movzx r8d, word [r12 + 0xa]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0x84210843
movzx ebx, dl
imul ecx
mov byte [rbp + 0x10], bl
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, r8d
and eax, 0x1f
movzx r11d, dl
imul ecx, eax, 0xff
mov eax, 0x84210843
mov byte [rbp + 0x11], r11b
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, r8d
shr eax, 5
and eax, 0x3f
movzx r10d, dl
imul ecx, eax, 0xff
mov eax, 0x82082083
shr r8d, 0xb
mov byte [rbp + 0x13], r10b
imul ecx
add edx, ecx
imul ecx, r8d, 0xff
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0x84210843
movzx r9d, dl
imul ecx
mov byte [rbp + 0x14], r9b
add edx, ecx
lea ecx, [r10 + rdi*2]
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0xaaaaaaab
movzx r8d, dl
mov byte [rbp + 0x15], r8b
mul ecx
lea ecx, [r9 + rbx*2]
mov eax, 0xaaaaaaab
shr edx, 1
mov byte [rbp + 0x17], dl
mul ecx
lea ecx, [r8 + r11*2]
mov eax, 0xaaaaaaab
shr edx, 1
mov byte [rbp + 0x18], dl
mul ecx
lea ecx, [rdi + r10*2]
mov r10d, 0xaaaaaaab
shr edx, 1
mov eax, r10d
mov byte [rbp + 0x19], dl
mul ecx
lea ecx, [rbx + r9*2]
mov eax, r10d
shr edx, 1
mov byte [rbp + 0x1b], dl
mul ecx
lea ecx, [r11 + r8*2]
mov eax, r10d
mov r11, qword [rbp - 0x39]
shr edx, 1
mov byte [rbp + 0x1c], dl
mul ecx
mov ecx, dword [r12 + 0xc]
lea rbx, [r15 + r11]
shr edx, 1
lea rdi, [r15 + rbx]
mov byte [rbp + 0x1d], dl
mov eax, ecx
mov edx, 3
and rax, rdx
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [r11], eax
mov eax, ecx
shr rax, 2
and rax, rdx
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [r11 + 4], eax
mov eax, ecx
shr rax, 4
and rax, rdx
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [r11 + 8], eax
mov eax, ecx
shr rax, 6
and rax, rdx
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [r11 + 0xc], eax
mov eax, ecx
shr rax, 8
and rax, rdx
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [rbx], eax
mov eax, ecx
shr rax, 0xa
and rax, rdx
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [rbx + 4], eax
mov eax, ecx
shr rax, 0xc
and rax, rdx
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [rbx + 8], eax
mov eax, ecx
shr rax, 0xe
and rax, rdx
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [rbx + 0xc], eax
mov eax, ecx
shr rax, 0x10
and rax, rdx
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [rdi], eax
mov eax, ecx
shr rax, 0x12
and rax, rdx
mov eax, dword [rbp + rax*4 + 0xf]
lea r9, [r15 + rdi]
mov dword [rdi + 4], eax
mov eax, ecx
shr rax, 0x14
and rax, rdx
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [rdi + 8], eax
mov eax, ecx
shr rax, 0x16
and rax, rdx
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [rdi + 0xc], eax
mov eax, ecx
shr rax, 0x18
and rax, rdx
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [r9], eax
mov eax, ecx
shr rax, 0x1a
and rax, rdx
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [r9 + 4], eax
mov eax, ecx
shr rax, 0x1c
and rax, rdx
shr rcx, 0x1e
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [r9 + 8], eax
mov eax, dword [rbp + rcx*4 + 0xf]
mov dword [r9 + 0xc], eax
movzx eax, byte [r12]
movzx r8d, byte [r12 + 1]
mov r10d, eax
mov byte [rbp + 0x1f], al
mov byte [rbp + 0x20], r8b
cmp al, r8b
jbe 0x140047767
lea eax, [rax + rax*2]
mov esi, 0x24924925
lea ecx, [r8 + rax*2]
mov eax, esi
mul ecx
lea eax, [r10 + r10*4]
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 2
mov byte [rbp + 0x21], cl
lea ecx, [rax + r8*2]
mov eax, esi
mul ecx
lea eax, [r8 + r8*2]
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 2
mov byte [rbp + 0x22], cl
lea ecx, [rax + r10*4]
mov eax, esi
mul ecx
lea eax, [r10 + r10*2]
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 2
mov byte [rbp + 0x23], cl
lea ecx, [rax + r8*4]
mov eax, esi
mul ecx
lea eax, [r8 + r8*4]
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 2
mov byte [rbp + 0x24], cl
lea ecx, [rax + r10*2]
mov eax, esi
mul ecx
lea eax, [r8 + r8*2]
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 2
mov byte [rbp + 0x25], cl
lea ecx, [r10 + rax*2]
mov eax, esi
mul ecx
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 2
mov byte [rbp + 0x26], cl
jmp 0x1400477b2
lea ecx, [r8 + rax*4]
mov word [rbp + 0x25], 0xff00
mov esi, 0xcccccccd
mov eax, esi
mul ecx
lea eax, [r10 + r10*2]
lea ecx, [rax + r8*2]
shr edx, 2
mov byte [rbp + 0x21], dl
mov eax, esi
mul ecx
lea eax, [r8 + r8*2]
shr edx, 2
lea ecx, [rax + r10*2]
mov byte [rbp + 0x22], dl
mov eax, esi
mul ecx
lea ecx, [r10 + r8*4]
mov eax, esi
shr edx, 2
mov byte [rbp + 0x23], dl
mul ecx
shr edx, 2
mov byte [rbp + 0x24], dl
movzx eax, byte [r12 + 3]
mov esi, 7
movzx ecx, byte [r12 + 4]
mov r10d, 0xff
shl rcx, 8
or rcx, rax
movzx eax, byte [r12 + 2]
shl rcx, 8
or rcx, rax
mov rax, rcx
and rax, rsi
mov al, byte [rbp + rax + 0x1f]
mov byte [r11 + 3], al
mov rax, rcx
shr rax, 3
and rax, rsi
mov al, byte [rbp + rax + 0x1f]
mov byte [r11 + 7], al
mov rax, rcx
shr rax, 6
and rax, rsi
mov al, byte [rbp + rax + 0x1f]
mov byte [r11 + 0xb], al
mov rax, rcx
shr rax, 9
and rax, rsi
mov al, byte [rbp + rax + 0x1f]
mov byte [r11 + 0xf], al
mov rax, rcx
shr rax, 0xc
and rax, rsi
mov al, byte [rbp + rax + 0x1f]
mov byte [rbx + 3], al
mov rax, rcx
shr rax, 0xf
and rax, rsi
mov al, byte [rbp + rax + 0x1f]
mov byte [rbx + 7], al
mov rax, rcx
shr rax, 0x12
and rax, rsi
shr rcx, 0x15
mov al, byte [rbp + rax + 0x1f]
mov byte [rbx + 0xb], al
mov al, byte [rbp + rcx + 0x1f]
mov byte [rbx + 0xf], al
movzx eax, byte [r12 + 6]
movzx ecx, byte [r12 + 7]
shl rcx, 8
or rcx, rax
movzx eax, byte [r12 + 5]
shl rcx, 8
or rcx, rax
mov rax, rcx
and rax, rsi
mov al, byte [rbp + rax + 0x1f]
mov byte [rdi + 3], al
mov rax, rcx
shr rax, 3
and rax, rsi
mov al, byte [rbp + rax + 0x1f]
mov byte [rdi + 7], al
mov rax, rcx
shr rax, 6
and rax, rsi
mov al, byte [rbp + rax + 0x1f]
mov byte [rdi + 0xb], al
mov rax, rcx
shr rax, 9
and rax, rsi
mov al, byte [rbp + rax + 0x1f]
mov byte [rdi + 0xf], al
mov rax, rcx
shr rax, 0xc
and rax, rsi
mov al, byte [rbp + rax + 0x1f]
mov byte [r9 + 3], al
mov rax, rcx
shr rax, 0xf
and rax, rsi
mov al, byte [rbp + rax + 0x1f]
mov byte [r9 + 7], al
add r12, 0x10
mov rax, rcx
shr rcx, 0x15
shr rax, 0x12
and rax, rsi
mov al, byte [rbp + rax + 0x1f]
mov byte [r9 + 0xb], al
mov al, byte [rbp + rcx + 0x1f]
mov byte [r9 + 0xf], al
sub r9, qword [rbp - 0x29]
movzx eax, byte [r9 + 3]
test al, al
je 0x14004796d
mov r8d, eax
xor edx, edx
movzx eax, byte [r9]
imul eax, eax, 0xff
div r8d
cmp eax, r10d
movzx ecx, al
movzx eax, byte [r9 + 1]
cmova ecx, r10d
imul eax, eax, 0xff
xor edx, edx
mov byte [r9], cl
div r8d
cmp eax, r10d
movzx ecx, al
movzx eax, byte [r9 + 2]
cmova ecx, r10d
imul eax, eax, 0xff
xor edx, edx
mov byte [r9 + 1], cl
div r8d
cmp eax, r10d
movzx ecx, al
cmova ecx, r10d
mov byte [r9 + 2], cl
movzx eax, byte [r9 + 7]
test al, al
je 0x1400479d3
mov r8d, eax
xor edx, edx
movzx eax, byte [r9 + 4]
imul eax, eax, 0xff
div r8d
cmp eax, r10d
movzx ecx, al
movzx eax, byte [r9 + 5]
cmova ecx, r10d
imul eax, eax, 0xff
xor edx, edx
mov byte [r9 + 4], cl
div r8d
cmp eax, r10d
movzx ecx, al
movzx eax, byte [r9 + 6]
cmova ecx, r10d
imul eax, eax, 0xff
xor edx, edx
mov byte [r9 + 5], cl
div r8d
cmp eax, r10d
movzx ecx, al
cmova ecx, r10d
mov byte [r9 + 6], cl
movzx eax, byte [r9 + 0xb]
test al, al
je 0x140047a39
mov r8d, eax
xor edx, edx
movzx eax, byte [r9 + 8]
imul eax, eax, 0xff
div r8d
cmp eax, r10d
movzx ecx, al
movzx eax, byte [r9 + 9]
cmova ecx, r10d
imul eax, eax, 0xff
xor edx, edx
mov byte [r9 + 8], cl
div r8d
cmp eax, r10d
movzx ecx, al
movzx eax, byte [r9 + 0xa]
cmova ecx, r10d
imul eax, eax, 0xff
xor edx, edx
mov byte [r9 + 9], cl
div r8d
cmp eax, r10d
movzx ecx, al
cmova ecx, r10d
mov byte [r9 + 0xa], cl
movzx eax, byte [r9 + 0xf]
test al, al
je 0x140047a9f
mov r8d, eax
xor edx, edx
movzx eax, byte [r9 + 0xc]
imul eax, eax, 0xff
div r8d
cmp eax, r10d
movzx ecx, al
movzx eax, byte [r9 + 0xd]
cmova ecx, r10d
imul eax, eax, 0xff
xor edx, edx
mov byte [r9 + 0xc], cl
div r8d
cmp eax, r10d
movzx ecx, al
movzx eax, byte [r9 + 0xe]
cmova ecx, r10d
imul eax, eax, 0xff
xor edx, edx
mov byte [r9 + 0xd], cl
div r8d
cmp eax, r10d
movzx ecx, al
cmova ecx, r10d
mov byte [r9 + 0xe], cl
add r9, r15
movzx eax, byte [r9 + 3]
test al, al
je 0x140047b06
mov r8d, eax
xor edx, edx
movzx eax, byte [r9]
imul eax, eax, 0xff
div r8d
cmp eax, r10d
movzx ecx, al
movzx eax, byte [r9 + 1]
cmova ecx, r10d
imul eax, eax, 0xff
xor edx, edx
mov byte [r9], cl
div r8d
cmp eax, r10d
movzx ecx, al
movzx eax, byte [r9 + 2]
cmova ecx, r10d
imul eax, eax, 0xff
xor edx, edx
mov byte [r9 + 1], cl
div r8d
cmp eax, r10d
movzx ecx, al
cmova ecx, r10d
mov byte [r9 + 2], cl
movzx eax, byte [r9 + 7]
test al, al
je 0x140047b6c
mov r8d, eax
xor edx, edx
movzx eax, byte [r9 + 4]
imul eax, eax, 0xff
div r8d
cmp eax, r10d
movzx ecx, al
movzx eax, byte [r9 + 5]
cmova ecx, r10d
imul eax, eax, 0xff
xor edx, edx
mov byte [r9 + 4], cl
div r8d
cmp eax, r10d
movzx ecx, al
movzx eax, byte [r9 + 6]
cmova ecx, r10d
imul eax, eax, 0xff
xor edx, edx
mov byte [r9 + 5], cl
div r8d
cmp eax, r10d
movzx ecx, al
cmova ecx, r10d
mov byte [r9 + 6], cl
movzx eax, byte [r9 + 0xb]
test al, al
je 0x140047bd2
mov r8d, eax
xor edx, edx
movzx eax, byte [r9 + 8]
imul eax, eax, 0xff
div r8d
cmp eax, r10d
movzx ecx, al
movzx eax, byte [r9 + 9]
cmova ecx, r10d
imul eax, eax, 0xff
xor edx, edx
mov byte [r9 + 8], cl
div r8d
cmp eax, r10d
movzx ecx, al
movzx eax, byte [r9 + 0xa]
cmova ecx, r10d
imul eax, eax, 0xff
xor edx, edx
mov byte [r9 + 9], cl
div r8d
cmp eax, r10d
movzx ecx, al
cmova ecx, r10d
mov byte [r9 + 0xa], cl
movzx eax, byte [r9 + 0xf]
test al, al
je 0x140047c38
mov r8d, eax
xor edx, edx
movzx eax, byte [r9 + 0xc]
imul eax, eax, 0xff
div r8d
cmp eax, r10d
movzx ecx, al
movzx eax, byte [r9 + 0xd]
cmova ecx, r10d
imul eax, eax, 0xff
xor edx, edx
mov byte [r9 + 0xc], cl
div r8d
cmp eax, r10d
movzx ecx, al
movzx eax, byte [r9 + 0xe]
cmova ecx, r10d
imul eax, eax, 0xff
xor edx, edx
mov byte [r9 + 0xd], cl
div r8d
cmp eax, r10d
movzx ecx, al
cmova ecx, r10d
mov byte [r9 + 0xe], cl
add r9, r15
movzx eax, byte [r9 + 3]
test al, al
je 0x140047c9f
mov r8d, eax
xor edx, edx
movzx eax, byte [r9]
imul eax, eax, 0xff
div r8d
cmp eax, r10d
movzx ecx, al
movzx eax, byte [r9 + 1]
cmova ecx, r10d
imul eax, eax, 0xff
xor edx, edx
mov byte [r9], cl
div r8d
cmp eax, r10d
movzx ecx, al
movzx eax, byte [r9 + 2]
cmova ecx, r10d
imul eax, eax, 0xff
xor edx, edx
mov byte [r9 + 1], cl
div r8d
cmp eax, r10d
movzx ecx, al
cmova ecx, r10d
mov byte [r9 + 2], cl
movzx eax, byte [r9 + 7]
test al, al
je 0x140047d05
mov r8d, eax
xor edx, edx
movzx eax, byte [r9 + 4]
imul eax, eax, 0xff
div r8d
cmp eax, r10d
movzx ecx, al
movzx eax, byte [r9 + 5]
cmova ecx, r10d
imul eax, eax, 0xff
xor edx, edx
mov byte [r9 + 4], cl
div r8d
cmp eax, r10d
movzx ecx, al
movzx eax, byte [r9 + 6]
cmova ecx, r10d
imul eax, eax, 0xff
xor edx, edx
mov byte [r9 + 5], cl
div r8d
cmp eax, r10d
movzx ecx, al
cmova ecx, r10d
mov byte [r9 + 6], cl
movzx eax, byte [r9 + 0xb]
test al, al
je 0x140047d6b
mov r8d, eax
xor edx, edx
movzx eax, byte [r9 + 8]
imul eax, eax, 0xff
div r8d
cmp eax, r10d
movzx ecx, al
movzx eax, byte [r9 + 9]
cmova ecx, r10d
imul eax, eax, 0xff
xor edx, edx
mov byte [r9 + 8], cl
div r8d
cmp eax, r10d
movzx ecx, al
movzx eax, byte [r9 + 0xa]
cmova ecx, r10d
imul eax, eax, 0xff
xor edx, edx
mov byte [r9 + 9], cl
div r8d
cmp eax, r10d
movzx ecx, al
cmova ecx, r10d
mov byte [r9 + 0xa], cl
movzx eax, byte [r9 + 0xf]
test al, al
je 0x140047dd1
mov r8d, eax
xor edx, edx
movzx eax, byte [r9 + 0xc]
imul eax, eax, 0xff
div r8d
cmp eax, r10d
movzx ecx, al
movzx eax, byte [r9 + 0xd]
cmova ecx, r10d
imul eax, eax, 0xff
xor edx, edx
mov byte [r9 + 0xc], cl
div r8d
cmp eax, r10d
movzx ecx, al
movzx eax, byte [r9 + 0xe]
cmova ecx, r10d
imul eax, eax, 0xff
xor edx, edx
mov byte [r9 + 0xd], cl
div r8d
cmp eax, r10d
movzx ecx, al
cmova ecx, r10d
mov byte [r9 + 0xe], cl
add r9, r15
movzx eax, byte [r9 + 3]
test al, al
je 0x140047e38
mov r8d, eax
xor edx, edx
movzx eax, byte [r9]
imul eax, eax, 0xff
div r8d
cmp eax, r10d
movzx ecx, al
movzx eax, byte [r9 + 1]
cmova ecx, r10d
imul eax, eax, 0xff
xor edx, edx
mov byte [r9], cl
div r8d
cmp eax, r10d
movzx ecx, al
movzx eax, byte [r9 + 2]
cmova ecx, r10d
imul eax, eax, 0xff
xor edx, edx
mov byte [r9 + 1], cl
div r8d
cmp eax, r10d
movzx ecx, al
cmova ecx, r10d
mov byte [r9 + 2], cl
movzx eax, byte [r9 + 7]
test al, al
je 0x140047e9e
mov r8d, eax
xor edx, edx
movzx eax, byte [r9 + 4]
imul eax, eax, 0xff
div r8d
cmp eax, r10d
movzx ecx, al
movzx eax, byte [r9 + 5]
cmova ecx, r10d
imul eax, eax, 0xff
xor edx, edx
mov byte [r9 + 4], cl
div r8d
cmp eax, r10d
movzx ecx, al
movzx eax, byte [r9 + 6]
cmova ecx, r10d
imul eax, eax, 0xff
xor edx, edx
mov byte [r9 + 5], cl
div r8d
cmp eax, r10d
movzx ecx, al
cmova ecx, r10d
mov byte [r9 + 6], cl
movzx eax, byte [r9 + 0xb]
test al, al
je 0x140047f04
mov r8d, eax
xor edx, edx
movzx eax, byte [r9 + 8]
imul eax, eax, 0xff
div r8d
cmp eax, r10d
movzx ecx, al
movzx eax, byte [r9 + 9]
cmova ecx, r10d
imul eax, eax, 0xff
xor edx, edx
mov byte [r9 + 8], cl
div r8d
cmp eax, r10d
movzx ecx, al
movzx eax, byte [r9 + 0xa]
cmova ecx, r10d
imul eax, eax, 0xff
xor edx, edx
mov byte [r9 + 9], cl
div r8d
cmp eax, r10d
movzx ecx, al
cmova ecx, r10d
mov byte [r9 + 0xa], cl
movzx eax, byte [r9 + 0xf]
test al, al
je 0x140047f6a
mov r8d, eax
xor edx, edx
movzx eax, byte [r9 + 0xc]
imul eax, eax, 0xff
div r8d
cmp eax, r10d
movzx ecx, al
movzx eax, byte [r9 + 0xd]
cmova ecx, r10d
imul eax, eax, 0xff
xor edx, edx
mov byte [r9 + 0xc], cl
div r8d
cmp eax, r10d
movzx ecx, al
movzx eax, byte [r9 + 0xe]
cmova ecx, r10d
imul eax, eax, 0xff
xor edx, edx
mov byte [r9 + 0xd], cl
div r8d
cmp eax, r10d
movzx ecx, al
cmova ecx, r10d
mov byte [r9 + 0xe], cl
mov rdx, qword [rbp - 0x21]
inc r13d
mov r8, qword [rbp - 0x19]
cmp r13d, r14d
jb 0x140047437
mov r13d, dword [rbp - 0x31]
mov r14d, dword [rbp - 0x2d]
mov r11d, dword [rbp - 0x41]
mov eax, dword [rbp - 0x49]
inc eax
mov dword [rbp - 0x49], eax
cmp eax, r14d
jb 0x1400473f2
jmp 0x140049190
xor eax, eax
mov dword [rbp - 0x49], eax
test r14d, r14d
je 0x14004919b
mov r15d, dword [rbp - 0x41]
and dword [rbp - 0x45], 0
test r15d, r15d
je 0x140048429
imul eax, r13d
mov byte [rbp + 0x12], r10b
mov byte [rbp + 0x16], r10b
mov byte [rbp + 0x1a], r10b
mov byte [rbp + 0x1e], r10b
shl eax, 2
mov ecx, eax
mov eax, r13d
mov r13d, dword [rbp - 0x45]
mov qword [rbp - 0x39], rax
mov qword [rbp - 0x29], rcx
movzx r8d, word [r12 + 8]
mov r14d, r13d
mov eax, r8d
shl r14d, 4
and eax, 0x1f
add r14, rcx
imul ecx, eax, 0xff
add r14, rdx
mov eax, 0x84210843
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, r8d
shr eax, 5
and eax, 0x3f
movzx edi, dl
imul ecx, eax, 0xff
mov eax, 0x82082083
shr r8d, 0xb
mov byte [rbp + 0xf], dil
imul ecx
add edx, ecx
imul ecx, r8d, 0xff
movzx r8d, word [r12 + 0xa]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0x84210843
movzx ebx, dl
imul ecx
mov byte [rbp + 0x10], bl
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, r8d
and eax, 0x1f
movzx r11d, dl
imul ecx, eax, 0xff
mov eax, 0x84210843
mov byte [rbp + 0x11], r11b
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, r8d
shr eax, 5
and eax, 0x3f
movzx r10d, dl
imul ecx, eax, 0xff
mov eax, 0x82082083
shr r8d, 0xb
mov byte [rbp + 0x13], r10b
imul ecx
add edx, ecx
imul ecx, r8d, 0xff
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0x84210843
movzx r9d, dl
imul ecx
mov byte [rbp + 0x14], r9b
add edx, ecx
lea ecx, [r10 + rdi*2]
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0xaaaaaaab
movzx r8d, dl
mov byte [rbp + 0x15], r8b
mul ecx
shr edx, 1
lea ecx, [r9 + rbx*2]
mov byte [rbp + 0x17], dl
mov eax, 0xaaaaaaab
mul ecx
lea ecx, [r8 + r11*2]
mov eax, 0xaaaaaaab
shr edx, 1
mov byte [rbp + 0x18], dl
mul ecx
lea ecx, [rdi + r10*2]
mov r10d, 0xaaaaaaab
shr edx, 1
mov eax, r10d
mov byte [rbp + 0x19], dl
mul ecx
lea ecx, [rbx + r9*2]
mov eax, r10d
shr edx, 1
mov byte [rbp + 0x1b], dl
mul ecx
lea ecx, [r11 + r8*2]
mov eax, r10d
mov r8d, 3
shr edx, 1
mov byte [rbp + 0x1c], dl
mul ecx
mov ecx, dword [r12 + 0xc]
shr edx, 1
mov eax, ecx
and rax, r8
mov byte [rbp + 0x1d], dl
mov rdx, qword [rbp - 0x39]
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [r14], eax
lea r9, [rdx + r14]
mov eax, ecx
lea r10, [rdx + r9]
shr rax, 2
and rax, r8
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [r14 + 4], eax
mov eax, ecx
shr rax, 4
and rax, r8
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [r14 + 8], eax
mov eax, ecx
shr rax, 6
and rax, r8
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [r14 + 0xc], eax
mov eax, ecx
shr rax, 8
and rax, r8
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [r9], eax
mov eax, ecx
shr rax, 0xa
and rax, r8
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [r9 + 4], eax
mov eax, ecx
shr rax, 0xc
and rax, r8
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [r9 + 8], eax
mov eax, ecx
shr rax, 0xe
and rax, r8
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [r9 + 0xc], eax
mov eax, ecx
shr rax, 0x10
and rax, r8
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [r10], eax
mov eax, ecx
shr rax, 0x12
and rax, r8
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [r10 + 4], eax
lea r11, [rdx + r10]
mov eax, ecx
mov ebx, 0xf
shr rax, 0x14
mov esi, 0x88888889
and rax, r8
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [r10 + 8], eax
mov eax, ecx
shr rax, 0x16
and rax, r8
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [r10 + 0xc], eax
mov eax, ecx
shr rax, 0x18
and rax, r8
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [r11], eax
mov eax, ecx
shr rax, 0x1a
and rax, r8
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [r11 + 4], eax
mov eax, ecx
shr rax, 0x1c
and rax, r8
shr rcx, 0x1e
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [r11 + 8], eax
mov eax, dword [rbp + rcx*4 + 0xf]
mov dword [r11 + 0xc], eax
mov r8d, dword [r12]
mov eax, r8d
and eax, ebx
imul ecx, eax, 0xff
mov eax, esi
mul ecx
mov eax, r8d
shr eax, 4
and eax, ebx
shr edx, 3
imul ecx, eax, 0xff
mov eax, esi
mov byte [r14 + 3], dl
mul ecx
mov eax, r8d
shr eax, 8
and eax, ebx
shr edx, 3
imul ecx, eax, 0xff
mov eax, esi
mov byte [r14 + 7], dl
mul ecx
mov eax, r8d
shr eax, 0xc
and eax, ebx
shr edx, 3
imul ecx, eax, 0xff
mov eax, esi
mov byte [r14 + 0xb], dl
mul ecx
mov eax, r8d
shr eax, 0x10
and eax, ebx
shr edx, 3
imul ecx, eax, 0xff
mov eax, esi
mov byte [r14 + 0xf], dl
mul ecx
mov eax, r8d
shr eax, 0x14
and eax, ebx
shr edx, 3
imul ecx, eax, 0xff
mov eax, esi
mov byte [r9 + 3], dl
mul ecx
mov eax, r8d
shr edx, 3
mov byte [r9 + 7], dl
shr eax, 0x18
inc r13d
and eax, ebx
shr r8d, 0x1c
imul ecx, eax, 0xff
mov eax, esi
mul ecx
imul ecx, r8d, 0xff
mov eax, esi
shr edx, 3
mov byte [r9 + 0xb], dl
mul ecx
shr edx, 3
mov byte [r9 + 0xf], dl
mov r8d, dword [r12 + 4]
mov eax, r8d
and eax, ebx
add r12, 0x10
imul ecx, eax, 0xff
mov eax, esi
mul ecx
mov eax, r8d
shr eax, 4
and eax, ebx
shr edx, 3
imul ecx, eax, 0xff
mov eax, esi
mov byte [r10 + 3], dl
mul ecx
mov eax, r8d
shr eax, 8
and eax, ebx
shr edx, 3
imul ecx, eax, 0xff
mov eax, esi
mov byte [r10 + 7], dl
mul ecx
mov eax, r8d
shr eax, 0xc
and eax, ebx
shr edx, 3
imul ecx, eax, 0xff
mov eax, esi
mov byte [r10 + 0xb], dl
mul ecx
mov eax, r8d
shr eax, 0x10
and eax, ebx
shr edx, 3
imul ecx, eax, 0xff
mov eax, esi
mov byte [r10 + 0xf], dl
mul ecx
mov eax, r8d
shr eax, 0x14
and eax, ebx
shr edx, 3
imul ecx, eax, 0xff
mov eax, esi
mov byte [r11 + 3], dl
mul ecx
mov eax, r8d
shr r8d, 0x1c
shr edx, 3
shr eax, 0x18
and eax, ebx
mov byte [r11 + 7], dl
imul ecx, eax, 0xff
mov eax, esi
mul ecx
imul ecx, r8d, 0xff
mov eax, esi
shr edx, 3
mov byte [r11 + 0xb], dl
mul ecx
mov rcx, qword [rbp - 0x29]
shr edx, 3
mov byte [r11 + 0xf], dl
mov rdx, qword [rbp - 0x21]
cmp r13d, r15d
jb 0x140047fe7
mov r13d, dword [rbp - 0x31]
mov r10d, 0xff
mov r14d, dword [rbp - 0x2d]
mov eax, dword [rbp - 0x49]
inc eax
mov dword [rbp - 0x49], eax
cmp eax, r14d
jb 0x140047fb2
mov r11d, dword [rbp - 0x41]
jmp 0x140049190
xor eax, eax
mov dword [rbp - 0x49], eax
test r14d, r14d
je 0x14004919b
mov r15d, dword [rbp - 0x41]
and dword [rbp - 0x45], 0
test r15d, r15d
je 0x140048e3a
imul eax, r13d
mov esi, r13d
mov qword [rbp - 0x39], rsi
shl eax, 2
mov ecx, eax
lea eax, [r13*2]
add eax, r13d
mov qword [rbp - 0x19], rcx
mov r13d, dword [rbp - 0x45]
mov qword [rbp - 0x29], rax
movzx r8d, word [r12 + 8]
mov r14d, r13d
mov eax, r8d
shl r14d, 4
and eax, 0x1f
mov byte [rbp + 0x12], r10b
add r14, rcx
imul ecx, eax, 0xff
add r14, rdx
mov eax, 0x84210843
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, r8d
shr eax, 5
and eax, 0x3f
movzx edi, dl
imul ecx, eax, 0xff
mov eax, 0x82082083
shr r8d, 0xb
mov byte [rbp + 0xf], dil
imul ecx
add edx, ecx
imul ecx, r8d, 0xff
movzx r8d, word [r12 + 0xa]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0x84210843
movzx ebx, dl
imul ecx
mov byte [rbp + 0x10], bl
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, r8d
and eax, 0x1f
movzx r11d, dl
imul ecx, eax, 0xff
mov eax, 0x84210843
mov byte [rbp + 0x11], r11b
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, r8d
shr eax, 5
and eax, 0x3f
movzx r10d, dl
imul ecx, eax, 0xff
mov eax, 0x82082083
shr r8d, 0xb
mov byte [rbp + 0x13], r10b
imul ecx
add edx, ecx
imul ecx, r8d, 0xff
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0x84210843
movzx r9d, dl
imul ecx
mov byte [rbp + 0x14], r9b
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0xff
movzx r8d, dl
mov byte [rbp + 0x15], r8b
mov byte [rbp + 0x16], al
lea ecx, [r10 + rdi*2]
mov eax, 0xaaaaaaab
mul ecx
lea ecx, [r9 + rbx*2]
mov eax, 0xaaaaaaab
shr edx, 1
mov byte [rbp + 0x17], dl
mul ecx
lea ecx, [r8 + r11*2]
mov eax, 0xaaaaaaab
shr edx, 1
mov byte [rbp + 0x18], dl
mul ecx
lea ecx, [rdi + r10*2]
mov eax, 0xff
mov byte [rbp + 0x1a], al
mov r10d, 0xaaaaaaab
shr edx, 1
mov eax, r10d
mov byte [rbp + 0x19], dl
mul ecx
lea ecx, [rbx + r9*2]
mov eax, r10d
shr edx, 1
mov byte [rbp + 0x1b], dl
mul ecx
lea ecx, [r11 + r8*2]
mov eax, r10d
mov r8d, 3
shr edx, 1
mov byte [rbp + 0x1c], dl
mul ecx
mov ecx, dword [r12 + 0xc]
mov eax, 0xff
mov byte [rbp + 0x1e], al
mov eax, ecx
and rax, r8
shr edx, 1
mov byte [rbp + 0x1d], dl
mov rdx, qword [rbp - 0x39]
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [r14], eax
mov eax, ecx
shr rax, 2
lea r9, [rdx + r14]
and rax, r8
lea r10, [rdx + r9]
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [r14 + 4], eax
mov eax, ecx
shr rax, 4
and rax, r8
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [r14 + 8], eax
mov eax, ecx
shr rax, 6
and rax, r8
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [r14 + 0xc], eax
mov eax, ecx
shr rax, 8
and rax, r8
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [r9], eax
mov eax, ecx
shr rax, 0xa
and rax, r8
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [r9 + 4], eax
mov eax, ecx
shr rax, 0xc
and rax, r8
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [r9 + 8], eax
mov eax, ecx
shr rax, 0xe
and rax, r8
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [r9 + 0xc], eax
mov eax, ecx
shr rax, 0x10
and rax, r8
lea r11, [rdx + r10]
mov edi, 0xf
mov ebx, 0x88888889
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [r10], eax
mov eax, ecx
shr rax, 0x12
and rax, r8
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [r10 + 4], eax
mov eax, ecx
shr rax, 0x14
and rax, r8
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [r10 + 8], eax
mov eax, ecx
shr rax, 0x16
and rax, r8
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [r10 + 0xc], eax
mov eax, ecx
shr rax, 0x18
and rax, r8
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [r11], eax
mov eax, ecx
shr rax, 0x1a
and rax, r8
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [r11 + 4], eax
mov eax, ecx
shr rax, 0x1c
and rax, r8
shr rcx, 0x1e
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [r11 + 8], eax
mov eax, dword [rbp + rcx*4 + 0xf]
mov dword [r11 + 0xc], eax
mov r8d, dword [r12]
mov eax, r8d
and eax, edi
imul ecx, eax, 0xff
mov eax, ebx
mul ecx
mov eax, r8d
shr eax, 4
and eax, edi
shr edx, 3
imul ecx, eax, 0xff
mov eax, ebx
mov byte [r14 + 3], dl
mul ecx
mov eax, r8d
shr eax, 8
and eax, edi
shr edx, 3
imul ecx, eax, 0xff
mov eax, ebx
mov byte [r14 + 7], dl
mul ecx
mov eax, r8d
shr eax, 0xc
and eax, edi
shr edx, 3
imul ecx, eax, 0xff
mov eax, ebx
mov byte [r14 + 0xb], dl
mul ecx
mov eax, r8d
shr eax, 0x10
and eax, edi
shr edx, 3
imul ecx, eax, 0xff
mov eax, ebx
mov byte [r14 + 0xf], dl
mul ecx
mov eax, r8d
shr edx, 3
mov byte [r9 + 3], dl
shr eax, 0x14
and eax, edi
imul ecx, eax, 0xff
mov eax, ebx
mul ecx
mov eax, r8d
shr r8d, 0x1c
shr eax, 0x18
and eax, edi
shr edx, 3
imul ecx, eax, 0xff
mov eax, ebx
mov byte [r9 + 7], dl
mul ecx
imul ecx, r8d, 0xff
mov eax, ebx
shr edx, 3
mov byte [r9 + 0xb], dl
mul ecx
shr edx, 3
mov byte [r9 + 0xf], dl
mov r8d, dword [r12 + 4]
mov eax, r8d
and eax, edi
imul ecx, eax, 0xff
mov eax, ebx
mul ecx
mov eax, r8d
shr eax, 4
and eax, edi
shr edx, 3
imul ecx, eax, 0xff
mov eax, ebx
mov byte [r10 + 3], dl
mul ecx
mov eax, r8d
shr eax, 8
and eax, edi
shr edx, 3
imul ecx, eax, 0xff
mov eax, ebx
mov byte [r10 + 7], dl
mul ecx
mov eax, r8d
shr eax, 0xc
and eax, edi
shr edx, 3
imul ecx, eax, 0xff
mov eax, ebx
mov byte [r10 + 0xb], dl
mul ecx
mov eax, r8d
shr eax, 0x10
and eax, edi
shr edx, 3
imul ecx, eax, 0xff
mov eax, ebx
mov byte [r10 + 0xf], dl
mul ecx
mov eax, r8d
shr eax, 0x14
and eax, edi
shr edx, 3
imul ecx, eax, 0xff
mov eax, ebx
mov byte [r11 + 3], dl
mul ecx
mov eax, r8d
shr r8d, 0x1c
shr eax, 0x18
and eax, edi
shr edx, 3
imul ecx, eax, 0xff
mov eax, ebx
mov byte [r11 + 7], dl
mul ecx
imul ecx, r8d, 0xff
mov eax, ebx
shr edx, 3
mov byte [r11 + 0xb], dl
mul ecx
shr edx, 3
mov byte [r11 + 0xf], dl
add r12, 0x10
sub r11, qword [rbp - 0x29]
movzx eax, byte [r11 + 3]
test al, al
jne 0x1400488d5
xor r10b, r10b
xor bl, bl
xor cl, cl
jmp 0x14004890e
movzx ecx, byte [r11 + 1]
mov r8d, eax
movzx eax, byte [r11 + 2]
xor edx, edx
imul eax, eax, 0xff
div r8d
xor edx, edx
mov r10d, eax
imul eax, ecx, 0xff
movzx ecx, byte [r11]
div r8d
xor edx, edx
mov ebx, eax
imul eax, ecx, 0xff
div r8d
mov ecx, eax
mov rax, r11
mov byte [rax], cl
mov byte [r11 + 1], bl
mov byte [r11 + 2], r10b
movzx eax, byte [r11 + 7]
test al, al
jne 0x14004892b
xor bl, bl
xor dil, dil
jmp 0x140048962
movzx ecx, byte [r11 + 5]
mov r8d, eax
movzx eax, byte [r11 + 6]
xor edx, edx
imul eax, eax, 0xff
div r8d
xor edx, edx
mov ebx, eax
imul eax, ecx, 0xff
movzx ecx, byte [r11 + 4]
div r8d
xor edx, edx
mov edi, eax
imul eax, ecx, 0xff
div r8d
mov byte [r11 + 4], al
mov byte [r11 + 5], dil
mov byte [r11 + 6], bl
movzx eax, byte [r11 + 0xb]
test al, al
jne 0x14004897e
xor bl, bl
xor dil, dil
jmp 0x1400489b5
movzx ecx, byte [r11 + 9]
mov r8d, eax
movzx eax, byte [r11 + 0xa]
xor edx, edx
imul eax, eax, 0xff
div r8d
xor edx, edx
mov ebx, eax
imul eax, ecx, 0xff
movzx ecx, byte [r11 + 8]
div r8d
xor edx, edx
mov edi, eax
imul eax, ecx, 0xff
div r8d
mov byte [r11 + 8], al
mov byte [r11 + 9], dil
mov byte [r11 + 0xa], bl
movzx eax, byte [r11 + 0xf]
test al, al
jne 0x1400489d1
xor bl, bl
xor dil, dil
jmp 0x140048a08
movzx ecx, byte [r11 + 0xd]
mov r8d, eax
movzx eax, byte [r11 + 0xe]
xor edx, edx
imul eax, eax, 0xff
div r8d
xor edx, edx
mov ebx, eax
imul eax, ecx, 0xff
movzx ecx, byte [r11 + 0xc]
div r8d
xor edx, edx
mov edi, eax
imul eax, ecx, 0xff
div r8d
mov rsi, qword [rbp - 0x39]
mov byte [r11 + 0xc], al
mov byte [r11 + 0xd], dil
mov byte [r11 + 0xe], bl
add r11, rsi
movzx eax, byte [r11 + 3]
test al, al
jne 0x140048a2d
xor r10b, r10b
xor bl, bl
xor cl, cl
jmp 0x140048a66
movzx ecx, byte [r11 + 1]
mov r8d, eax
movzx eax, byte [r11 + 2]
xor edx, edx
imul eax, eax, 0xff
div r8d
xor edx, edx
mov r10d, eax
imul eax, ecx, 0xff
movzx ecx, byte [r11]
div r8d
xor edx, edx
mov ebx, eax
imul eax, ecx, 0xff
div r8d
mov ecx, eax
mov rax, r11
mov byte [rax], cl
mov byte [r11 + 1], bl
mov byte [r11 + 2], r10b
movzx eax, byte [r11 + 7]
test al, al
jne 0x140048a83
xor bl, bl
xor dil, dil
jmp 0x140048aba
movzx ecx, byte [r11 + 5]
mov r8d, eax
movzx eax, byte [r11 + 6]
xor edx, edx
imul eax, eax, 0xff
div r8d
xor edx, edx
mov ebx, eax
imul eax, ecx, 0xff
movzx ecx, byte [r11 + 4]
div r8d
xor edx, edx
mov edi, eax
imul eax, ecx, 0xff
div r8d
mov byte [r11 + 4], al
mov byte [r11 + 5], dil
mov byte [r11 + 6], bl
movzx eax, byte [r11 + 0xb]
test al, al
jne 0x140048ad6
xor bl, bl
xor dil, dil
jmp 0x140048b0d
movzx ecx, byte [r11 + 9]
mov r8d, eax
movzx eax, byte [r11 + 0xa]
xor edx, edx
imul eax, eax, 0xff
div r8d
xor edx, edx
mov ebx, eax
imul eax, ecx, 0xff
movzx ecx, byte [r11 + 8]
div r8d
xor edx, edx
mov edi, eax
imul eax, ecx, 0xff
div r8d
mov byte [r11 + 8], al
mov byte [r11 + 9], dil
mov byte [r11 + 0xa], bl
movzx eax, byte [r11 + 0xf]
test al, al
jne 0x140048b29
xor bl, bl
xor dil, dil
jmp 0x140048b60
movzx ecx, byte [r11 + 0xd]
mov r8d, eax
movzx eax, byte [r11 + 0xe]
xor edx, edx
imul eax, eax, 0xff
div r8d
xor edx, edx
mov ebx, eax
imul eax, ecx, 0xff
movzx ecx, byte [r11 + 0xc]
div r8d
xor edx, edx
mov edi, eax
imul eax, ecx, 0xff
div r8d
mov byte [r11 + 0xc], al
mov byte [r11 + 0xd], dil
mov byte [r11 + 0xe], bl
add r11, rsi
movzx eax, byte [r11 + 3]
test al, al
jne 0x140048b81
xor r10b, r10b
xor bl, bl
xor cl, cl
jmp 0x140048bba
movzx ecx, byte [r11 + 1]
mov r8d, eax
movzx eax, byte [r11 + 2]
xor edx, edx
imul eax, eax, 0xff
div r8d
xor edx, edx
mov r10d, eax
imul eax, ecx, 0xff
movzx ecx, byte [r11]
div r8d
xor edx, edx
mov ebx, eax
imul eax, ecx, 0xff
div r8d
mov ecx, eax
mov rax, r11
mov byte [rax], cl
mov byte [r11 + 1], bl
mov byte [r11 + 2], r10b
movzx eax, byte [r11 + 7]
test al, al
jne 0x140048bd7
xor bl, bl
xor dil, dil
jmp 0x140048c0e
movzx ecx, byte [r11 + 5]
mov r8d, eax
movzx eax, byte [r11 + 6]
xor edx, edx
imul eax, eax, 0xff
div r8d
xor edx, edx
mov ebx, eax
imul eax, ecx, 0xff
movzx ecx, byte [r11 + 4]
div r8d
xor edx, edx
mov edi, eax
imul eax, ecx, 0xff
div r8d
mov byte [r11 + 4], al
mov byte [r11 + 5], dil
mov byte [r11 + 6], bl
movzx eax, byte [r11 + 0xb]
test al, al
jne 0x140048c2a
xor bl, bl
xor dil, dil
jmp 0x140048c61
movzx ecx, byte [r11 + 9]
mov r8d, eax
movzx eax, byte [r11 + 0xa]
xor edx, edx
imul eax, eax, 0xff
div r8d
xor edx, edx
mov ebx, eax
imul eax, ecx, 0xff
movzx ecx, byte [r11 + 8]
div r8d
xor edx, edx
mov edi, eax
imul eax, ecx, 0xff
div r8d
mov byte [r11 + 8], al
mov byte [r11 + 9], dil
mov byte [r11 + 0xa], bl
movzx eax, byte [r11 + 0xf]
test al, al
jne 0x140048c7d
xor bl, bl
xor dil, dil
jmp 0x140048cb4
movzx ecx, byte [r11 + 0xd]
mov r8d, eax
movzx eax, byte [r11 + 0xe]
xor edx, edx
imul eax, eax, 0xff
div r8d
xor edx, edx
mov ebx, eax
imul eax, ecx, 0xff
movzx ecx, byte [r11 + 0xc]
div r8d
xor edx, edx
mov edi, eax
imul eax, ecx, 0xff
div r8d
mov byte [r11 + 0xc], al
mov byte [r11 + 0xd], dil
mov byte [r11 + 0xe], bl
add r11, rsi
movzx eax, byte [r11 + 3]
test al, al
jne 0x140048cd5
xor r10b, r10b
xor bl, bl
xor cl, cl
jmp 0x140048d0e
movzx ecx, byte [r11 + 1]
mov r8d, eax
movzx eax, byte [r11 + 2]
xor edx, edx
imul eax, eax, 0xff
div r8d
xor edx, edx
mov r10d, eax
imul eax, ecx, 0xff
movzx ecx, byte [r11]
div r8d
xor edx, edx
mov ebx, eax
imul eax, ecx, 0xff
div r8d
mov ecx, eax
mov rax, r11
mov byte [rax], cl
mov byte [r11 + 1], bl
mov byte [r11 + 2], r10b
movzx eax, byte [r11 + 7]
test al, al
jne 0x140048d2b
xor bl, bl
xor dil, dil
jmp 0x140048d62
movzx ecx, byte [r11 + 5]
mov r8d, eax
movzx eax, byte [r11 + 6]
xor edx, edx
imul eax, eax, 0xff
div r8d
xor edx, edx
mov ebx, eax
imul eax, ecx, 0xff
movzx ecx, byte [r11 + 4]
div r8d
xor edx, edx
mov edi, eax
imul eax, ecx, 0xff
div r8d
mov byte [r11 + 4], al
mov byte [r11 + 5], dil
mov byte [r11 + 6], bl
movzx eax, byte [r11 + 0xb]
test al, al
jne 0x140048d7e
xor bl, bl
xor dil, dil
jmp 0x140048db5
movzx ecx, byte [r11 + 9]
mov r8d, eax
movzx eax, byte [r11 + 0xa]
xor edx, edx
imul eax, eax, 0xff
div r8d
xor edx, edx
mov ebx, eax
imul eax, ecx, 0xff
movzx ecx, byte [r11 + 8]
div r8d
xor edx, edx
mov edi, eax
imul eax, ecx, 0xff
div r8d
mov byte [r11 + 8], al
mov byte [r11 + 9], dil
mov byte [r11 + 0xa], bl
movzx eax, byte [r11 + 0xf]
test al, al
jne 0x140048dd3
mov byte [r11 + 0xc], al
xor r9b, r9b
jmp 0x140048e0d
movzx ecx, byte [r11 + 0xd]
mov r8d, eax
movzx eax, byte [r11 + 0xc]
xor edx, edx
imul eax, eax, 0xff
div r8d
xor edx, edx
mov byte [r11 + 0xc], al
movzx eax, byte [r11 + 0xe]
imul eax, eax, 0xff
div r8d
xor edx, edx
mov r9d, eax
imul eax, ecx, 0xff
div r8d
mov rdx, qword [rbp - 0x21]
inc r13d
mov rcx, qword [rbp - 0x19]
mov r10d, 0xff
mov byte [r11 + 0xd], al
mov byte [r11 + 0xe], r9b
cmp r13d, r15d
jb 0x140048486
mov r13d, dword [rbp - 0x31]
mov r14d, dword [rbp - 0x2d]
mov eax, dword [rbp - 0x49]
inc eax
mov dword [rbp - 0x49], eax
cmp eax, r14d
jb 0x140048452
jmp 0x140048437
xor ebx, ebx
test r14d, r14d
je 0x140049198
xor edi, edi
test r11d, r11d
je 0x140049185
mov r15d, ebx
mov eax, r13d
imul r15d, r13d
mov r14d, 0xff
mov byte [rbp + 0x12], r10b
mov byte [rbp + 0x16], r10b
mov byte [rbp + 0x1a], r10b
mov qword [rbp - 0x39], rax
shl r15d, 2
movzx r9d, word [r12]
mov esi, 0x84210843
movzx r8d, word [r12 + 2]
mov r10d, edi
shl r10d, 4
mov eax, r9d
and eax, 0x1f
add r10, r15
imul ecx, eax, 0xff
add r10, rdx
mov eax, esi
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movzx eax, dl
mov dword [rbp - 0x19], eax
mov byte [rbp + 0xf], al
mov eax, r9d
shr eax, 5
and eax, 0x3f
imul ecx, eax, 0xff
mov eax, 0x82082083
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movzx eax, dl
mov dword [rbp - 0x29], eax
mov byte [rbp + 0x10], al
mov eax, r9d
shr eax, 0xb
imul ecx, eax, 0xff
mov eax, esi
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movzx eax, dl
mov dword [rbp - 0x49], eax
mov byte [rbp + 0x11], al
mov eax, r8d
and eax, 0x1f
imul ecx, eax, 0xff
mov eax, esi
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, r8d
shr eax, 5
and eax, 0x3f
movzx esi, dl
imul ecx, eax, 0xff
mov eax, 0x82082083
mov byte [rbp + 0x13], sil
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movzx eax, dl
mov dword [rbp - 0x45], eax
mov byte [rbp + 0x14], al
mov eax, r8d
shr eax, 0xb
imul ecx, eax, 0xff
mov eax, 0x84210843
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movzx eax, dl
mov dword [rbp - 0x39], eax
mov byte [rbp + 0x15], al
cmp r9w, r8w
jbe 0x140049024
mov r8d, dword [rbp - 0x45]
mov r9d, 0xaaaaaaab
mov ecx, dword [rbp - 0x19]
mov eax, r9d
mov byte [rbp + 0x1e], r14b
lea ecx, [rsi + rcx*2]
mul ecx
mov ecx, dword [rbp - 0x29]
mov eax, r9d
mov r9d, dword [rbp - 0x39]
shr edx, 1
mov byte [rbp + 0x17], dl
lea ecx, [r8 + rcx*2]
mul ecx
mov eax, dword [rbp - 0x49]
shr edx, 1
mov byte [rbp + 0x18], dl
lea ecx, [r9 + rax*2]
mov eax, 0xaaaaaaab
mul ecx
movzx eax, byte [rbp - 0x19]
shr edx, 1
mov byte [rbp + 0x19], dl
movzx ecx, r8b
mov r8d, 0xaaaaaaab
lea edx, [rax + rsi*2]
mov eax, 0xaaaaaaab
mul edx
movzx eax, byte [rbp - 0x29]
shr edx, 1
mov byte [rbp + 0x1b], dl
lea edx, [rax + rcx*2]
mov eax, r8d
mul edx
movzx eax, byte [rbp - 0x49]
shr edx, 1
mov byte [rbp + 0x1c], dl
movzx ecx, r9b
lea edx, [rax + rcx*2]
mov eax, r8d
mul edx
shr edx, 1
mov byte [rbp + 0x1d], dl
jmp 0x14004904e
mov edx, dword [rbp - 0x19]
mov ecx, dword [rbp - 0x29]
add edx, esi
add ecx, dword [rbp - 0x45]
add eax, dword [rbp - 0x49]
shr edx, 1
shr ecx, 1
shr eax, 1
mov byte [rbp + 0x19], al
mov byte [rbp + 0x1d], al
mov byte [rbp + 0x17], dl
mov byte [rbp + 0x18], cl
mov byte [rbp + 0x1b], dl
mov byte [rbp + 0x1c], cl
mov byte [rbp + 0x1e], 0
mov ecx, dword [r12 + 4]
mov esi, 3
mov eax, ecx
and rax, rsi
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [r10], eax
mov eax, ecx
shr rax, 2
and rax, rsi
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [r10 + 4], eax
mov eax, ecx
shr rax, 4
and rax, rsi
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [r10 + 8], eax
mov eax, ecx
shr rax, 6
and rax, rsi
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [r10 + 0xc], eax
add r10, r13
mov eax, ecx
shr rax, 8
and rax, rsi
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [r10], eax
mov eax, ecx
shr rax, 0xa
and rax, rsi
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [r10 + 4], eax
mov eax, ecx
shr rax, 0xc
and rax, rsi
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [r10 + 8], eax
mov eax, ecx
shr rax, 0xe
and rax, rsi
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [r10 + 0xc], eax
add r10, r13
mov eax, ecx
shr rax, 0x10
and rax, rsi
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [r10], eax
mov eax, ecx
shr rax, 0x12
and rax, rsi
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [r10 + 4], eax
mov eax, ecx
shr rax, 0x14
and rax, rsi
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [r10 + 8], eax
mov eax, ecx
shr rax, 0x16
and rax, rsi
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [r10 + 0xc], eax
add r10, r13
mov eax, ecx
shr rax, 0x18
and rax, rsi
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [r10], eax
mov eax, ecx
shr rax, 0x1a
and rax, rsi
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [r10 + 4], eax
mov eax, ecx
shr rax, 0x1c
and rax, rsi
shr rcx, 0x1e
mov eax, dword [rbp + rax*4 + 0xf]
mov dword [r10 + 8], eax
mov eax, dword [rbp + rcx*4 + 0xf]
mov rdx, qword [rbp - 0x21]
inc edi
add r12, 8
mov dword [r10 + 0xc], eax
cmp edi, r11d
jb 0x140048e87
mov r13d, dword [rbp - 0x31]
mov r10d, 0xff
mov r14d, dword [rbp - 0x2d]
inc ebx
cmp ebx, r14d
jb 0x140048e58
mov r15, qword [rbp - 9]
mov rdi, qword [rbp - 1]
mov ebx, dword [rbp - 0x3d]
mov eax, dword [rbp - 0x11]
inc eax
mov dword [rbp - 0x11], eax
cmp eax, dword [rbp + 7]
jb 0x140046e4c
cmp dword [rbp + 0xb], 0
je 0x1400491be
mov rcx, qword [r15 + 0x438]
call fcn.140057b9c
and dword [r15], 0
and dword [r15 + 0x24], 0
and dword [r15 + 0x20], 0
mov qword [r15 + 0x438], rdi
mov dword [r15 + 4], 0x2004
mov word [r15 + 0xe], 0x1800
mov dword [r15 + 0x1c], 0xff000000
mov word [r15 + 0xb], 0x1008
mov dword [r15 + 0x10], 0xff0000
mov word [r15 + 8], 0x808
mov byte [r15 + 0xd], 8
mov dword [r15 + 0x14], 0xff00
mov dword [r15 + 0x18], 0xff
mov byte [r15 + 0xa], 8
mov dword [r15 + 0x430], r13d
jmp 0x140046d89
or eax, 0xffffffff
mov rcx, qword [rbp + 0x27]
xor rcx, rsp
call fcn.1400bdaf0
lea r11, [rsp + 0xb0]
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