Function at 0x140016640
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, 0x30
mov eax, dword [0x140031470]
mov ebp, dword [0x140031474]
lea ebx, [rax - 1]
imul ebx, eax
mov eax, ebx
not eax
and eax, 0xfffffffe
xor ebx, 1
or ebx, eax
cmp ebx, 0xffffffff
sete byte [rsp + 0x11]
cmp ebp, 0xa
setl byte [rsp + 0x12]
mov qword [rsp + 0x28], rdx
mov r12, rcx
mov ebp, 0xc465aa4b
jmp 0x1400166a0
test bl, bl
cmove ebp, edi
test al, al
cmovne ebp, edi
nop word [rax + rax]
cmp ebp, 0xf01e03c1
jle 0x140016a20
cmp ebp, 0x32044cb9
jle 0x140016ad0
cmp ebp, 0x4279712f
jg 0x140016b61
cmp ebp, 0x35c9710b
jg 0x140016d5d
cmp ebp, 0x32044cba
je 0x1400170d5
cmp ebp, 0x33d8fa34
jne 0x1400166a0
mov edi, dword [rsp]
lea ebp, [rdi*4]
mov r8d, dword [rsp]
lea ecx, [r8*4 - 0x10]
movzx ecx, byte [r12 + rcx]
movzx eax, byte [rsp + 0xd]
mov edx, eax
not dl
and dl, 0x53
mov ebx, eax
and bl, 0xac
or bl, dl
mov edx, ecx
not dl
xor bl, 0x53
or bl, dl
not bl
and dl, 0xa8
and cl, 0x57
or cl, dl
xor cl, al
xor cl, 0xa8
and cl, al
mov eax, ebx
and al, cl
xor cl, bl
or cl, al
mov byte [r12 + rbp], cl
lea eax, [r8*4 - 0xf]
movzx ebx, byte [r12 + rax]
movzx eax, byte [rsp + 0xe]
not bl
mov ecx, ebx
or cl, al
not cl
xor bl, al
not bl
and bl, al
mov eax, ecx
and al, bl
xor bl, cl
or bl, al
mov r10d, ebp
not r10d
mov eax, r10d
and eax, ebp
lea ecx, [rdi*4 + 1]
mov edx, eax
not edx
mov edi, ecx
not edi
mov esi, edx
and esi, 0x4bc3d031
and eax, 0xb43c2fcc
or eax, esi
or edx, edi
and edi, 0x4bc3d030
and ecx, 0xb43c2fcc
or ecx, edi
xor ecx, eax
not edx
or edx, ecx
mov byte [r12 + rdx], bl
lea eax, [r8*4 - 0xe]
movzx r9d, byte [r12 + rax]
movzx eax, byte [rsp + 0xf]
mov ebx, eax
xor bl, 0x8a
and bl, al
mov edx, eax
not dl
and dl, 0x8a
mov esi, r9d
mov ecx, r9d
xor cl, 0x8a
and cl, r9b
not r9b
and r9b, 0x88
and sil, 2
or sil, r9b
xor sil, 0xfd
mov r11d, edx
and r11b, bl
xor bl, dl
or bl, r11b
mov edx, ecx
not dl
mov eax, esi
and al, 0x47
or sil, dl
and dl, 0x47
and cl, 0xb8
or cl, dl
or al, r9b
xor al, cl
not sil
or sil, al
mov eax, ebx
not al
and al, sil
not sil
and sil, bl
or sil, al
mov eax, ebp
or eax, 0x247090
mov ecx, r10d
or ecx, 0x6c490242
and eax, 0x6c6d72d0
mov edx, r10d
and edx, 0x1020909
or edx, eax
and ecx, 0x6c6d72d2
mov edi, ebp
and edi, 0x92908424
or edi, ecx
xor edi, edx
mov eax, edi
not eax
and eax, 0x6d4b0b48
and edi, 0x92b4f4b6
or edi, eax
mov eax, ebp
and eax, 0x48767420
mov ecx, r10d
and ecx, 0xb7898bde
or ecx, eax
xor ecx, 0xb7898bdc
mov eax, r10d
and eax, 0xfffffffd
or eax, ecx
mov ecx, eax
not ecx
and ecx, 0xc21e0a7e
and eax, 0x3de1f581
or eax, ecx
mov ecx, eax
xor ecx, 0x11410080
xor eax, 0xc21e0a7e
mov edx, edi
not edx
mov ebx, edx
and ebx, 0xecb4f579
and edi, 0x134b0a86
or edi, ebx
or edx, eax
and eax, 0xecb4f579
and ecx, 0x134b0a86
or ecx, eax
xor ecx, edi
not edx
or edx, ecx
mov byte [r12 + rdx], sil
lea eax, [r8*4 - 0xd]
movzx ebx, byte [r12 + rax]
movzx r8d, byte [rsp + 0x10]
mov r11d, r8d
not r11b
mov edx, r8d
xor dl, 0x7b
and dl, r8b
mov r9d, ebx
mov eax, ebx
xor al, 0x7b
and al, bl
or bl, 0x84
not r9b
or r8b, 0x84
mov ecx, edx
not cl
mov esi, r8d
and sil, 0xa0
and r11b, 0x5b
or r11b, sil
or r8b, cl
and cl, 0xa0
and dl, 0x5f
or dl, cl
xor dl, r11b
not r8b
or r8b, dl
mov ecx, eax
not cl
mov edx, ebx
and dl, 0x8c
and r9b, 0x73
or r9b, dl
or bl, cl
and cl, 0x8c
and al, 0x73
or al, cl
xor al, r9b
not bl
or bl, al
mov eax, r8d
not al
and al, bl
not bl
and bl, r8b
or bl, al
and r10d, 0xea1e45e0
and ebp, 0x15e1ba1c
or ebp, r10d
xor ebp, 0xea1e45e3
mov byte [r12 + rbp], bl
mov eax, dword [rsp]
add eax, 1
mov dword [rsp + 0x24], eax
mov ecx, dword [0x140031470]
mov eax, dword [0x140031474]
lea edx, [rcx - 1]
imul edx, ecx
mov ecx, edx
not ecx
and ecx, 0xc52593ff
and edx, 0x3ada6c00
or edx, ecx
mov ecx, edx
xor ecx, 0x3ada6c00
xor edx, 0x85219268
and edx, 0x8579da68
mov ebp, ecx
and ebp, 0x7a862597
or ebp, edx
xor ebp, 0x7a862596
and ecx, 0xfffffffe
or ecx, ebp
mov edx, ecx
not edx
and edx, 0xd92b0980
and ecx, 0x26d4f67f
or ecx, edx
xor ecx, 0x26d4f67f
sete cl
setne dl
cmp eax, 0xa
setl bl
cmp eax, 9
setg al
and cl, al
or al, dl
and bl, dl
or bl, cl
mov ecx, eax
xor cl, bl
mov edi, 0x18987bde
mov ebp, 0x4e87eef3
jne 0x14001668d
mov edi, 0x4e87eef3
jmp 0x14001668d
cmp ebp, 0xb7aeea2e
jle 0x140016b10
cmp ebp, 0xce0945aa
jle 0x140016c19
cmp ebp, 0xead38053
jg 0x140016e03
cmp ebp, 0xce0945ab
je 0x1400172c3
cmp ebp, 0xd0807247
jne 0x1400166a0
mov eax, dword [0x140031470]
mov ecx, dword [0x140031474]
lea edx, [rax - 1]
imul edx, eax
mov eax, edx
not eax
mov ebp, eax
and ebp, 0xfffffffe
and edx, 1
or edx, ebp
xor eax, edx
test eax, edx
sete al
setne dl
cmp ecx, 9
setg bl
cmp ecx, 0xa
setl cl
and cl, dl
and al, bl
or al, cl
mov ecx, ebx
and cl, dl
xor bl, dl
or bl, cl
mov ecx, ebx
xor cl, al
mov edi, 0x9972943a
mov ebp, 0xbf9ee07b
jne 0x140016ab5
mov edi, 0xbf9ee07b
test bl, bl
cmovne ebp, edi
test al, al
cmove ebp, edi
jmp 0x1400166a0
cmp ebp, 0x18987bdd
jle 0x140016ce9
cmp ebp, 0x1d2bd8a0
jg 0x140016e2d
cmp ebp, 0x18987bde
je 0x140017359
cmp ebp, 0x1a54ea95
jne 0x1400166a0
mov ebp, 0xad84694a
jmp 0x1400166a0
cmp ebp, 0x99729439
jle 0x140016d17
cmp ebp, 0xaade53b8
jg 0x140016e5b
cmp ebp, 0x9972943a
je 0x140017655
cmp ebp, 0xa9337217
jne 0x1400166a0
mov dword [rsp + 0x18], r13d
mov eax, dword [rsp + 0x18]
mov ebp, 0x32044cba
cmp eax, 4
jb 0x1400166a0
mov ebp, 0xfac249e5
jmp 0x1400166a0
cmp ebp, 0x73de7560
jg 0x140016f55
cmp ebp, 0x42797130
je 0x140017685
cmp ebp, 0x4e87eef3
jne 0x1400166a0
mov ecx, dword [0x140031470]
mov eax, dword [0x140031474]
lea edx, [rcx - 1]
imul edx, ecx
mov ecx, edx
not ecx
and ecx, 0x6a2aa664
and edx, 0x95d5599b
or edx, ecx
mov ecx, edx
xor ecx, 0x95d5599a
and ecx, 0xfffffffe
xor edx, 0x6a2aa665
or edx, ecx
mov ecx, edx
not ecx
and ecx, 0x7afa26af
and edx, 0x8505d950
or edx, ecx
xor edx, 0x8505d950
setne cl
sete dl
cmp eax, 0xa
setl bl
cmp eax, 9
setg al
and dl, al
and bl, cl
or bl, dl
mov edx, eax
and dl, cl
xor al, cl
or al, dl
mov ebp, 0x36c5736a
mov edi, 0x8f795097
jne 0x140016c05
mov edi, 0x36c5736a
xor al, bl
test bl, bl
jne 0x140016692
mov edi, 0x8f795097
jmp 0x140016692
cmp ebp, 0xc465aa4a
jle 0x140016fcc
cmp ebp, 0xc465aa4b
je 0x140017714
cmp ebp, 0xc9abbe72
jne 0x1400166a0
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov ebp, 0xce0945ab
jmp 0x1400166a0
cmp ebp, 0xf01e03c2
je 0x140017755
cmp ebp, 0xfac249e5
je 0x1400177ba
cmp ebp, 0xdddb2c2
jne 0x1400166a0
mov ebp, 0x75ea9295
jmp 0x1400166a0
cmp ebp, 0x8282233b
je 0x1400177cc
cmp ebp, 0x8f795097
je 0x140017806
cmp ebp, 0x96dbefff
jne 0x1400166a0
mov eax, dword [rsp + 0x1c]
mov dword [rsp], eax
mov eax, dword [rsp]
mov ebp, 0x35c9710c
cmp eax, 0x2c
jb 0x1400166a0
mov ebp, 0xb7aeea2f
jmp 0x1400166a0
cmp ebp, 0x35c9710c
je 0x140017810
cmp ebp, 0x36c5736a
jne 0x1400166a0
mov ecx, dword [0x140031470]
mov eax, dword [0x140031474]
lea edx, [rcx - 1]
imul edx, ecx
mov ecx, edx
not ecx
and ecx, 0x39bbd5c0
and edx, 0xc6442a3f
or edx, ecx
mov ecx, edx
xor ecx, 0xc6442a3e
and ecx, 0xfffffffe
xor edx, 0x39bbd5c1
or edx, ecx
mov ecx, edx
not ecx
and ecx, 0x941767dc
and edx, 0x6be89823
or edx, ecx
xor edx, 0x6be89823
sete cl
setne bl
cmp eax, 0xa
setl dl
cmp eax, 9
setg al
and cl, al
or al, bl
and dl, bl
or dl, cl
mov ebx, eax
xor bl, dl
mov ebp, 0xf001ae4a
mov esi, 0x8f795097
mov edi, 0xf001ae4a
test dl, dl
jne 0x140017940
mov edi, 0x8f795097
jmp 0x140017940
cmp ebp, 0xead38054
je 0x140017887
cmp ebp, 0xf001ae4a
jne 0x1400166a0
mov ebp, 0x96dbefff
mov eax, dword [rsp + 0x24]
mov dword [rsp + 0x1c], eax
jmp 0x1400166a0
cmp ebp, 0x1d2bd8a1
je 0x1400178b5
cmp ebp, 0x2f3a537e
jne 0x1400166a0
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov ebp, 0xf01e03c2
jmp 0x1400166a0
cmp ebp, 0xaade53b9
je 0x1400178c2
cmp ebp, 0xad84694a
jne 0x1400166a0
mov eax, dword [rsp]
lea ecx, [rax*4 - 4]
movzx ecx, byte [r12 + rcx]
mov byte [rsp + 5], cl
lea ecx, [rax*4 - 3]
movzx ecx, byte [r12 + rcx]
mov byte [rsp + 6], cl
lea ecx, [rax*4 - 2]
movzx ecx, byte [r12 + rcx]
mov byte [rsp + 7], cl
lea eax, [rax*4 - 1]
movzx eax, byte [r12 + rax]
mov byte [rsp + 8], al
mov eax, dword [rsp]
mov ecx, eax
not ecx
and ecx, 0xfffffffc
xor eax, 3
or eax, ecx
cmp eax, 0xffffffff
sete byte [rsp + 0x13]
mov ecx, dword [0x140031470]
mov eax, dword [0x140031474]
lea edx, [rcx - 1]
imul edx, ecx
mov ecx, edx
not ecx
and ecx, 0xab55063c
and edx, 0x54aaf9c3
or edx, ecx
mov ebp, edx
xor ebp, 0x54aaf9c3
xor edx, 0xa540024
and edx, 0xafe2824
mov ecx, ebp
and ecx, 0xf501d7db
or ecx, edx
xor ecx, 0xf501d7da
and ebp, 0xfffffffe
or ebp, ecx
cmp ebp, 0xffffffff
sete cl
setne dl
cmp eax, 0xa
setl bl
cmp eax, 9
setg al
and cl, al
or al, dl
and bl, dl
or bl, cl
mov ecx, eax
xor cl, bl
mov edi, 0x73de7561
mov ebp, 0x42797130
jne 0x14001668d
mov edi, 0x42797130
jmp 0x14001668d
cmp ebp, 0x73de7561
je 0x14001794f
cmp ebp, 0x75ea9295
jne 0x1400166a0
mov eax, dword [0x140031470]
lea ebp, [rax - 1]
imul ebp, eax
mov eax, ebp
not eax
mov ebx, eax
and ebx, 0xfffffffe
and ebp, 1
or ebp, ebx
xor eax, ebp
test eax, ebp
setne r8b
cmp dword [0x140031474], 9
setg r9b
mov ebx, r9d
and bl, r8b
xor r9b, r8b
or bl, r9b
mov eax, ebx
xor al, r9b
mov edi, 0xdddb2c2
mov ebp, 0x1d2bd8a1
jne 0x140016fbc
mov edi, 0x1d2bd8a1
test bl, bl
cmovne ebp, edi
test r9b, r9b
cmove ebp, edi
jmp 0x1400166a0
cmp ebp, 0xbf9ee07b
jne 0x1400179d5
movzx eax, byte [rsp + 6]
lea rbp, str.cw
movzx edx, byte [rax + rbp]
movzx ecx, byte [rsp + 7]
movzx ecx, byte [rcx + rbp]
mov byte [rsp + 0x14], cl
movzx ecx, byte [rsp + 8]
movzx ecx, byte [rcx + rbp]
mov byte [rsp + 0x15], cl
movzx ecx, byte [rsp + 5]
movzx ecx, byte [rcx + rbp]
mov byte [rsp + 0x16], cl
mov ecx, dword [rsp]
shr rcx, 2
lea rax, [0x14002e4b0]
movzx ebx, byte [rcx + rax]
mov ecx, ebx
not cl
mov r8d, ebx
or r8b, 0x60
or cl, 0x85
mov eax, edx
not al
mov r9d, edx
or r9b, 0x42
mov r10d, eax
or r10b, 0x80
and r8b, 0xe5
and cl, 0xe5
and bl, 0x1a
or bl, cl
xor bl, r8b
and r9b, 0xc2
and al, 5
or al, r9b
and r10b, 0xc2
and dl, 0x38
or dl, r10b
xor dl, al
mov eax, ebx
not al
and al, dl
not dl
and dl, bl
or dl, al
mov eax, dword [0x140031470]
lea ebp, [rax - 1]
imul ebp, eax
mov ecx, ebp
not ecx
and ebp, 0xe7455ab0
mov eax, ecx
and eax, 0x18baa54f
or eax, ebp
xor eax, 0x18baa54e
and ecx, 0xfffffffe
or ecx, eax
cmp ecx, 0xffffffff
setne cl
cmp dword [0x140031474], 9
mov byte [rsp + 0x17], dl
setg bl
mov eax, ebx
and al, cl
xor bl, cl
or al, bl
mov ecx, eax
xor cl, bl
mov edi, 0x9972943a
mov ebp, 0xead38054
jne 0x1400170cb
mov edi, 0xead38054
test al, al
cmovne ebp, edi
jmp 0x14001734f
mov ebx, dword [rsp + 0x18]
shl ebx, 2
mov rax, qword [rsp + 0x28]
movzx eax, byte [rax + rbx]
mov byte [r12 + rbx], al
mov esi, ebx
not esi
mov r13d, esi
and r13d, 0x3f19d5fc
mov edi, ebx
mov ebp, ebx
xor ebp, 0x585e5b5a
and ebp, esi
mov edx, ebx
xor edx, 0x585e5b58
and edx, ebx
mov eax, ebx
mov dword [rsp + 0x20], ebx
mov r8d, esi
mov r10d, esi
mov r11d, ebx
mov r14d, esi
mov r15d, esi
mov r9, r12
mov r12d, ebx
or esi, ebx
and ebx, 0xc0e62a00
or ebx, r13d
mov r13d, ebx
xor r13d, 0xc0e62a03
mov eax, ebx
xor eax, 0x7df704a5
and eax, r13d
and edi, 0xbd112ea4
mov ecx, eax
and ecx, edi
xor edi, eax
or edi, ecx
mov eax, edi
not eax
and eax, 0x1464af93
and edi, 0xeb9b506c
or edi, eax
xor ebx, 0x3d114400
and ebx, 0xfd356e00
mov eax, r13d
and eax, 0x2ca91fc
or eax, ebx
mov ecx, edi
xor ecx, 0x46821008
xor eax, 0x2ca91fd
and r13d, 0xfffffffe
or r13d, eax
xor edi, 0xa9758134
mov eax, edi
and eax, 0x9139eff7
and ecx, 0x6ec61008
or ecx, eax
mov eax, r13d
not eax
or edi, r13d
and r13d, 0x9139eff7
and eax, 0x6ec61008
or eax, r13d
xor eax, ecx
not edi
or edi, eax
mov rbx, qword [rsp + 0x28]
movzx eax, byte [rbx + rdi]
mov byte [r9 + rdi], al
mov eax, ebp
and eax, edx
xor edx, ebp
or edx, eax
mov eax, edx
not eax
and eax, 0xbc534efd
and edx, 0x43acb102
or edx, eax
mov eax, dword [rsp + 0x20]
and eax, 0x953f928
and r8d, 0xf6ac06d4
or r8d, eax
mov eax, edx
xor eax, 0x600c0425
xor r8d, 0xf6ac06d6
and r10d, 0xfffffffd
or r10d, r8d
xor edx, 0x1bf2ea5a
mov ecx, edx
and ecx, 0x8de119c2
and eax, 0x721ee63d
or eax, ecx
mov ecx, r10d
not ecx
or edx, r10d
and r10d, 0x8de119c2
and ecx, 0x721ee63c
or ecx, r10d
xor ecx, eax
not edx
or edx, ecx
movzx eax, byte [rbx + rdx]
mov byte [r9 + rdx], al
or r11d, 0x21248714
or r14d, 0x44080821
and r11d, 0x652c8f34
and r15d, 0x2415048
or r15d, r11d
and r14d, 0x652c8f35
and r12d, 0x98922080
or r12d, r14d
xor r12d, r15d
mov eax, r12d
not eax
and eax, 0xc58d472c
and r12d, 0x3a72b8d0
or r12d, eax
xor r12d, 0x83c41f47
not esi
mov eax, r12d
and eax, esi
xor esi, r12d
mov r12, r9
or esi, eax
movzx eax, byte [rbx + rsi]
mov byte [r9 + rsi], al
mov r13d, dword [rsp + 0x18]
add r13d, 1
mov ebp, 0xa9337217
jmp 0x1400166a0
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [0x140031470]
mov ebx, dword [0x140031474]
lea edx, [rax - 1]
imul edx, eax
mov eax, edx
not eax
mov ebp, eax
and ebp, 0x946360f9
and edx, 0x6b9c9f06
or edx, ebp
xor edx, 0x946360f8
or edx, eax
cmp edx, 0xffffffff
sete r8b
setne dl
cmp ebx, 9
setg cl
cmp ebx, 0xa
setl al
mov ebx, eax
xor bl, dl
and bl, al
and cl, r8b
and al, dl
or al, cl
mov ecx, ebx
xor cl, al
mov ebp, 0x1a54ea95
mov edi, 0x1a54ea95
jne 0x14001734a
mov edi, 0xc9abbe72
test al, al
cmove ebp, edi
test bl, bl
cmove ebp, edi
jmp 0x1400166a0
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov r15d, dword [rsp]
lea r9d, [r15*4]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov r8d, dword [rsp]
lea eax, [r8*4 - 0x10]
movzx ebx, byte [r12 + rax]
movzx eax, byte [rsp + 0xd]
mov esi, eax
mov edx, eax
xor dl, 0xe5
and dl, al
or al, 0x1a
not sil
mov r10d, ebx
not r10b
mov r11d, r10d
and r11b, 0x81
mov ebp, ebx
and bpl, 0x24
or bpl, r11b
xor bpl, 0x83
mov r11d, r10d
or r11b, 0xa5
mov ecx, edx
not cl
mov r14d, eax
and r14b, 0x9f
and sil, 0x60
or sil, r14b
or al, cl
and cl, 0x9f
and dl, 0x60
or dl, cl
xor dl, sil
not al
or al, dl
and r10b, 0x40
or r10b, bpl
and r11b, 0xa7
and bl, 0x18
or bl, r11b
xor bl, r10b
mov ecx, eax
not cl
and cl, bl
not bl
and bl, al
or bl, cl
mov byte [r12 + r9], bl
lea eax, [r8*4 - 0xf]
movzx ecx, byte [r12 + rax]
movzx eax, byte [rsp + 0xe]
mov ebx, eax
not bl
mov edx, ebx
and dl, 0x9e
and al, 0x61
or al, dl
or bl, cl
not cl
xor al, 0x9e
or al, cl
mov ecx, eax
not cl
mov edx, ebx
not dl
mov r10d, eax
and r10b, 0x60
and cl, 0x9f
or cl, r10b
or al, bl
and bl, 0x60
and dl, 0x9f
or dl, bl
xor dl, cl
not al
or al, dl
mov r14d, r9d
not r14d
mov ecx, r14d
and ecx, r9d
lea edx, [r15*4 + 1]
xor edx, ecx
and ecx, r9d
or edx, ecx
mov byte [r12 + rdx], al
lea eax, [r8*4 - 0xe]
movzx r10d, byte [r12 + rax]
movzx ecx, byte [rsp + 0xf]
mov edx, ecx
mov eax, ecx
xor al, 0xf5
and al, cl
not cl
and cl, 5
and dl, 0xf0
or dl, cl
xor dl, 0xf0
mov ebx, r10d
not bl
mov r11d, r10d
xor r11b, 0xf5
and bl, r11b
and r11b, r10b
mov ecx, edx
and cl, al
xor al, dl
or al, cl
mov ecx, ebx
and cl, r11b
xor r11b, bl
or r11b, cl
mov ecx, eax
not cl
and cl, r11b
not r11b
and r11b, al
or r11b, cl
mov eax, r9d
mov esi, r9d
mov r10d, r9d
xor r10d, 0xb9bb79dc
and r10d, r9d
mov ecx, r9d
or ecx, 0x8d410cbc
mov edx, r14d
or edx, 0x72bef343
xor edx, ecx
mov ecx, edx
not ecx
and ecx, 0xa5c69edc
and edx, 0x5a396121
or edx, ecx
mov ecx, edx
xor ecx, 0x728691a
and eax, 0x41d9aa40
mov edi, r14d
and edi, 0xbe2655be
or edi, eax
xor edi, 0xbe2655bc
mov ebx, r14d
and ebx, 0xfffffffd
or ebx, edi
xor edx, 0x28879260
mov eax, edx
and eax, 0xd8d486c5
and ecx, 0x272b793a
or ecx, eax
mov eax, ebx
not eax
or edx, ebx
and ebx, 0xd8d486c5
and eax, 0x272b793a
or eax, ebx
xor eax, ecx
not edx
or edx, eax
mov byte [r12 + rdx], r11b
lea eax, [r8*4 - 0xd]
movzx eax, byte [r12 + rax]
movzx ecx, byte [rsp + 0x10]
mov edx, ecx
not dl
mov ebx, edx
and bl, 0xd5
and cl, 0x2a
or cl, bl
mov ebx, eax
not bl
xor cl, 0xd5
or cl, bl
not cl
and bl, 0xa5
and al, 0x5a
or al, bl
xor al, 0xa5
or al, dl
not al
mov edx, ecx
and dl, al
xor al, cl
or al, dl
and r14d, 0x30a13ce4
and esi, 0xcf5ec318
or esi, r14d
mov ecx, esi
xor ecx, 0xcf5ec31b
mov ebx, esi
xor ebx, 0x891a453a
and ebx, ecx
mov edx, ebx
not edx
mov ebp, r10d
not ebp
mov edi, edx
and edi, 0x31a757fc
and ebx, 0xce58a800
or ebx, edi
or edx, ebp
and ebp, 0x31a757fe
and r10d, 0xce58a800
or r10d, ebp
xor r10d, ebx
not edx
or edx, r10d
mov ebp, edx
not ebp
and ebp, 0xb9bb79dd
and edx, 0x46448622
or edx, ebp
xor esi, 0x30a13ce7
or esi, ecx
not esi
mov ecx, edx
and ecx, esi
xor esi, edx
or esi, ecx
mov byte [r12 + rsi], al
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov ebp, 0x33d8fa34
jmp 0x1400166a0
movzx eax, byte [rsp + 6]
movzx eax, byte [rsp + 7]
movzx eax, byte [rsp + 8]
movzx eax, byte [rsp + 5]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov eax, dword [rsp]
mov ebp, 0xbf9ee07b
jmp 0x1400166a0
mov ecx, dword [0x140031470]
mov eax, dword [0x140031474]
lea edx, [rcx - 1]
imul edx, ecx
mov ecx, edx
not ecx
and edx, 0xe02a16ed
mov ebp, ecx
and ebp, 0x1fd5e912
or ebp, edx
xor ebp, 0x1fd5e913
and ecx, 0xfffffffe
or ecx, ebp
mov edx, ecx
not edx
and edx, 0xe84aa6cf
and ecx, 0x17b55930
or ecx, edx
xor ecx, 0x17b55930
sete bl
setne cl
cmp eax, 9
setg dl
cmp eax, 0xa
setl al
and al, cl
and bl, dl
or bl, al
mov eax, edx
and al, cl
xor dl, cl
or dl, al
mov eax, edx
xor al, bl
mov edi, 0x2f3a537e
mov ebp, 0x8282233b
mov esi, 0x2f3a537e
test dl, dl
jne 0x14001770a
mov esi, 0x8282233b
test bl, bl
cmovne edi, esi
jmp 0x140016692
movzx ebx, byte [rsp + 0x11]
movzx eax, byte [rsp + 0x12]
xor bl, 1
xor al, 1
mov r8d, ebx
or r8b, al
xor al, bl
mov ebx, r8d
xor bl, al
mov edi, 0xdddb2c2
mov ebp, 0x75ea9295
test bl, 1
jne 0x140017744
mov edi, 0x75ea9295
test al, 1
cmove ebp, edi
test r8b, 1
cmovne ebp, edi
jmp 0x1400166a0
mov eax, dword [0x140031470]
mov ebx, dword [0x140031474]
lea edx, [rax - 1]
imul edx, eax
mov eax, edx
not eax
mov ebp, eax
and ebp, 0xfffffffe
and edx, 1
or edx, ebp
not edx
or edx, eax
cmp edx, 0xffffffff
setne dl
cmp ebx, 9
setg cl
cmp ebx, 0xa
setl al
xor al, dl
mov ebx, ecx
xor bl, dl
and cl, dl
or cl, bl
mov ebx, eax
xor bl, cl
mov esi, 0x73de7561
mov edi, 0xad84694a
mov ebp, 0x73de7561
test cl, cl
jne 0x14001787d
mov ebp, 0xad84694a
jmp 0x14001787d
mov ebp, 0x96dbefff
mov dword [rsp + 0x1c], 4
jmp 0x1400166a0
cmp byte [rsp + 0x13], 0
mov ebp, 0xd0807247
jne 0x1400177dd
mov ebp, 0xaade53b9
movzx eax, byte [rsp + 5]
mov byte [rsp + 0xb], al
movzx eax, byte [rsp + 6]
mov byte [rsp + 0xc], al
movzx eax, byte [rsp + 7]
mov byte [rsp + 0xa], al
movzx eax, byte [rsp + 8]
mov byte [rsp + 9], al
jmp 0x1400166a0
mov ebp, 0x36c5736a
jmp 0x1400166a0
mov eax, dword [0x140031470]
mov ecx, dword [0x140031474]
lea edx, [rax - 1]
imul edx, eax
mov eax, edx
not eax
mov ebp, eax
and ebp, 0xefc9db4f
and edx, 0x103624b0
or edx, ebp
xor edx, 0xefc9db4e
or edx, eax
cmp edx, 0xffffffff
sete r8b
setne bl
cmp ecx, 9
setg dl
cmp ecx, 0xa
setl cl
mov eax, ecx
xor al, bl
and al, cl
and dl, r8b
and cl, bl
or cl, dl
mov ebx, eax
xor bl, cl
mov edi, 0xf01e03c2
mov ebp, 0x2f3a537e
mov esi, 0xf01e03c2
test cl, cl
jne 0x14001787d
mov esi, 0x2f3a537e
test al, al
cmovne ebp, esi
jmp 0x140017945
movzx eax, byte [rsp + 0x14]
mov byte [rsp + 0xc], al
movzx eax, byte [rsp + 0x15]
mov byte [rsp + 0xa], al
movzx eax, byte [rsp + 0x16]
mov byte [rsp + 9], al
mov ebp, 0xaade53b9
movzx eax, byte [rsp + 0x17]
mov byte [rsp + 0xb], al
jmp 0x1400166a0
mov ebp, 0xa9337217
xor r13d, r13d
jmp 0x1400166a0
movzx eax, byte [rsp + 0xb]
mov byte [rsp + 0xd], al
movzx eax, byte [rsp + 0xc]
mov byte [rsp + 0xe], al
movzx eax, byte [rsp + 0xa]
mov byte [rsp + 0xf], al
movzx eax, byte [rsp + 9]
mov byte [rsp + 0x10], al
mov eax, dword [0x140031470]
lea ecx, [rax - 1]
imul ecx, eax
mov eax, ecx
not eax
mov edx, eax
and edx, 0x4d327651
and ecx, 0xb2cd89ae
or ecx, edx
xor ecx, 0x4d327650
or ecx, eax
cmp ecx, 0xffffffff
setne cl
cmp dword [0x140031474], 9
setg dl
mov eax, edx
or al, cl
xor dl, cl
mov ebx, edx
xor bl, al
mov ebp, 0x33d8fa34
mov esi, 0x18987bde
mov edi, 0x33d8fa34
test dl, dl
jne 0x140017940
mov edi, 0x18987bde
test al, al
cmovne edi, esi
test bl, bl
cmovne ebp, edi
jmp 0x1400166a0
mov eax, dword [0x140031470]
mov ecx, dword [0x140031474]
lea edx, [rax - 1]
imul edx, eax
mov eax, edx
not eax
and eax, 0x7502a77
and edx, 0xf8afd588
or edx, eax
mov eax, edx
xor eax, 0xf8afd588
and eax, 0xfffffffe
xor edx, 0x7502a76
or edx, eax
cmp edx, 0xffffffff
setne al
sete dl
cmp ecx, 0xa
setl bl
cmp ecx, 9
setg cl
and cl, dl
and al, bl
or al, cl
mov ecx, ebx
xor cl, dl
or bl, dl
xor bl, 1
or bl, cl
mov ecx, ebx
xor cl, al
mov edi, 0xc9abbe72
mov ebp, 0xce0945ab
mov esi, 0xc9abbe72
test bl, bl
jne 0x1400179c6
mov esi, 0xce0945ab
test al, al
cmovne edi, esi
test cl, cl
cmovne ebp, edi
jmp 0x1400166a0
cmp ebp, 0xb7aeea2f
jne 0x1400166a0
add rsp, 0x30
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret