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

Disassembly:
mov dword [rsp + 0x20], r9d
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
sub rsp, 0xd8
cmp qword [rsp + 0xe8], 0
jne 0x140009efb
jmp 0x14000a9ca
cmp dword [rsp + 0xf8], 0x10
je 0x140009f1e
cmp dword [rsp + 0xf8], 0x18
je 0x140009f1e
cmp dword [rsp + 0xf8], 0x20
je 0x140009f1e
jmp 0x14000a9ca
cmp dword [rsp + 0x100], 0x10
je 0x140009f41
cmp dword [rsp + 0x100], 0x18
je 0x140009f41
cmp dword [rsp + 0x100], 0x20
je 0x140009f41
jmp 0x14000a9ca
mov rax, qword [rsp + 0xe0]
mov ecx, dword [rsp + 0xf8]
mov dword [rax + 0x3cc], ecx
mov rax, qword [rsp + 0xe0]
mov ecx, dword [rsp + 0x100]
mov dword [rax + 0x3d0], ecx
mov rax, qword [rsp + 0xe0]
movsxd rax, dword [rax + 0x3d0]
mov rcx, qword [rsp + 0xe0]
add rcx, 0x3d8
mov r8, rax
mov rdx, qword [rsp + 0xf0]
call fcn.140027380
mov rax, qword [rsp + 0xe0]
movsxd rax, dword [rax + 0x3d0]
mov rcx, qword [rsp + 0xe0]
add rcx, 0x3f8
mov r8, rax
mov rdx, qword [rsp + 0xf0]
call fcn.140027380
mov rax, qword [rsp + 0xe0]
mov eax, dword [rax + 0x3cc]
mov dword [rsp + 0x58], eax
cmp dword [rsp + 0x58], 0x10
je 0x140009fec
cmp dword [rsp + 0x58], 0x18
je 0x14000a046
jmp 0x14000a07d
mov rax, qword [rsp + 0xe0]
cmp dword [rax + 0x3d0], 0x10
jne 0x14000a007
mov dword [rsp + 0x60], 0xa
jmp 0x14000a032
mov rax, qword [rsp + 0xe0]
cmp dword [rax + 0x3d0], 0x18
jne 0x14000a022
mov dword [rsp + 0x5c], 0xc
jmp 0x14000a02a
mov dword [rsp + 0x5c], 0xe
mov eax, dword [rsp + 0x5c]
mov dword [rsp + 0x60], eax
mov rax, qword [rsp + 0xe0]
mov ecx, dword [rsp + 0x60]
mov dword [rax + 0x3d4], ecx
jmp 0x14000a08f
mov rax, qword [rsp + 0xe0]
cmp dword [rax + 0x3d0], 0x20
je 0x14000a061
mov dword [rsp + 0x64], 0xc
jmp 0x14000a069
mov dword [rsp + 0x64], 0xe
mov rax, qword [rsp + 0xe0]
mov ecx, dword [rsp + 0x64]
mov dword [rax + 0x3d4], ecx
jmp 0x14000a08f
mov rax, qword [rsp + 0xe0]
mov dword [rax + 0x3d4], 0xe
mov rax, qword [rsp + 0xe0]
mov eax, dword [rax + 0x3d0]
cdq
and edx, 3
add eax, edx
sar eax, 2
mov dword [rsp + 0x34], eax
mov dword [rsp + 0x24], 0
jmp 0x14000a0be
mov eax, dword [rsp + 0x24]
inc eax
mov dword [rsp + 0x24], eax
mov rax, qword [rsp + 0xe0]
mov eax, dword [rax + 0x3d4]
cmp dword [rsp + 0x24], eax
jg 0x14000a116
mov dword [rsp + 0x20], 0
jmp 0x14000a0e6
mov eax, dword [rsp + 0x20]
inc eax
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x34]
cmp dword [rsp + 0x20], eax
jge 0x14000a114
movsxd rax, dword [rsp + 0x24]
imul rax, rax, 0x20
mov rcx, qword [rsp + 0xe0]
lea rax, [rcx + rax + 0xc]
movsxd rcx, dword [rsp + 0x20]
mov dword [rax + rcx*4], 0
jmp 0x14000a0dc
jmp 0x14000a0b4
mov dword [rsp + 0x24], 0
jmp 0x14000a12a
mov eax, dword [rsp + 0x24]
inc eax
mov dword [rsp + 0x24], eax
mov rax, qword [rsp + 0xe0]
mov eax, dword [rax + 0x3d4]
cmp dword [rsp + 0x24], eax
jg 0x14000a185
mov dword [rsp + 0x20], 0
jmp 0x14000a152
mov eax, dword [rsp + 0x20]
inc eax
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x34]
cmp dword [rsp + 0x20], eax
jge 0x14000a183
movsxd rax, dword [rsp + 0x24]
imul rax, rax, 0x20
mov rcx, qword [rsp + 0xe0]
lea rax, [rcx + rax + 0x1ec]
movsxd rcx, dword [rsp + 0x20]
mov dword [rax + rcx*4], 0
jmp 0x14000a148
jmp 0x14000a120
mov rax, qword [rsp + 0xe0]
mov eax, dword [rax + 0x3d4]
inc eax
imul eax, dword [rsp + 0x34]
mov dword [rsp + 0x54], eax
mov rax, qword [rsp + 0xe0]
mov eax, dword [rax + 0x3cc]
cdq
and edx, 3
add eax, edx
sar eax, 2
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0xe0]
add rax, 0x418
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0xe8]
mov qword [rsp + 0x38], rax
mov dword [rsp + 0x24], 0
jmp 0x14000a1ed
mov eax, dword [rsp + 0x24]
inc eax
mov dword [rsp + 0x24], eax
mov eax, dword [rsp + 0x30]
cmp dword [rsp + 0x24], eax
jge 0x14000a2d2
mov rax, qword [rsp + 0x38]
movzx eax, byte [rax]
mov dword [rsp + 0x88], eax
mov rax, qword [rsp + 0x38]
inc rax
mov qword [rsp + 0x38], rax
mov eax, dword [rsp + 0x88]
shl eax, 0x18
mov rcx, qword [rsp + 0x48]
mov dword [rcx], eax
mov rax, qword [rsp + 0x38]
movzx eax, byte [rax]
mov dword [rsp + 0x8c], eax
mov rax, qword [rsp + 0x38]
inc rax
mov qword [rsp + 0x38], rax
mov eax, dword [rsp + 0x8c]
shl eax, 0x10
mov rcx, qword [rsp + 0x48]
mov ecx, dword [rcx]
or ecx, eax
mov eax, ecx
mov rcx, qword [rsp + 0x48]
mov dword [rcx], eax
mov rax, qword [rsp + 0x38]
movzx eax, byte [rax]
mov dword [rsp + 0x68], eax
mov rax, qword [rsp + 0x38]
inc rax
mov qword [rsp + 0x38], rax
mov eax, dword [rsp + 0x68]
shl eax, 8
mov rcx, qword [rsp + 0x48]
mov ecx, dword [rcx]
or ecx, eax
mov eax, ecx
mov rcx, qword [rsp + 0x48]
mov dword [rcx], eax
mov rax, qword [rsp + 0x38]
movzx eax, byte [rax]
mov dword [rsp + 0x6c], eax
mov rax, qword [rsp + 0x38]
inc rax
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x48]
mov ecx, dword [rsp + 0x6c]
mov eax, dword [rax]
or eax, ecx
mov rcx, qword [rsp + 0x48]
mov dword [rcx], eax
mov rax, qword [rsp + 0x48]
add rax, 4
mov qword [rsp + 0x48], rax
jmp 0x14000a1e3
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
jmp 0x14000a2f8
mov eax, dword [rsp + 0x20]
inc eax
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x28]
inc eax
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x30]
cmp dword [rsp + 0x20], eax
jge 0x14000a3ee
mov eax, dword [rsp + 0x54]
cmp dword [rsp + 0x28], eax
jge 0x14000a3ee
movsxd rax, dword [rsp + 0x20]
mov qword [rsp + 0x90], rax
mov eax, dword [rsp + 0x28]
cdq
idiv dword [rsp + 0x34]
cdqe
imul rax, rax, 0x20
mov rcx, qword [rsp + 0xe0]
lea rax, [rcx + rax + 0xc]
mov qword [rsp + 0x98], rax
mov eax, dword [rsp + 0x28]
cdq
idiv dword [rsp + 0x34]
mov eax, edx
cdqe
mov rcx, qword [rsp + 0xe0]
mov rdx, qword [rsp + 0x90]
mov ecx, dword [rcx + rdx*4 + 0x418]
mov rdx, qword [rsp + 0x98]
mov dword [rdx + rax*4], ecx
movsxd rax, dword [rsp + 0x20]
mov qword [rsp + 0xa0], rax
mov eax, dword [rsp + 0x28]
cdq
idiv dword [rsp + 0x34]
mov rcx, qword [rsp + 0xe0]
mov ecx, dword [rcx + 0x3d4]
sub ecx, eax
mov eax, ecx
cdqe
imul rax, rax, 0x20
mov rcx, qword [rsp + 0xe0]
lea rax, [rcx + rax + 0x1ec]
mov qword [rsp + 0xa8], rax
mov eax, dword [rsp + 0x28]
cdq
idiv dword [rsp + 0x34]
mov eax, edx
cdqe
mov rcx, qword [rsp + 0xe0]
mov rdx, qword [rsp + 0xa0]
mov ecx, dword [rcx + rdx*4 + 0x418]
mov rdx, qword [rsp + 0xa8]
mov dword [rdx + rax*4], ecx
jmp 0x14000a2e4
mov dword [rsp + 0x50], 0
mov eax, dword [rsp + 0x54]
cmp dword [rsp + 0x28], eax
jge 0x14000a8ba
mov eax, dword [rsp + 0x30]
dec eax
cdqe
mov rcx, qword [rsp + 0xe0]
mov eax, dword [rcx + rax*4 + 0x418]
mov dword [rsp + 0x2c], eax
movsxd rax, dword [rsp + 0x50]
lea rcx, [0x14002cea0]
movsx eax, byte [rcx + rax]
and eax, 0xff
mov dword [rsp + 0x70], eax
mov eax, dword [rsp + 0x50]
inc eax
mov dword [rsp + 0x50], eax
mov eax, dword [rsp + 0x70]
shl eax, 0x18
mov ecx, dword [rsp + 0x2c]
sar ecx, 0x18
and ecx, 0xff
movsxd rcx, ecx
lea rdx, str.cw
movsx ecx, byte [rdx + rcx]
and ecx, 0xff
mov edx, dword [rsp + 0x2c]
and edx, 0xff
movsxd rdx, edx
lea r8, str.cw
movsx edx, byte [r8 + rdx]
and edx, 0xff
shl edx, 8
mov r8d, dword [rsp + 0x2c]
sar r8d, 8
and r8d, 0xff
movsxd r8, r8d
lea r9, str.cw
movsx r8d, byte [r9 + r8]
and r8d, 0xff
shl r8d, 0x10
mov r9d, dword [rsp + 0x2c]
sar r9d, 0x10
and r9d, 0xff
movsxd r9, r9d
lea r10, str.cw
movsx r9d, byte [r10 + r9]
and r9d, 0xff
shl r9d, 0x18
xor r9d, r8d
mov r8d, r9d
xor r8d, edx
mov edx, r8d
xor edx, ecx
mov ecx, edx
xor ecx, eax
mov eax, ecx
mov ecx, 4
imul rcx, rcx, 0
mov rdx, qword [rsp + 0xe0]
mov ecx, dword [rdx + rcx + 0x418]
xor ecx, eax
mov eax, ecx
mov ecx, 4
imul rcx, rcx, 0
mov rdx, qword [rsp + 0xe0]
mov dword [rdx + rcx + 0x418], eax
cmp dword [rsp + 0x30], 8
je 0x14000a5aa
mov dword [rsp + 0x24], 1
mov dword [rsp + 0x20], 0
mov eax, dword [rsp + 0x30]
cmp dword [rsp + 0x24], eax
jge 0x14000a5a5
movsxd rax, dword [rsp + 0x20]
mov rcx, qword [rsp + 0xe0]
mov eax, dword [rcx + rax*4 + 0x418]
mov dword [rsp + 0x74], eax
mov eax, dword [rsp + 0x20]
inc eax
mov dword [rsp + 0x20], eax
movsxd rax, dword [rsp + 0x24]
mov rcx, qword [rsp + 0xe0]
mov edx, dword [rsp + 0x74]
mov eax, dword [rcx + rax*4 + 0x418]
xor eax, edx
movsxd rcx, dword [rsp + 0x24]
mov rdx, qword [rsp + 0xe0]
mov dword [rdx + rcx*4 + 0x418], eax
mov eax, dword [rsp + 0x24]
inc eax
mov dword [rsp + 0x24], eax
jmp 0x14000a53f
jmp 0x14000a7a1
mov dword [rsp + 0x24], 1
mov dword [rsp + 0x20], 0
mov eax, dword [rsp + 0x30]
cdq
sub eax, edx
sar eax, 1
cmp dword [rsp + 0x24], eax
jge 0x14000a625
movsxd rax, dword [rsp + 0x20]
mov rcx, qword [rsp + 0xe0]
mov eax, dword [rcx + rax*4 + 0x418]
mov dword [rsp + 0x78], eax
mov eax, dword [rsp + 0x20]
inc eax
mov dword [rsp + 0x20], eax
movsxd rax, dword [rsp + 0x24]
mov rcx, qword [rsp + 0xe0]
mov edx, dword [rsp + 0x78]
mov eax, dword [rcx + rax*4 + 0x418]
xor eax, edx
movsxd rcx, dword [rsp + 0x24]
mov rdx, qword [rsp + 0xe0]
mov dword [rdx + rcx*4 + 0x418], eax
mov eax, dword [rsp + 0x24]
inc eax
mov dword [rsp + 0x24], eax
jmp 0x14000a5ba
mov eax, dword [rsp + 0x30]
cdq
sub eax, edx
sar eax, 1
dec eax
cdqe
mov rcx, qword [rsp + 0xe0]
mov eax, dword [rcx + rax*4 + 0x418]
mov dword [rsp + 0x2c], eax
mov eax, dword [rsp + 0x2c]
and eax, 0xff
cdqe
lea rcx, str.cw
movsx eax, byte [rcx + rax]
and eax, 0xff
mov ecx, dword [rsp + 0x2c]
sar ecx, 8
and ecx, 0xff
movsxd rcx, ecx
lea rdx, str.cw
movsx ecx, byte [rdx + rcx]
and ecx, 0xff
shl ecx, 8
xor eax, ecx
mov ecx, dword [rsp + 0x2c]
sar ecx, 0x10
and ecx, 0xff
movsxd rcx, ecx
lea rdx, str.cw
movsx ecx, byte [rdx + rcx]
and ecx, 0xff
shl ecx, 0x10
xor eax, ecx
mov ecx, dword [rsp + 0x2c]
sar ecx, 0x18
and ecx, 0xff
movsxd rcx, ecx
lea rdx, str.cw
movsx ecx, byte [rdx + rcx]
and ecx, 0xff
shl ecx, 0x18
xor eax, ecx
mov dword [rsp + 0x7c], eax
mov eax, dword [rsp + 0x30]
cdq
sub eax, edx
sar eax, 1
cdqe
mov rcx, qword [rsp + 0xe0]
mov eax, dword [rcx + rax*4 + 0x418]
mov ecx, dword [rsp + 0x7c]
xor eax, ecx
mov dword [rsp + 0x80], eax
mov eax, dword [rsp + 0x30]
cdq
sub eax, edx
sar eax, 1
cdqe
mov rcx, qword [rsp + 0xe0]
mov edx, dword [rsp + 0x80]
mov dword [rcx + rax*4 + 0x418], edx
mov eax, dword [rsp + 0x30]
cdq
sub eax, edx
sar eax, 1
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
inc eax
mov dword [rsp + 0x24], eax
mov eax, dword [rsp + 0x30]
cmp dword [rsp + 0x24], eax
jge 0x14000a7a1
movsxd rax, dword [rsp + 0x20]
mov rcx, qword [rsp + 0xe0]
mov eax, dword [rcx + rax*4 + 0x418]
mov dword [rsp + 0x84], eax
mov eax, dword [rsp + 0x20]
inc eax
mov dword [rsp + 0x20], eax
movsxd rax, dword [rsp + 0x24]
mov rcx, qword [rsp + 0xe0]
mov edx, dword [rsp + 0x84]
mov eax, dword [rcx + rax*4 + 0x418]
xor eax, edx
movsxd rcx, dword [rsp + 0x24]
mov rdx, qword [rsp + 0xe0]
mov dword [rdx + rcx*4 + 0x418], eax
mov eax, dword [rsp + 0x24]
inc eax
mov dword [rsp + 0x24], eax
jmp 0x14000a735
mov dword [rsp + 0x20], 0
jmp 0x14000a7bf
mov eax, dword [rsp + 0x20]
inc eax
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x28]
inc eax
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x30]
cmp dword [rsp + 0x20], eax
jge 0x14000a8b5
mov eax, dword [rsp + 0x54]
cmp dword [rsp + 0x28], eax
jge 0x14000a8b5
movsxd rax, dword [rsp + 0x20]
mov qword [rsp + 0xb0], rax
mov eax, dword [rsp + 0x28]
cdq
idiv dword [rsp + 0x34]
cdqe
imul rax, rax, 0x20
mov rcx, qword [rsp + 0xe0]
lea rax, [rcx + rax + 0xc]
mov qword [rsp + 0xb8], rax
mov eax, dword [rsp + 0x28]
cdq
idiv dword [rsp + 0x34]
mov eax, edx
cdqe
mov rcx, qword [rsp + 0xe0]
mov rdx, qword [rsp + 0xb0]
mov ecx, dword [rcx + rdx*4 + 0x418]
mov rdx, qword [rsp + 0xb8]
mov dword [rdx + rax*4], ecx
movsxd rax, dword [rsp + 0x20]
mov qword [rsp + 0xc0], rax
mov eax, dword [rsp + 0x28]
cdq
idiv dword [rsp + 0x34]
mov rcx, qword [rsp + 0xe0]
mov ecx, dword [rcx + 0x3d4]
sub ecx, eax
mov eax, ecx
cdqe
imul rax, rax, 0x20
mov rcx, qword [rsp + 0xe0]
lea rax, [rcx + rax + 0x1ec]
mov qword [rsp + 0xc8], rax
mov eax, dword [rsp + 0x28]
cdq
idiv dword [rsp + 0x34]
mov eax, edx
cdqe
mov rcx, qword [rsp + 0xe0]
mov rdx, qword [rsp + 0xc0]
mov ecx, dword [rcx + rdx*4 + 0x418]
mov rdx, qword [rsp + 0xc8]
mov dword [rdx + rax*4], ecx
jmp 0x14000a7ab
jmp 0x14000a3f6
mov dword [rsp + 0x40], 1
jmp 0x14000a8ce
mov eax, dword [rsp + 0x40]
inc eax
mov dword [rsp + 0x40], eax
mov rax, qword [rsp + 0xe0]
mov eax, dword [rax + 0x3d4]
cmp dword [rsp + 0x40], eax
jge 0x14000a9be
mov dword [rsp + 0x20], 0
jmp 0x14000a8fa
mov eax, dword [rsp + 0x20]
inc eax
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x34]
cmp dword [rsp + 0x20], eax
jge 0x14000a9b9
movsxd rax, dword [rsp + 0x40]
imul rax, rax, 0x20
mov rcx, qword [rsp + 0xe0]
lea rax, [rcx + rax + 0x1ec]
movsxd rcx, dword [rsp + 0x20]
mov eax, dword [rax + rcx*4]
mov dword [rsp + 0x2c], eax
mov eax, dword [rsp + 0x2c]
sar eax, 0x18
and eax, 0xff
cdqe
lea rcx, [0x14002bea0]
mov edx, dword [rsp + 0x2c]
sar edx, 0x10
and edx, 0xff
movsxd rdx, edx
lea r8, [0x14002c2a0]
mov edx, dword [r8 + rdx*4]
mov eax, dword [rcx + rax*4]
xor eax, edx
mov ecx, dword [rsp + 0x2c]
sar ecx, 8
and ecx, 0xff
movsxd rcx, ecx
lea rdx, [0x14002c6a0]
xor eax, dword [rdx + rcx*4]
mov ecx, dword [rsp + 0x2c]
and ecx, 0xff
movsxd rcx, ecx
lea rdx, [0x14002caa0]
xor eax, dword [rdx + rcx*4]
movsxd rcx, dword [rsp + 0x40]
imul rcx, rcx, 0x20
mov rdx, qword [rsp + 0xe0]
lea rcx, [rdx + rcx + 0x1ec]
movsxd rdx, dword [rsp + 0x20]
mov dword [rcx + rdx*4], eax
jmp 0x14000a8f0
jmp 0x14000a8c4
mov rax, qword [rsp + 0xe0]
mov byte [rax + 8], 1
add rsp, 0xd8
ret