Function at 0x180001520
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, 0xa8
mov r10, rdx
mov r11, rcx
mov rax, qword [0x180028048]
xor rax, rsp
mov qword [rsp + 0xa0], rax
mov edi, 0xe65c9f03
xor eax, eax
mov r8d, 0xf69dff7e
mov r9d, 0x8b9adf43
nop
cmp edi, 0xf69dff7d
jg 0x1800015c0
cmp edi, 0x8b9adf43
je 0x180001616
cmp edi, 0x8d777904
je 0x18000167d
cmp edi, 0xe65c9f03
jne 0x180001560
mov byte [rsp + 0x9e], al
movzx edi, byte [rsp + 0x9e]
mov dword [rsp + 0x94], edi
mov edi, dword [rsp + 0x94]
cmp edi, 4
mov edi, 0x5d61de73
cmovl edi, r8d
cmp edi, 0xf69dff7d
jle 0x180001568
nop dword [rax]
cmp edi, 0xf69dff7e
je 0x18000169d
cmp edi, 0x5d61de73
je 0x1800016b5
cmp edi, 0x7b3dedc8
jne 0x180001560
mov byte [rsp + 0x9f], bl
movzx edi, byte [rsp + 0x9f]
mov dword [rsp + 0x98], edi
mov edi, dword [rsp + 0x98]
cmp edi, 4
mov edi, 0x8d777904
cmovl edi, r9d
cmp edi, 0xf69dff7d
jg 0x1800015c0
jmp 0x180001568
mov ebx, dword [rsp + 0x94]
mov edi, dword [rsp + 0x98]
lea ebx, [rdi + rbx*4]
add ebx, 0xe0
movsxd rbx, ebx
movzx ebx, byte [r10 + rbx]
movzx edi, byte [rsp + 0x9e]
movzx esi, byte [rsp + 0x9f]
lea rdi, [r11 + rdi*4]
movzx edx, byte [rsi + rdi]
mov ecx, edx
not cl
and cl, bl
not bl
and bl, dl
or bl, cl
mov byte [rsi + rdi], bl
movzx ebx, byte [rsp + 0x9f]
add bl, 1
mov edi, 0x7b3dedc8
cmp edi, 0xf69dff7d
jg 0x1800015c0
jmp 0x180001568
movzx eax, byte [rsp + 0x9e]
add al, 1
mov edi, 0xe65c9f03
cmp edi, 0xf69dff7d
jg 0x1800015c0
jmp 0x180001568
mov edi, 0x7b3dedc8
xor ebx, ebx
cmp edi, 0xf69dff7d
jg 0x1800015c0
jmp 0x180001568
mov r8b, 0xd
mov ecx, 0x6a5dbffd
nop dword [rax]
cmp ecx, 0xe8b1840a
je 0x1800020c1
cmp ecx, 0x501ef5be
je 0x1800019e0
cmp ecx, 0x6a5dbffd
jne 0x1800016c0
mov byte [rsp + 0x93], r8b
mov cl, byte [r11 + 0xd]
mov dl, byte [r11 + 9]
mov byte [r11 + 0xd], dl
mov dl, byte [r11 + 5]
mov byte [r11 + 9], dl
mov dl, byte [r11 + 1]
mov bl, byte [r11 + 2]
mov byte [r11 + 5], dl
mov byte [r11 + 1], cl
mov cl, byte [r11 + 0xa]
mov byte [r11 + 2], cl
mov byte [r11 + 0xa], bl
mov cl, byte [r11 + 6]
mov dl, byte [r11 + 0xe]
mov byte [r11 + 6], dl
mov byte [r11 + 0xe], cl
mov cl, byte [r11 + 3]
mov dl, byte [r11 + 7]
mov byte [r11 + 3], dl
mov dl, byte [r11 + 0xb]
mov byte [r11 + 7], dl
mov dl, byte [r11 + 0xf]
mov byte [r11 + 0xb], dl
mov byte [r11 + 0xf], cl
mov ebx, 0x6c4c9d61
xor ecx, ecx
nop
cmp ebx, 0x3280068d
jg 0x1800017f0
cmp ebx, 0xeb5dd200
je 0x180001785
cmp ebx, 0xef1923c7
je 0x1800017a5
cmp ebx, 0x16e720e5
jne 0x180001750
mov ebx, 0xeb5dd200
xor edx, edx
cmp ebx, 0x3280068d
jle 0x18000175c
jmp 0x1800017f0
mov byte [rsp + 0x98], dl
mov bl, byte [rsp + 0x98]
cmp bl, 4
mov ebx, 0x46cc14d6
mov eax, 0xef1923c7
jmp 0x180001827
movzx edx, byte [rsp + 0x98]
movzx ebx, byte [rsp + 0x94]
lea rdx, [r11 + rdx*4]
movzx edi, byte [rbx + rdx]
lea rax, [0x18001d430]
movzx eax, byte [rdi + rax]
mov byte [rbx + rdx], al
movzx edx, byte [rsp + 0x98]
add dl, 1
mov ebx, 0xeb5dd200
cmp ebx, 0x3280068d
jle 0x18000175c
nop word [rax + rax]
cmp ebx, 0x3280068e
je 0x180001856
cmp ebx, 0x46cc14d6
je 0x180001838
cmp ebx, 0x6c4c9d61
jne 0x180001750
mov byte [rsp + 0x94], cl
mov bl, byte [rsp + 0x94]
cmp bl, 4
mov ebx, 0x3280068e
mov eax, 0x16e720e5
cmovb ebx, eax
cmp ebx, 0x3280068d
jle 0x18000175c
jmp 0x1800017f0
movzx ecx, byte [rsp + 0x94]
add cl, 1
mov ebx, 0x6c4c9d61
cmp ebx, 0x3280068d
jle 0x18000175c
jmp 0x1800017f0
movzx r9d, byte [rsp + 0x93]
shl r9d, 4
mov edi, 0xe65c9f03
xor esi, esi
nop word [rax + rax]
cmp edi, 0xf69dff7d
jg 0x180001950
cmp edi, 0x8b9adf43
je 0x1800018c8
cmp edi, 0x8d777904
je 0x180001932
cmp edi, 0xe65c9f03
jne 0x180001870
mov byte [rsp + 0x9e], sil
movzx eax, byte [rsp + 0x9e]
mov dword [rsp + 0x94], eax
mov eax, dword [rsp + 0x94]
cmp eax, 4
mov edi, 0x5d61de73
mov eax, 0xf69dff7e
jmp 0x180001996
mov eax, dword [rsp + 0x94]
lea eax, [r9 + rax*4]
add eax, dword [rsp + 0x98]
cdqe
movzx eax, byte [r10 + rax]
movzx ebx, byte [rsp + 0x9e]
movzx edi, byte [rsp + 0x9f]
lea rbx, [r11 + rbx*4]
movzx edx, byte [rdi + rbx]
mov ecx, edx
not cl
and cl, 0xe5
and dl, 0x1a
or dl, cl
mov ecx, eax
not cl
and cl, 0xe5
and al, 0x1a
or al, cl
xor al, dl
mov byte [rdi + rbx], al
movzx ebx, byte [rsp + 0x9f]
add bl, 1
mov edi, 0x7b3dedc8
cmp edi, 0xf69dff7d
jg 0x180001950
jmp 0x18000187c
movzx esi, byte [rsp + 0x9e]
add sil, 1
mov edi, 0xe65c9f03
cmp edi, 0xf69dff7d
jle 0x18000187c
nop
cmp edi, 0xf69dff7e
je 0x1800019a6
cmp edi, 0x5d61de73
je 0x1800019ba
cmp edi, 0x7b3dedc8
jne 0x180001870
mov byte [rsp + 0x9f], bl
movzx eax, byte [rsp + 0x9f]
mov dword [rsp + 0x98], eax
mov eax, dword [rsp + 0x98]
cmp eax, 4
mov edi, 0x8d777904
mov eax, 0x8b9adf43
cmovl edi, eax
cmp edi, 0xf69dff7d
jg 0x180001950
jmp 0x18000187c
mov edi, 0x7b3dedc8
xor ebx, ebx
cmp edi, 0xf69dff7d
jg 0x180001950
jmp 0x18000187c
cmp byte [rsp + 0x93], 0
mov ecx, 0x501ef5be
mov eax, 0xe8b1840a
cmove ecx, eax
cmp ecx, 0xe8b1840a
jne 0x1800016cc
jmp 0x1800020c1
xor eax, eax
mov ecx, 0x483aa5e0
nop word [rax + rax]
cmp ecx, 0x7bc1d08c
je 0x1800020b0
cmp ecx, 0x5a160b71
je 0x180001a40
cmp ecx, 0x483aa5e0
jne 0x1800019f0
mov dword [rsp + 0x98], eax
mov ecx, dword [rsp + 0x98]
cmp ecx, 4
mov ecx, 0x7bc1d08c
mov edx, 0x5a160b71
cmovl ecx, edx
cmp ecx, 0x7bc1d08c
jne 0x1800019fc
jmp 0x1800020b0
movsxd rax, dword [rsp + 0x98]
mov r12b, byte [r11 + rax*4]
mov r15b, byte [r11 + rax*4 + 1]
mov sil, byte [r11 + rax*4 + 2]
mov rdi, rax
mov qword [rsp + 0x80], rax
lea eax, [r12 + r12]
mov ebx, r12d
sar bl, 7
mov edx, ebx
xor dl, 0xe4
and dl, bl
mov ebx, edx
not bl
and bl, 0xea
and dl, 0x15
or dl, bl
mov ebx, eax
not bl
and bl, 0xea
mov ebp, eax
and bpl, 0x14
or bpl, bl
xor bpl, dl
mov qword [rsp + 0x50], rbp
lea edx, [rbp + rbp]
sar al, 7
mov ebp, eax
xor bpl, 0xe4
and bpl, al
mov eax, edx
not al
and al, bpl
mov byte [rsp + 0x30], al
not bpl
and bpl, dl
mov qword [rsp + 0x38], rbp
sar dl, 7
mov eax, edx
xor al, 0xe4
and al, dl
mov r13d, eax
lea eax, [r15 + r15]
mov ebx, r15d
sar bl, 7
mov edx, ebx
xor dl, 0xe4
and dl, bl
mov ebx, edx
not bl
and bl, 0x5c
and dl, 0xa3
or dl, bl
mov ebx, eax
not bl
and bl, 0x5c
mov ecx, eax
and cl, 0xa2
or cl, bl
xor cl, dl
mov qword [rsp + 0x48], rcx
lea edx, [rcx + rcx]
sar al, 7
not al
or al, 0xe4
mov ecx, eax
not cl
mov ebx, edx
mov byte [rsp + 0x34], dl
mov byte [rsp + 0x58], dl
and al, 0xf
and cl, 0x10
or cl, al
sar dl, 7
not dl
or dl, 0xe4
mov eax, edx
not al
and dl, 0x21
and al, 0x1a
or al, dl
mov byte [rsp + 0x40], al
mov qword [rsp + 0x70], rsi
lea edx, [rsi + rsi]
mov eax, esi
sar al, 7
not al
or al, 0xe4
mov ebx, edx
and bl, al
not al
mov ebp, edx
not bpl
and bpl, al
or bpl, bl
mov qword [rsp + 0x78], rbp
lea eax, [rbp + rbp]
sar dl, 7
mov esi, edx
xor sil, 0xe4
and sil, dl
mov edx, eax
not dl
and dl, 0x9e
mov ebx, eax
and bl, 0x60
or bl, dl
mov edx, esi
not dl
and dl, 0x9e
and sil, 0x61
or sil, dl
xor sil, bl
mov qword [rsp + 0x60], rsi
lea r14d, [rsi + rsi]
sar al, 7
not al
or al, 0xe4
mov ebx, r14d
and bl, al
mov byte [rsp + 0x2f], bl
not al
not r14b
and r14b, al
mov r8b, byte [r11 + rdi*4 + 3]
mov edx, r8d
sar dl, 7
not dl
or dl, 0xe4
mov ebx, edx
not bl
and dl, 0x56
and bl, 9
or bl, dl
lea esi, [r8 + r8]
mov edx, esi
not dl
and dl, 0x56
mov ebp, esi
and bpl, 0xa8
or bpl, dl
xor bpl, bl
sar sil, 7
not sil
or sil, 0xe4
lea edx, [rbp + rbp]
mov eax, edx
and al, sil
mov byte [rsp + 0x2e], al
not sil
mov r9d, edx
not r9b
and r9b, sil
sar dl, 7
mov eax, edx
xor al, 0xe4
and al, dl
mov byte [rsp + 0x2d], al
mov eax, r15d
not al
mov byte [rsp + 0x2c], al
and al, r12b
mov qword [rsp + 0x88], r10
mov r10d, r12d
not r10b
mov byte [rsp + 0x2b], r10b
and r10b, r15b
or r10b, al
mov esi, ebp
not sil
and sil, r10b
not r10b
and r10b, bpl
mov edi, r15d
mov r15, qword [rsp + 0x38]
or r15b, byte [rsp + 0x30]
mov qword [rsp + 0x38], r15
mov eax, r13d
mov ebx, r13d
not bl
lea r13d, [r15 + r15]
and bl, r13b
not r13b
and r13b, al
or r13b, bl
mov al, byte [rsp + 0x34]
not al
and al, 0xf
mov dl, byte [rsp + 0x58]
and dl, 0xf0
or dl, al
xor cl, dl
mov qword [rsp + 0x68], rcx
mov qword [rsp + 0x58], r11
lea r11d, [rcx + rcx]
mov ebx, r11d
not bl
and bl, 0x21
and r11b, 0xde
or r11b, bl
xor r11b, byte [rsp + 0x40]
or r14b, byte [rsp + 0x2f]
mov dword [rsp + 0x34], r14d
or r9b, byte [rsp + 0x2e]
mov qword [rsp + 0x40], r9
mov al, byte [rsp + 0x2d]
mov ebx, eax
not bl
lea ecx, [r9 + r9]
and bl, cl
not cl
and cl, al
or cl, bl
mov dword [rsp + 0x30], ecx
mov rax, qword [rsp + 0x70]
mov r14d, eax
not r14b
mov ebx, r14d
and bl, 0xaf
mov edx, eax
and dl, 0x50
or dl, bl
mov cl, byte [rsp + 0x2c]
and cl, 0xaf
and dil, 0x50
or dil, cl
xor dil, dl
or r10b, sil
mov ebx, r10d
not bl
mov esi, ebx
and bl, 0xc7
mov edx, r10d
and r10b, 0x38
or r10b, bl
mov ebx, r14d
and r14b, 0xc7
mov ecx, eax
and al, 0x38
or al, r14b
xor al, r10b
mov ebp, edi
not bpl
mov r10, qword [rsp + 0x50]
and bpl, r10b
mov r14d, eax
mov r15, rax
not r14b
and r14b, r10b
mov r9d, r10d
not r9b
and dil, r9b
or dil, bpl
mov ebp, edi
not bpl
and bpl, r8b
mov eax, r8d
not al
and dil, al
or dil, bpl
and bl, 0x39
and cl, 0xc6
or cl, bl
mov bl, byte [rsp + 0x2b]
and bl, 0x39
and r12b, 0xc6
or r12b, bl
xor r12b, cl
mov ecx, r12d
not cl
and cl, r8b
and r12b, al
or r12b, cl
mov ecx, edi
not cl
mov rbp, qword [rsp + 0x48]
and cl, bpl
mov ebx, r12d
not bl
and bl, bpl
not bpl
and dil, bpl
or dil, cl
and sil, 0x3e
and dl, 0xc1
or dl, sil
and al, 0x3e
and r8b, 0xc1
or r8b, al
xor r8b, dl
mov eax, edi
not al
mov rdx, qword [rsp + 0x38]
and al, dl
mov ecx, r8d
not cl
and cl, dl
mov esi, edx
not sil
and dil, sil
or dil, al
and r12b, bpl
or r12b, bl
mov eax, r12d
not al
and al, 0x3d
and r12b, 0xc2
or r12b, al
mov r10, qword [rsp + 0x78]
mov eax, r10d
not al
mov edx, eax
and dl, 0x3d
mov ebx, r10d
and bl, 0xc2
or bl, dl
xor bl, r12b
mov edx, ebx
not dl
mov r12, qword [rsp + 0x68]
and dl, r12b
mov ebp, r12d
not bpl
and bl, bpl
or bl, dl
mov edx, ebx
not dl
and dl, 0x65
and bl, 0x9a
or bl, dl
and r8b, sil
or r8b, cl
mov ecx, r8d
not cl
and cl, 0xb
and r8b, 0xf4
or r8b, cl
and al, 0xb
and r10b, 0xf4
or r10b, al
mov esi, r13d
not sil
xor r10b, r8b
mov eax, esi
and al, 0x65
mov r8d, r13d
and r8b, 0x9a
or r8b, al
mov rcx, r15
and cl, r9b
or cl, r14b
mov eax, ecx
not al
and al, 0x35
and cl, 0xca
or cl, al
and bpl, 0x35
mov rax, r12
and al, 0xca
or al, bpl
mov edx, edi
not dl
and dl, r13b
mov byte [rsp + 0x38], dl
and dil, sil
xor al, cl
mov r12d, r11d
mov ecx, eax
not cl
and cl, 0x59
and al, 0xa6
or al, cl
mov ebp, r10d
not bpl
and bpl, r13b
and r10b, sil
and sil, 0x59
and r13b, 0xa6
or r13b, sil
mov ecx, r11d
xor r13b, al
mov r14d, r13d
not r14b
and r14b, r11b
mov r15d, r11d
not r15b
xor r8b, bl
mov ebx, r8d
not bl
and bl, 0x1d
and r8b, 0xe2
or r8b, bl
mov ebx, r15d
and bl, 0x1d
and r12b, 0xe2
or r12b, bl
xor r12b, r8b
mov edx, r12d
not dl
mov r9, qword [rsp + 0x40]
and dl, r9b
mov ebx, r9d
not bl
and r12b, bl
or r12b, dl
or r10b, bpl
mov ebp, r10d
not bpl
mov rax, qword [rsp + 0x60]
and bpl, al
mov esi, eax
not sil
and r13b, r15b
or r13b, r14b
mov edx, r13d
not dl
and dl, 0x1f
and r13b, 0xe0
or r13b, dl
mov eax, r12d
not al
mov edx, dword [rsp + 0x34]
and al, dl
and bl, 0x1f
and r9b, 0xe0
or r9b, bl
xor r9b, r13b
mov r13d, r9d
not r13b
and r13b, dl
mov r14d, edx
not r14b
mov edx, dword [rsp + 0x30]
mov r8d, edx
not r8b
and r12b, r14b
or r12b, al
mov byte [rsp + 0x50], r8b
and r10b, sil
or r10b, bpl
mov ebx, r10d
not bl
and bl, 0xea
and r10b, 0x15
or r10b, bl
mov ebx, r15d
and bl, 0xea
and cl, 0x15
or cl, bl
mov ebx, edx
xor cl, r10b
mov ebp, r12d
not bpl
and bpl, dl
and r12b, r8b
mov byte [rsp + 0x48], r8b
and r9b, r14b
or r9b, r13b
mov r13d, r9d
not r13b
and r13b, 0x14
and r9b, 0xeb
or r9b, r13b
mov r13d, edx
and r8b, 0x14
and dl, 0xeb
or dl, r8b
xor dl, r9b
mov dword [rsp + 0x30], edx
mov rax, qword [rsp + 0x60]
mov edx, eax
mov r9d, ecx
not r9b
mov eax, dword [rsp + 0x34]
and r9b, al
or dil, byte [rsp + 0x38]
mov r10d, edi
not r10b
and r10b, 0x64
and dil, 0x9b
or dil, r10b
mov r10, qword [rsp + 0x88]
and sil, 0x64
and dl, 0x9b
or dl, sil
xor dl, dil
mov r8d, edx
not r8b
and r8b, 0x20
and dl, 0xdf
or dl, r8b
and r15b, 0x20
and r11b, 0xdf
or r11b, r15b
xor r11b, dl
mov edx, r11d
not dl
and dl, 0xe7
and r11b, 0x18
or r11b, dl
and cl, r14b
and r14b, 0xe7
and al, 0x18
or al, r14b
xor al, r11b
mov r11, qword [rsp + 0x58]
mov edx, eax
not dl
and dl, 0xc8
and al, 0x37
or al, dl
mov dl, byte [rsp + 0x50]
and dl, 0xc8
and bl, 0x37
or bl, dl
xor bl, al
mov rdx, qword [rsp + 0x80]
mov byte [r11 + rdx*4], bl
or r12b, bpl
mov byte [r11 + rdx*4 + 1], r12b
or cl, r9b
mov eax, ecx
not al
and al, 0xdb
and cl, 0x24
or cl, al
mov al, byte [rsp + 0x48]
and al, 0xdb
and r13b, 0x24
or r13b, al
xor r13b, cl
mov byte [r11 + rdx*4 + 2], r13b
mov eax, dword [rsp + 0x30]
mov byte [r11 + rdx*4 + 3], al
mov eax, dword [rsp + 0x98]
add eax, 1
jmp 0x1800019e2
mov r8b, byte [rsp + 0x93]
add r8b, 0xff
jmp 0x1800016b8
mov rcx, qword [rsp + 0xa0]
xor rcx, rsp
call fcn.180007580
nop
add rsp, 0xa8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret