Function at 0x18000bd50
Capabilities:
Encrypt data using aes
Reference aes constants

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x128
movdqa xmmword [rsp + 0x110], xmm15
movaps xmmword [rsp + 0x100], xmm14
movaps xmmword [rsp + 0xf0], xmm13
movdqa xmmword [rsp + 0xe0], xmm12
movdqa xmmword [rsp + 0xd0], xmm11
movdqa xmmword [rsp + 0xc0], xmm10
movdqa xmmword [rsp + 0xb0], xmm9
movdqa xmmword [rsp + 0xa0], xmm8
movaps xmmword [rsp + 0x90], xmm7
movaps xmmword [rsp + 0x80], xmm6
mov qword [rsp + 0x70], r8
lea rax, [rcx + 0xf0]
mov qword [rsp + 0x50], rax
movzx eax, byte [rdx + 8]
movzx ebp, byte [rdx + 0xc]
shl ebp, 8
or ebp, eax
movzx eax, byte [rdx]
movzx ebx, byte [rdx + 4]
shl ebx, 8
or ebx, eax
movd xmm2, ebx
pinsrw xmm2, ebp, 1
pxor xmm0, xmm0
punpcklbw xmm2, xmm0
punpcklwd xmm2, xmm0
pslld xmm2, 0x18
movzx eax, byte [rdx + 9]
movzx ebp, byte [rdx + 0xd]
shl ebp, 8
or ebp, eax
movzx eax, byte [rdx + 1]
movzx ebx, byte [rdx + 5]
shl ebx, 8
or ebx, eax
movd xmm1, ebx
pinsrw xmm1, ebp, 1
punpcklbw xmm1, xmm0
pxor xmm3, xmm3
punpcklwd xmm3, xmm1
pcmpeqd xmm1, xmm1
movdqa xmm4, xmmword [0x18004a330]
movdqa xmm5, xmm3
pandn xmm5, xmm4
movdqa xmm6, xmmword [0x18004a340]
pand xmm3, xmm6
por xmm3, xmm5
movdqa xmm5, xmm2
pandn xmm5, xmm4
pand xmm2, xmm6
por xmm2, xmm5
pxor xmm2, xmm3
movzx eax, byte [rdx + 0xa]
movzx ebp, byte [rdx + 0xe]
shl ebp, 8
or ebp, eax
movzx eax, byte [rdx + 2]
movzx ebx, byte [rdx + 6]
shl ebx, 8
or ebx, eax
movd xmm4, ebx
pinsrw xmm4, ebp, 1
punpcklbw xmm4, xmm0
punpcklwd xmm4, xmm0
pslld xmm4, 8
movdqa xmm5, xmm2
pxor xmm5, xmm1
movdqa xmm3, xmm4
pxor xmm3, xmm1
por xmm3, xmm5
movdqa xmm5, xmmword [0x18004a350]
movdqa xmm6, xmm2
pandn xmm6, xmm5
movdqa xmm7, xmmword [0x18004a360]
pand xmm2, xmm7
por xmm2, xmm6
movdqa xmm6, xmm4
pandn xmm6, xmm5
pand xmm4, xmm7
por xmm4, xmm6
pxor xmm4, xmm2
pxor xmm3, xmm1
por xmm3, xmm4
movzx eax, byte [rdx + 0xb]
movzx ebp, byte [rdx + 0xf]
shl ebp, 8
or ebp, eax
movzx eax, byte [rdx + 3]
movzx edx, byte [rdx + 7]
shl edx, 8
or edx, eax
movd xmm2, edx
pinsrw xmm2, ebp, 1
punpcklbw xmm2, xmm0
punpcklwd xmm2, xmm0
movdqa xmm0, xmm3
pxor xmm0, xmm1
movdqa xmm14, xmm2
pxor xmm14, xmm1
por xmm14, xmm0
movdqa xmm0, xmmword [0x18004a370]
movdqa xmm4, xmm3
pandn xmm4, xmm0
movdqa xmm5, xmmword [0x18004a380]
pand xmm3, xmm5
por xmm3, xmm4
movdqa xmm4, xmm2
pandn xmm4, xmm0
pand xmm2, xmm5
por xmm2, xmm4
pxor xmm2, xmm3
pxor xmm14, xmm1
por xmm14, xmm2
movdqu xmm0, xmmword [rcx + 0xf0]
movdqa xmm1, xmmword [0x18004a390]
movdqa xmm2, xmm0
pandn xmm2, xmm1
movdqa xmm3, xmmword [0x18004a3a0]
pand xmm0, xmm3
por xmm0, xmm2
movdqa xmm2, xmm14
pandn xmm2, xmm1
pand xmm14, xmm3
por xmm14, xmm2
pxor xmm14, xmm0
mov eax, dword [rcx + 0x1e0]
shr eax, 1
mov dword [rsp + 0x48], eax
mov ecx, 0xc0a9755a
movdqa xmm13, xmmword [0x18004a400]
jmp 0x18000c470
mov rax, qword [rsp + 0x68]
lea r15, str.RRRR_t_t_t_tjjjj
mov eax, dword [r15 + rax*4]
mov ecx, 0xff000000
and eax, ecx
mov ecx, dword [rsp + 8]
mov ecx, dword [rsp + 8]
mov ecx, dword [rsp + 8]
shr ecx, 0x10
mov edx, ecx
xor edx, 0xff00
and edx, ecx
mov edx, dword [r15 + rdx*4]
mov ecx, edx
xor ecx, 0xff00ffff
and ecx, edx
mov edx, ecx
and edx, eax
xor ecx, eax
or ecx, edx
mov eax, dword [rsp + 0x14]
movzx eax, ah
mov eax, dword [r15 + rax*4]
mov edx, eax
xor edx, 0xffff00ff
and edx, eax
mov eax, ecx
not eax
mov ebp, edx
not ebp
mov ebx, eax
and ebx, 0x60904fb0
and ecx, 0x9f6fb04f
or ecx, ebx
or eax, ebp
and ebp, 0x60904fb0
and edx, 0x9f6fb04f
or edx, ebp
xor edx, ecx
not eax
or eax, edx
mov ecx, dword [rsp + 0x20]
mov ecx, dword [rsp + 0x20]
mov ecx, dword [rsp + 0x20]
mov ecx, dword [rsp + 0x20]
mov ecx, dword [rsp + 0x20]
mov edx, ecx
xor edx, 0xffffff00
and edx, ecx
mov ecx, dword [r15 + rdx*4]
mov edx, ecx
xor edx, 0xffffff00
and edx, ecx
mov ecx, eax
not ecx
mov ebp, edx
not ebp
mov ebx, ecx
and ebx, 0xae5afddc
and eax, 0x51a50223
or eax, ebx
or ecx, ebp
and ebp, 0xae5afddc
and edx, 0x51a50223
or edx, ebp
xor edx, eax
not ecx
or ecx, edx
mov rax, qword [rsp + 0x28]
mov edx, dword [rax]
mov eax, ecx
not eax
and eax, 0x889fc8ce
and ecx, 0x77603731
or ecx, eax
mov eax, edx
not eax
and eax, 0x889fc8ce
and edx, 0x77603731
or edx, eax
xor edx, ecx
mov ecx, edx
mov eax, dword [rsp + 0x20]
mov r10d, dword [rsp + 0x20]
mov eax, dword [rsp + 0x10]
mov eax, dword [rsp + 0x10]
mov eax, dword [rsp + 0x10]
mov eax, dword [rsp + 0x10]
mov eax, dword [rsp + 0x10]
mov eax, dword [rsp + 0x10]
mov eax, dword [rsp + 0x10]
mov ebp, dword [rsp + 0x10]
mov eax, dword [rsp + 8]
mov eax, dword [rsp + 8]
mov eax, dword [rsp + 8]
mov eax, dword [rsp + 8]
mov eax, dword [rsp + 8]
mov eax, dword [rsp + 8]
movzx eax, ah
mov qword [rsp + 0x58], rax
mov eax, dword [rsp + 0x14]
mov eax, dword [rsp + 0x14]
mov edi, dword [rsp + 0x14]
mov rax, qword [rsp + 0x28]
mov eax, dword [rax + 4]
mov dword [rsp + 0x60], eax
mov eax, dword [rsp + 0x14]
mov eax, dword [rsp + 0x14]
mov eax, dword [rsp + 0x14]
mov eax, dword [rsp + 0x14]
mov eax, dword [rsp + 0x14]
mov qword [rsp + 0x78], rax
mov eax, dword [rsp + 0x20]
mov eax, dword [rsp + 0x20]
mov r12d, dword [rsp + 0x20]
mov eax, dword [rsp + 0x10]
mov esi, dword [rsp + 0x10]
mov eax, dword [rsp + 8]
mov eax, dword [rsp + 8]
mov eax, dword [rsp + 8]
mov eax, dword [rsp + 8]
mov eax, dword [rsp + 8]
mov eax, dword [rsp + 8]
mov eax, dword [rsp + 8]
mov dword [rsp + 0x44], eax
mov rax, qword [rsp + 0x28]
mov eax, dword [rax + 8]
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 8]
mov eax, dword [rsp + 8]
mov eax, dword [rsp + 8]
mov eax, dword [rsp + 8]
mov eax, dword [rsp + 8]
mov r8d, dword [rsp + 8]
mov eax, dword [rsp + 0x14]
mov eax, dword [rsp + 0x14]
mov eax, dword [rsp + 0x14]
mov eax, dword [rsp + 0x14]
mov eax, dword [rsp + 0x14]
mov r9d, dword [rsp + 0x14]
mov r11d, dword [rsp + 0x20]
mov eax, dword [rsp + 0x10]
mov eax, dword [rsp + 0x10]
mov eax, dword [rsp + 0x10]
mov eax, dword [rsp + 0x10]
mov eax, dword [rsp + 0x10]
mov ebx, ecx
shr ebx, 0x18
mov r13d, dword [rsp + 0x10]
mov rax, qword [rsp + 0x28]
mov r14d, dword [rax + 0xc]
mov rdx, qword [rsp + 0x70]
mov byte [rdx], bl
mov ebx, ecx
shr ebx, 0x10
mov byte [rdx + 1], bl
mov byte [rdx + 2], ch
mov byte [rdx + 3], cl
mov eax, esi
movzx ebx, ah
mov rax, qword [rsp + 0x58]
mov esi, dword [r15 + rax*4]
shr r10d, 0x18
mov r10d, dword [r15 + r10*4]
mov ecx, 0xff000000
and r10d, ecx
shr ebp, 0x10
movzx ebp, bpl
mov ebp, dword [r15 + rbp*4]
mov ecx, 0xff0000
and ebp, ecx
or ebp, r10d
mov r10d, ebp
not r10d
and r10d, 0x3e301432
and ebp, 0xc1cf0000
or ebp, r10d
mov r10d, esi
not r10d
or r10d, 0x3e300032
and r10d, 0x3e301432
and esi, 0xeb00
or esi, r10d
xor esi, ebp
mov ecx, 0xff
and edi, ecx
movzx ebp, byte [r15 + rdi*4]
mov edi, esi
and edi, ebp
xor esi, ebp
or esi, edi
mov ebp, esi
not ebp
mov eax, dword [rsp + 0x60]
and ebp, eax
not eax
and eax, esi
or eax, ebp
mov ecx, eax
shr ecx, 0x18
mov byte [rdx + 4], cl
mov ecx, eax
shr ecx, 0x10
mov byte [rdx + 5], cl
mov byte [rdx + 6], ah
mov byte [rdx + 7], al
mov rax, qword [rsp + 0x78]
shr eax, 0x18
mov esi, dword [r15 + rax*4]
shr r12d, 0x10
movzx ebp, r12b
mov edi, dword [r15 + rbp*4]
mov ebp, edi
not ebp
or ebp, 0x1e005b75
and ebp, 0x1e4a5b75
and edi, 0xb50000
or edi, ebp
mov ecx, esi
not ecx
or ecx, 0x4a5b75
and ecx, 0x1e4a5b75
and esi, 0xe1000000
or esi, ecx
xor esi, edi
mov ebp, dword [r15 + rbx*4]
mov ecx, ebp
xor ecx, 0xffff00ff
and ecx, ebp
mov ebp, esi
and ebp, ecx
xor ecx, esi
or ecx, ebp
mov eax, dword [rsp + 0x44]
mov ebp, eax
xor ebp, 0xffffff00
and ebp, eax
movzx ebp, byte [r15 + rbp*4]
mov ebx, ecx
and ebx, ebp
xor ecx, ebp
or ecx, ebx
mov ebp, ecx
not ebp
and ebp, 0xd4bb4b7b
and ecx, 0x2b44b484
or ecx, ebp
mov eax, dword [rsp + 0x40]
mov ebp, eax
not ebp
and ebp, 0xd4bb4b7b
and eax, 0x2b44b484
or eax, ebp
xor eax, ecx
mov ecx, eax
shr ecx, 0x18
mov byte [rdx + 8], cl
mov ecx, eax
shr ecx, 0x10
mov byte [rdx + 9], cl
mov byte [rdx + 0xa], ah
mov byte [rdx + 0xb], al
mov rax, rdx
shr r8d, 0x18
mov ecx, dword [r15 + r8*4]
mov edx, ecx
xor edx, 0xffffff
and edx, ecx
shr r9d, 0x10
movzx ecx, r9b
mov ebp, dword [r15 + rcx*4]
mov ecx, ebp
xor ecx, 0xff00ffff
and ecx, ebp
mov ebp, ecx
not ebp
mov ebx, edx
not ebx
mov edi, ebp
and edi, 0x4c6ec499
and ecx, 0xb3913b66
or ecx, edi
or ebp, ebx
and ebx, 0x4c6ec499
and edx, 0xb3913b66
or edx, ebx
xor edx, ecx
not ebp
or ebp, edx
shr r11d, 8
mov edx, r11d
xor edx, 0xffff00
and edx, r11d
mov ecx, dword [r15 + rdx*4]
mov edx, ecx
xor edx, 0xffff00ff
and edx, ecx
mov ecx, ebp
not ecx
mov ebx, edx
not ebx
mov edi, ecx
and edi, 0xe3499260
and ebp, 0x1cb66d9f
or ebp, edi
or ecx, ebx
and ebx, 0xe3499260
and edx, 0x1cb66d9f
or edx, ebx
xor edx, ebp
not ecx
or ecx, edx
mov edx, r13d
xor edx, 0xffffff00
and edx, r13d
movzx edx, byte [r15 + rdx*4]
mov ebp, ecx
and ebp, edx
xor ecx, edx
or ecx, ebp
mov edx, ecx
not edx
and edx, 0x958c51d8
and ecx, 0x6a73ae27
or ecx, edx
mov ebx, r14d
mov edx, ebx
not edx
and edx, 0x958c51d8
and ebx, 0x6a73ae27
or ebx, edx
xor ebx, ecx
mov ecx, ebx
shr ecx, 0x18
mov byte [rax + 0xc], cl
mov ecx, ebx
shr ecx, 0x10
mov byte [rax + 0xd], cl
mov byte [rax + 0xe], bh
mov byte [rax + 0xf], bl
mov ecx, 0xc6580f5c
nop word cs:[rax + rax]
cmp ecx, 0xed150b71
jle 0x18000c4b0
cmp ecx, 0x4251b1e9
jle 0x18000c8d0
cmp ecx, 0x4251b1ea
je 0x18000cc35
cmp ecx, 0x647d4686
je 0x18000bfcb
cmp ecx, 0x6847286d
jne 0x18000c470
jmp 0x18000d0bf
cmp ecx, 0xcd03afbb
jg 0x18000c930
cmp ecx, 0xc0a9755a
je 0x18000cdc0
cmp ecx, 0xc6580f5c
jne 0x18000c470
mov rax, qword [rsp + 0x68]
lea r11, str.RRRR_t_t_t_tjjjj
mov eax, dword [r11 + rax*4]
mov ecx, eax
xor ecx, 0xffffff
and ecx, eax
mov eax, dword [rsp + 8]
shr eax, 0x10
movzx eax, al
mov eax, dword [r11 + rax*4]
mov edx, eax
xor edx, 0xff00ffff
and edx, eax
mov eax, edx
and eax, ecx
xor edx, ecx
or edx, eax
mov eax, dword [rsp + 0x14]
shr eax, 8
mov ecx, eax
xor ecx, 0xffff00
and ecx, eax
mov eax, dword [r11 + rcx*4]
mov ecx, 0xff00
and eax, ecx
mov ecx, edx
and ecx, eax
xor eax, edx
or eax, ecx
mov ecx, dword [rsp + 0x20]
movzx ecx, cl
mov ecx, dword [r11 + rcx*4]
mov edx, ecx
xor edx, 0xffffff00
and edx, ecx
mov ecx, eax
and ecx, edx
xor edx, eax
or edx, ecx
mov rax, qword [rsp + 0x28]
mov ebx, dword [rax]
mov eax, edx
not eax
and eax, ebx
not ebx
and ebx, edx
or ebx, eax
mov r14d, dword [rsp + 0x20]
mov r15d, dword [rsp + 0x10]
mov r13d, dword [rsp + 8]
mov esi, dword [rsp + 0x14]
mov rax, qword [rsp + 0x28]
mov edx, dword [rax + 4]
mov eax, dword [rsp + 0x14]
mov qword [rsp + 0x60], rax
mov eax, dword [rsp + 0x20]
mov dword [rsp + 0x40], eax
mov ebp, dword [rsp + 0x10]
mov eax, dword [rsp + 8]
mov dword [rsp + 0x44], eax
mov rax, qword [rsp + 0x28]
mov ecx, dword [rax + 8]
mov r10d, dword [rsp + 8]
mov r9d, dword [rsp + 0x14]
mov edi, ebx
shr edi, 0x18
mov r8d, dword [rsp + 0x20]
mov r12d, dword [rsp + 0x10]
mov rax, qword [rsp + 0x28]
mov eax, dword [rax + 0xc]
mov dword [rsp + 0x58], eax
mov rax, qword [rsp + 0x70]
mov byte [rax], dil
mov edi, ebx
shr edi, 0x10
mov byte [rax + 1], dil
mov byte [rax + 2], bh
mov byte [rax + 3], bl
shr r15d, 0x10
movzx edi, r15b
mov edi, dword [r11 + rdi*4]
mov ebx, edi
xor ebx, 0xff00ffff
and ebx, edi
mov edi, ebx
not edi
mov r15d, edi
and r15d, 0x7d678818
and ebx, 0x829877e7
or ebx, r15d
shr r14d, 0x18
mov r14d, dword [r11 + r14*4]
mov r15d, r14d
not r15d
or r15d, 0xffffff
or edi, r15d
and r15d, 0x7d678818
and r14d, 0x82000000
or r14d, r15d
xor r14d, ebx
not edi
or edi, r14d
shr r13d, 8
mov ebx, r13d
xor ebx, 0xffff00
and ebx, r13d
mov r14d, dword [r11 + rbx*4]
mov r15d, r14d
xor r15d, 0xffff00ff
and r15d, r14d
mov ebx, edi
not ebx
mov r14d, ebx
and r14d, 0x24ebe5c9
and edi, 0xdb141a36
or edi, r14d
mov r14d, r15d
not r14d
or ebx, r14d
and r14d, 0x24ebe5c9
and r15d, 0xdb141a36
or r15d, r14d
xor r15d, edi
not ebx
or ebx, r15d
mov edi, ebx
not edi
mov r14d, edi
and r14d, 0x45ece5ff
and ebx, 0xba131a00
or ebx, r14d
movzx esi, sil
mov esi, dword [r11 + rsi*4]
not esi
or esi, 0xffffff00
or edi, esi
and esi, 0x45ece5ff
xor esi, ebx
not edi
or edi, esi
mov esi, edi
not esi
and esi, edx
not edx
and edx, edi
or edx, esi
mov esi, edx
shr esi, 0x18
mov byte [rax + 4], sil
mov esi, edx
shr esi, 0x10
mov byte [rax + 5], sil
mov byte [rax + 6], dh
mov byte [rax + 7], dl
mov edx, ebp
movzx esi, dh
mov edx, r8d
movzx ebp, dh
mov rdx, qword [rsp + 0x60]
shr edx, 0x18
mov r14d, dword [r11 + rdx*4]
mov edx, dword [rsp + 0x40]
shr edx, 0x10
movzx edi, dl
mov r8d, dword [r11 + rdi*4]
mov edi, r8d
not edi
or edi, 0x2900bcd5
and edi, 0x2964bcd5
and r8d, 0x9b0000
or r8d, edi
mov ebx, r14d
not ebx
or ebx, 0x64bcd5
and ebx, 0x2964bcd5
and r14d, 0xd6000000
or r14d, ebx
xor r14d, r8d
mov edi, dword [r11 + rsi*4]
mov ebx, edi
xor ebx, 0xffff00ff
and ebx, edi
mov edi, r14d
and edi, ebx
xor ebx, r14d
or ebx, edi
mov edx, dword [rsp + 0x44]
mov edi, edx
xor edi, 0xffffff00
and edi, edx
mov esi, dword [r11 + rdi*4]
mov edi, esi
xor edi, 0xffffff00
and edi, esi
mov esi, ebx
and esi, edi
xor edi, ebx
or edi, esi
mov ebx, edi
not ebx
and ebx, 0x3e72eac5
and edi, 0xc18d153a
or edi, ebx
mov ebx, ecx
not ebx
and ebx, 0x3e72eac5
and ecx, 0xc18d153a
or ecx, ebx
xor ecx, edi
mov edx, ecx
shr edx, 0x18
mov byte [rax + 8], dl
mov edx, ecx
shr edx, 0x10
mov byte [rax + 9], dl
mov byte [rax + 0xa], ch
mov byte [rax + 0xb], cl
shr r10d, 0x18
mov ecx, dword [r11 + r10*4]
mov edx, ecx
not edx
or edx, 0xffffff
shr r9d, 0x10
mov ebx, r9d
xor ebx, 0xff00
and ebx, r9d
mov ebx, dword [r11 + rbx*4]
mov edi, ebx
xor edi, 0xff00ffff
and edi, ebx
mov ebx, edi
not ebx
mov esi, ebx
and esi, 0xac04b25b
and edi, 0x53fb4da4
or edi, esi
or ebx, edx
and edx, 0xac04b25b
and ecx, 0x53000000
or ecx, edx
xor ecx, edi
not ebx
or ebx, ecx
mov ecx, dword [r11 + rbp*4]
mov edx, 0xff00
and ecx, edx
mov edx, ebx
and edx, ecx
xor ecx, ebx
or ecx, edx
movzx edx, r12b
mov ebp, dword [r11 + rdx*4]
mov edx, ebp
xor edx, 0xffffff00
and edx, ebp
mov ebp, ecx
and ebp, edx
xor edx, ecx
or edx, ebp
mov ecx, edx
not ecx
and ecx, 0x436c78f6
and edx, 0xbc938709
or edx, ecx
mov ebx, dword [rsp + 0x58]
mov ecx, ebx
not ecx
and ecx, 0x436c78f6
and ebx, 0xbc938709
or ebx, ecx
xor ebx, edx
mov ecx, ebx
shr ecx, 0x18
mov byte [rax + 0xc], cl
mov ecx, ebx
shr ecx, 0x10
mov byte [rax + 0xd], cl
mov byte [rax + 0xe], bh
mov byte [rax + 0xf], bl
mov eax, dword [0x18005af80]
mov edx, dword [0x18005af7c]
lea ecx, [rax - 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
and eax, ecx
sete cl
cmp edx, 0xa
setl bl
xor bl, cl
mov ebp, 0x647d4686
mov ebx, 0x6847286d
cmovne ebp, ebx
test eax, eax
mov ecx, ebp
cmove ecx, ebx
cmp edx, 0xa
cmovge ecx, ebp
jmp 0x18000c470
cmp ecx, 0xed150b72
je 0x18000ce3d
cmp ecx, 0xcf328e6
jne 0x18000c470
mov eax, dword [0x18005af80]
lea ecx, [rax - 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
mov ecx, 0x647d4686
mov ebx, 0xc6580f5c
cmove ecx, ebx
cmp dword [0x18005af7c], 0xa
setl dl
mov ebp, 0x647d4686
cmovge ecx, ebp
xor dl, al
cmovne ecx, ebx
jmp 0x18000c470
cmp ecx, 0xcd03afbc
je 0x18000ce56
cmp ecx, 0xd9f8dc98
jne 0x18000c470
mov eax, dword [rsp + 4]
shr eax, 0x18
lea rbp, [0x18004d480]
mov eax, dword [rbp + rax*4]
mov ecx, dword [rsp + 0x18]
shr ecx, 0x10
movzx ecx, cl
lea rbx, [0x18004d880]
mov ecx, dword [rbx + rcx*4]
mov edx, ecx
not edx
and edx, 0x62cad803
and ecx, 0x9d3527fc
or ecx, edx
mov edx, eax
not edx
and edx, 0x62cad803
and eax, 0x9d3527fc
or eax, edx
xor eax, ecx
mov ecx, dword [rsp + 0xc]
movzx ecx, ch
lea rdi, [0x18004dc80]
mov ecx, dword [rdi + rcx*4]
mov edx, eax
not edx
and edx, ecx
not ecx
and ecx, eax
or ecx, edx
mov eax, dword [rsp + 0x1c]
mov edx, eax
xor edx, 0xffffff00
and edx, eax
lea rsi, [0x18004e080]
mov eax, dword [rsi + rdx*4]
mov edx, ecx
not edx
and edx, 0x56418844
and ecx, 0xa9be77bb
or ecx, edx
mov edx, eax
not edx
and edx, 0x56418844
and eax, 0xa9be77bb
or eax, edx
xor eax, ecx
mov rcx, qword [rsp + 0x30]
mov ecx, dword [rcx + 0x10]
mov edx, eax
not edx
and edx, 0x66564564
and eax, 0x99a9ba9b
or eax, edx
mov edx, ecx
not edx
and edx, 0x66564564
and ecx, 0x99a9ba9b
or ecx, edx
xor ecx, eax
mov dword [rsp + 0x10], ecx
mov eax, dword [rsp + 0x1c]
shr eax, 0x18
mov eax, dword [rbp + rax*4]
mov ecx, dword [rsp + 4]
shr ecx, 0x10
movzx ecx, cl
mov ecx, dword [rbx + rcx*4]
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
or eax, edx
mov ecx, dword [rsp + 0x18]
shr ecx, 8
mov edx, ecx
xor edx, 0xffff00
and edx, ecx
mov ecx, dword [rdi + rdx*4]
mov edx, eax
not edx
and edx, 0x34a1e43b
and eax, 0xcb5e1bc4
or eax, edx
mov edx, ecx
not edx
and edx, 0x34a1e43b
and ecx, 0xcb5e1bc4
or ecx, edx
xor ecx, eax
mov eax, dword [rsp + 0xc]
mov edx, eax
xor edx, 0xffffff00
and edx, eax
mov eax, dword [rsi + rdx*4]
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
or eax, edx
mov rcx, qword [rsp + 0x30]
mov ecx, dword [rcx + 0x14]
mov edx, eax
not edx
and edx, ecx
not ecx
and ecx, eax
or ecx, edx
mov dword [rsp + 0x20], ecx
mov eax, dword [rsp + 0xc]
shr eax, 0x18
mov eax, dword [rbp + rax*4]
mov ecx, dword [rsp + 0x1c]
shr ecx, 0x10
mov edx, ecx
xor edx, 0xff00
and edx, ecx
mov ecx, dword [rbx + rdx*4]
mov edx, ecx
not edx
and edx, 0x560be4e0
and ecx, 0xa9f41b1f
or ecx, edx
mov edx, eax
not edx
and edx, 0x560be4e0
and eax, 0xa9f41b1f
or eax, edx
xor eax, ecx
mov ecx, dword [rsp + 4]
movzx ecx, ch
mov ecx, dword [rdi + rcx*4]
mov edx, eax
not edx
and edx, ecx
not ecx
and ecx, eax
or ecx, edx
mov eax, dword [rsp + 0x18]
movzx eax, al
mov eax, dword [rsi + rax*4]
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
or eax, edx
mov rcx, qword [rsp + 0x30]
mov ecx, dword [rcx + 0x18]
mov edx, eax
not edx
and edx, ecx
not ecx
and ecx, eax
or ecx, edx
mov dword [rsp + 0x14], ecx
mov eax, dword [rsp + 0x18]
shr eax, 0x18
mov eax, dword [rbp + rax*4]
mov ecx, dword [rsp + 0xc]
shr ecx, 0x10
mov edx, ecx
xor edx, 0xff00
and edx, ecx
mov ecx, dword [rbx + rdx*4]
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
or eax, edx
mov ecx, dword [rsp + 0x1c]
movzx ecx, ch
mov ecx, dword [rdi + rcx*4]
mov edx, eax
not edx
and edx, ecx
not ecx
and ecx, eax
or ecx, edx
mov eax, dword [rsp + 4]
movzx eax, al
mov eax, dword [rsi + rax*4]
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
or eax, edx
mov rcx, qword [rsp + 0x30]
mov ecx, dword [rcx + 0x1c]
mov edx, eax
not edx
and edx, 0x4b222523
and eax, 0xb4dddadc
or eax, edx
mov edx, ecx
not edx
and edx, 0x4b222523
and ecx, 0xb4dddadc
or ecx, edx
xor ecx, eax
mov dword [rsp + 8], ecx
mov rax, qword [rsp + 0x30]
add rax, 0x20
mov qword [rsp + 0x28], rax
xor eax, eax
sub eax, dword [rsp + 0x3c]
not eax
mov dword [rsp + 0x4c], eax
cmp dword [rsp + 0x4c], 0
sete byte [rsp + 0x27]
mov eax, dword [rsp + 0x10]
shr eax, 0x18
mov qword [rsp + 0x68], rax
mov eax, dword [0x18005af80]
mov edx, dword [0x18005af7c]
lea ecx, [rax - 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp edx, 0xa
setl bl
xor bl, al
mov eax, 0x4251b1ea
mov ebp, 0xed150b72
cmovne eax, ebp
cmp ecx, 0xffffffff
mov ecx, eax
cmove ecx, ebp
cmp edx, 0xa
cmovge ecx, eax
jmp 0x18000c470
mov eax, dword [rsp + 4]
mov eax, dword [rsp + 4]
mov eax, dword [rsp + 4]
mov eax, dword [rsp + 4]
mov eax, dword [rsp + 0x18]
mov eax, dword [rsp + 0x18]
mov eax, dword [rsp + 0x18]
mov eax, dword [rsp + 0xc]
mov eax, dword [rsp + 0xc]
mov eax, dword [rsp + 0xc]
mov eax, dword [rsp + 0xc]
mov eax, dword [rsp + 0xc]
mov eax, dword [rsp + 0x1c]
mov eax, dword [rsp + 0x1c]
mov rax, qword [rsp + 0x30]
mov eax, dword [rsp + 0x1c]
mov eax, dword [rsp + 0x1c]
mov eax, dword [rsp + 0x1c]
mov eax, dword [rsp + 0x1c]
mov eax, dword [rsp + 0x1c]
mov eax, dword [rsp + 0x1c]
mov eax, dword [rsp + 4]
mov eax, dword [rsp + 4]
mov eax, dword [rsp + 4]
mov eax, dword [rsp + 4]
mov eax, dword [rsp + 4]
mov eax, dword [rsp + 4]
mov eax, dword [rsp + 4]
mov eax, dword [rsp + 4]
mov eax, dword [rsp + 4]
mov eax, dword [rsp + 0x18]
mov eax, dword [rsp + 0x18]
mov eax, dword [rsp + 0xc]
mov eax, dword [rsp + 0xc]
mov rax, qword [rsp + 0x30]
mov eax, dword [rsp + 0xc]
mov eax, dword [rsp + 0xc]
mov eax, dword [rsp + 0xc]
mov eax, dword [rsp + 0xc]
mov eax, dword [rsp + 0xc]
mov eax, dword [rsp + 0xc]
mov eax, dword [rsp + 0xc]
mov eax, dword [rsp + 0xc]
mov eax, dword [rsp + 0xc]
mov eax, dword [rsp + 0xc]
mov eax, dword [rsp + 0x1c]
mov eax, dword [rsp + 0x1c]
mov eax, dword [rsp + 0x1c]
mov eax, dword [rsp + 0x1c]
mov eax, dword [rsp + 0x1c]
mov eax, dword [rsp + 0x1c]
mov eax, dword [rsp + 0x1c]
mov eax, dword [rsp + 4]
mov eax, dword [rsp + 4]
mov eax, dword [rsp + 4]
mov eax, dword [rsp + 4]
mov eax, dword [rsp + 4]
mov eax, dword [rsp + 4]
mov eax, dword [rsp + 4]
mov eax, dword [rsp + 0x18]
mov eax, dword [rsp + 0x18]
mov eax, dword [rsp + 0x18]
mov eax, dword [rsp + 0x18]
mov eax, dword [rsp + 0x18]
mov eax, dword [rsp + 0x18]
mov eax, dword [rsp + 0x18]
mov eax, dword [rsp + 0x18]
mov rax, qword [rsp + 0x30]
mov eax, dword [rsp + 0x18]
mov eax, dword [rsp + 0x18]
mov eax, dword [rsp + 0x18]
mov eax, dword [rsp + 0x18]
mov eax, dword [rsp + 0x18]
mov eax, dword [rsp + 0x18]
mov eax, dword [rsp + 0xc]
mov eax, dword [rsp + 0xc]
mov eax, dword [rsp + 0xc]
mov eax, dword [rsp + 0xc]
mov eax, dword [rsp + 0x1c]
mov eax, dword [rsp + 0x1c]
mov eax, dword [rsp + 4]
mov eax, dword [rsp + 4]
mov eax, dword [rsp + 4]
mov eax, dword [rsp + 4]
mov eax, dword [rsp + 4]
mov eax, dword [rsp + 4]
mov eax, dword [rsp + 4]
mov eax, dword [rsp + 4]
mov eax, dword [rsp + 4]
mov eax, dword [rsp + 4]
mov rax, qword [rsp + 0x30]
mov rax, qword [rsp + 0x30]
mov eax, dword [rsp + 0x3c]
mov eax, dword [rsp + 0x3c]
mov eax, dword [rsp + 0x3c]
mov ecx, 0xd9f8dc98
jmp 0x18000c470
mov eax, dword [rsp + 0x48]
mov dword [rsp + 0x3c], eax
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x30], rax
movd dword [rsp + 4], xmm14
pshufd xmm0, xmm14, 0xe5
movd dword [rsp + 0x1c], xmm0
pshufd xmm0, xmm14, 0x4e
movd dword [rsp + 0xc], xmm0
pshufd xmm0, xmm14, 0xe7
movd dword [rsp + 0x18], xmm0
mov eax, dword [0x18005af80]
lea ecx, [rax - 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
mov ecx, 0x4251b1ea
mov ebp, 0xd9f8dc98
cmove ecx, ebp
cmp dword [0x18005af7c], 0xa
setl dl
mov ebx, 0x4251b1ea
cmovge ecx, ebx
xor dl, al
cmovne ecx, ebp
jmp 0x18000c470
movzx eax, byte [rsp + 0x27]
test al, al
mov ecx, 0xcd03afbc
mov eax, 0xcf328e6
cmovne ecx, eax
jmp 0x18000c470
mov r8, qword [rsp + 0x68]
mov r14d, dword [rsp + 8]
mov eax, dword [rsp + 0x14]
mov dword [rsp + 0x50], eax
mov r9d, dword [rsp + 0x20]
mov rax, qword [rsp + 0x28]
movd xmm14, dword [rax]
mov r15d, dword [rsp + 0x20]
mov ecx, dword [rsp + 0x10]
shr ecx, 0x10
mov eax, ecx
xor eax, 0xff00
and eax, ecx
mov ecx, dword [rsp + 8]
shr ecx, 8
mov r12d, ecx
xor r12d, 0xffff00
and r12d, ecx
mov r10d, dword [rsp + 0x14]
mov rcx, qword [rsp + 0x28]
movd xmm15, dword [rcx + 4]
mov r13d, dword [rsp + 0x14]
mov esi, dword [rsp + 0x20]
mov ebp, dword [rsp + 0x10]
shr ebp, 8
mov ecx, ebp
xor ecx, 0xffff00
and ecx, ebp
mov r11d, dword [rsp + 8]
mov rbp, qword [rsp + 0x28]
movd xmm7, dword [rbp + 8]
mov ebp, dword [rsp + 8]
mov ebx, dword [rsp + 0x14]
shr ebx, 0x10
mov edi, ebx
xor edi, 0xff00
and edi, ebx
shr r14d, 0x10
movzx ebx, r14b
lea rdx, [0x18004d880]
movd xmm2, dword [rdx + rbx*4]
movd xmm4, dword [rdx + rax*4]
shr esi, 0x10
movzx eax, sil
movd xmm5, dword [rdx + rax*4]
movd xmm6, dword [rdx + rdi*4]
lea rax, [0x18004d480]
movd xmm3, dword [rax + r8*4]
shr r15d, 0x18
movd xmm1, dword [rax + r15*4]
shr r13d, 0x18
shr ebp, 0x18
movd xmm8, dword [rax + r13*4]
movd xmm9, dword [rax + rbp*4]
mov eax, dword [rsp + 0x20]
shr eax, 8
mov ebp, eax
xor ebp, 0xffff00
and ebp, eax
mov eax, dword [rsp + 0x50]
movzx eax, ah
lea rdx, [0x18004dc80]
movd xmm0, dword [rdx + rax*4]
movd xmm10, dword [rdx + r12*4]
movd xmm11, dword [rdx + rcx*4]
movd xmm12, dword [rdx + rbp*4]
punpckldq xmm14, xmm15
punpckldq xmm2, xmm4
punpckldq xmm5, xmm6
punpcklqdq xmm2, xmm5
punpckldq xmm3, xmm1
punpckldq xmm8, xmm9
punpcklqdq xmm3, xmm8
movdqa xmm1, xmm2
movdqa xmm4, xmmword [0x18004a3b0]
pandn xmm1, xmm4
movdqa xmm5, xmmword [0x18004a3c0]
pand xmm2, xmm5
por xmm2, xmm1
movdqa xmm1, xmm3
pandn xmm1, xmm4
pand xmm3, xmm5
por xmm3, xmm1
pxor xmm3, xmm2
punpckldq xmm0, xmm10
mov ecx, 0xff
and r9d, ecx
and r10d, ecx
and r11d, ecx
punpckldq xmm11, xmm12
punpcklqdq xmm0, xmm11
movdqa xmm1, xmm3
pandn xmm1, xmm0
pandn xmm0, xmm3
por xmm0, xmm1
lea rax, [0x18004e080]
mov rdx, rax
movd xmm1, dword [rdx + r9*4]
mov eax, dword [rsp + 0x10]
and eax, ecx
movd xmm2, dword [rdx + r10*4]
punpckldq xmm1, xmm2
movd xmm2, dword [rdx + r11*4]
movd xmm3, dword [rdx + rax*4]
punpckldq xmm2, xmm3
punpcklqdq xmm1, xmm2
movdqa xmm2, xmm0
movdqa xmm3, xmmword [0x18004a3d0]
pandn xmm2, xmm3
movdqa xmm4, xmmword [0x18004a3e0]
pand xmm0, xmm4
por xmm0, xmm2
movdqa xmm2, xmm1
pandn xmm2, xmm3
pand xmm1, xmm4
por xmm1, xmm2
pxor xmm1, xmm0
mov rax, qword [rsp + 0x28]
movd xmm0, dword [rax + 0xc]
punpckldq xmm7, xmm0
punpcklqdq xmm14, xmm7
movdqa xmm0, xmm1
movdqa xmm2, xmmword [0x18004a3f0]
pandn xmm0, xmm2
pand xmm1, xmm13
por xmm1, xmm0
movdqa xmm0, xmm14
pandn xmm0, xmm2
pand xmm14, xmm13
por xmm14, xmm0
pxor xmm14, xmm1
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x50], rax
mov eax, dword [rsp + 0x4c]
mov dword [rsp + 0x48], eax
mov ecx, 0xc0a9755a
jmp 0x18000c470
movaps xmm6, xmmword [rsp + 0x80]
movaps xmm7, xmmword [rsp + 0x90]
movaps xmm8, xmmword [rsp + 0xa0]
movaps xmm9, xmmword [rsp + 0xb0]
movaps xmm10, xmmword [rsp + 0xc0]
movaps xmm11, xmmword [rsp + 0xd0]
movaps xmm12, xmmword [rsp + 0xe0]
movaps xmm13, xmmword [rsp + 0xf0]
movaps xmm14, xmmword [rsp + 0x100]
movaps xmm15, xmmword [rsp + 0x110]
add rsp, 0x128
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret