Function at 0x14021ebe0
Capabilities:
Encode data using base64
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x88
mov rdi, qword [rcx + 0x18]
cmp rdi, 0xffffffffffffffff
je 0x14021f3d1
mov r13, r8
mov rbx, rdx
mov rsi, rcx
mov r12, qword [rcx + 8]
lea r11, [r12 + 1]
mov rcx, r11
shr rcx, 3
mov rax, r11
and rax, 0xfffffffffffffff8
sub rax, rcx
mov ecx, 0xcb1acbcd
nop dword [rax]
mov edx, dword [0x14158a220]
imul edx, dword [0x14158a224]
mov r8d, edx
not r8d
or edx, 0xbbb96e06
or r8d, 0x444691f9
and r8d, edx
not r8d
imul r8, rcx
shr r8, 0x3c
or r8d, 0x21a5cbc2
cmp r12, 8
mov r14, rax
cmovb r14, r12
cmp r8d, 0xf92ebae7
je 0x14021ec30
mov rax, r14
shr rax, 1
movabs r10, 0x7ffffffffffffff0
cmp rdi, rax
mov qword [rsp + 0x70], r12
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0x30], rdi
jae 0x14021ee5b
mov r15, qword [rsi]
mov rax, r11
shr rax, 4
mov rcx, r11
xor rcx, 0xfffffffffffffff0
mov rdx, r11
or rdx, 0xf
and rdx, rcx
cmp rdx, 1
sbb rax, 0xffffffffffffffff
nop word cs:[rax + rax]
mov ecx, dword [0x14158a370]
mov edx, dword [0x14158a374]
mov r8d, edx
not r8d
mov r9d, ecx
and r9d, r8d
or r8d, ecx
not r8d
imul r8d, r9d
mov r9d, ecx
and r9d, edx
or ecx, edx
imul ecx, r9d
add ecx, r8d
mov edx, ecx
not edx
and edx, 0x39fadf69
mov r8d, ecx
and r8d, 0xc6052096
imul r8d, edx
mov edx, ecx
and edx, 0x39fadf69
or ecx, 0x39fadf69
imul ecx, edx
add ecx, r8d
mov edx, ecx
and edx, 0x666e565f
xor edx, 0x260e5001
and ecx, 0x260e5001
or ecx, edx
or ecx, 0x9991a9a0
cmp ecx, 0x89a22a13
jb 0x14021ecd0
xor ecx, ecx
nop word [rax + rax]
test cl, cl
jne 0x14021ed60
test rax, rax
je 0x14021fdb0
mov ecx, 0xa772c443
nop word cs:[rax + rax]
mov edx, dword [0x14158a378]
mov r8d, dword [0x14158a37c]
mov r9d, edx
xor r9d, r8d
not r9d
or edx, r8d
and edx, r9d
imul rdx, rcx
shr rdx, 0x3f
add edx, 0xd779e7f5
mov r8d, edx
xor r8d, 0xb978dd0d
and edx, 0x460122f2
add edx, edx
sub edx, r8d
cmp edx, 0x843ab898
ja 0x14021ed80
nop word [rax + rax]
mov ecx, dword [0x14158a380]
mov edx, dword [0x14158a384]
not ecx
not edx
and edx, ecx
not edx
add edx, 0xa0013fd1
mov ecx, edx
and ecx, 0x11799268
or edx, 0x11799268
add edx, ecx
or edx, 0x4ad54a30
cmp edx, 0xfc0454ed
je 0x14021edd0
mov edx, eax
and edx, 1
mov ecx, 0xb58708f1
nop word cs:[rax + rax]
mov r8d, dword [0x14158a388]
and r8d, dword [0x14158a38c]
xor r8d, 0xb858bf05
imul r8, rcx
shr r8, 0x3e
and r8d, 0xfffffffe
cmp r8d, 0xc01c41b3
je 0x14021ee20
cmp rax, 1
jne 0x14021f25a
xor ecx, ecx
jmp 0x14021f2dd
cmp rdi, r14
cmova r14, rdi
nop word cs:[rax + rax]
mov eax, dword [0x14158a240]
xor edx, edx
div dword [0x14158a244]
xor eax, 0x14546576
add eax, 0x93aea963
imul rax, rax, 0x107a2a71
shr rax, 0x3c
cmp eax, 0x6910e338
je 0x14021ee70
cmp r14, 7
jae 0x14021ef76
mov eax, dword [0x14158a250]
xor edx, edx
div dword [0x14158a254]
nop word cs:[rax + rax]
mov eax, dword [0x14158a258]
sub eax, dword [0x14158a25c]
add eax, 0xeb38eb19
xor eax, 0xf3fd6de5
add eax, 0x3b60b232
cmp eax, 0xeb3fec9b
ja 0x14021eec0
mov ecx, 0x86b9866d
nop word [rax + rax]
xor eax, eax
cmp r14, 3
setae dl
mov r8d, dword [0x14158a260]
sub r8d, dword [0x14158a264]
or r8d, 0x64a1d095
and r8d, 0xffe7fdff
imul r8, rcx
shr r8, 0x3e
cmp r8d, 0x760b3890
ja 0x14021eef0
mov al, dl
lea r14, [rax*4 + 4]
mov eax, dword [0x14158a268]
xor edx, edx
div dword [0x14158a26c]
mov ecx, eax
not ecx
mov edx, eax
and edx, 0x1de87a29
and ecx, 0x221785d6
imul ecx, edx
mov edx, eax
and edx, 0x221785d6
or eax, 0x221785d6
imul eax, edx
add eax, ecx
or eax, 0xcacb2403
cmp eax, 0x7c299bc0
je 0x14021ef30
jmp 0x14021f087
movabs rcx, 0x1ffffffffffffffe
mov eax, dword [0x14158a248]
xor edx, edx
div dword [0x14158a24c]
add eax, 0xd71c6217
or eax, 0x7cd5faf7
mov edx, eax
xor edx, 0x6ef51f85
and eax, 0x110ae07a
add eax, eax
sub eax, edx
cmp eax, 0x5dce6678
jb 0x14021ef80
cmp r14, rcx
ja 0x14021f44f
shl r14, 3
add r14, 8
movabs rcx, 0x2492492492492493
nop dword [rax + rax]
mov eax, dword [0x14158a270]
mov edx, dword [0x14158a274]
mov r8d, eax
and r8d, edx
not edx
not eax
and eax, edx
not r8d
not eax
and eax, r8d
mov r8d, eax
xor r8d, 0x56e9539f
add r8d, eax
and eax, 0x2916ac60
sub r8d, eax
or r8d, 0x9ad2350a
add r8d, 0xe1a8eaa6
mov rax, r14
mul rcx
cmp r8d, 0x7f89379d
jb 0x14021efd0
sub r14, rdx
shr r14, 1
add r14, rdx
shr r14, 2
dec r14
bsr rcx, r14
xor rcx, 0x3f
nop word [rax + rax]
mov eax, dword [0x14158a278]
xor eax, dword [0x14158a27c]
mov edx, eax
not edx
or edx, 0x370624a
and edx, 0x8b71e34a
and eax, 0x60881085
sub eax, edx
mov edx, eax
and edx, 0x4186a797
xor eax, 0x41c6a797
lea eax, [rax + rdx*2]
mov r14, 0xffffffffffffffff
shr r14, cl
cmp eax, 0x4036eb95
ja 0x14021f040
inc r14
mov ecx, 0x18
nop dword [rax]
mov eax, dword [0x14158a280]
mov edx, dword [0x14158a284]
not eax
not edx
and edx, eax
not edx
add edx, 0xf4fd6081
mov eax, edx
and eax, 0x9541a2d
add eax, eax
sub edx, eax
imul r9d, edx, 0x3ab13fe7
add r9d, 0xe871b19b
mov rax, r14
mul rcx
mov rdi, rax
seto dl
cmp rax, 0xfffffffffffffff1
setae al
setb r8b
cmp r9d, 0x8e3280fb
jb 0x14021f090
and r8b, dl
xor al, dl
add al, dl
sub al, r8b
test al, 1
jne 0x14021f33d
add rdi, 0xf
and rdi, 0xfffffffffffffff0
nop dword [rax]
mov eax, dword [str.Jy:]
mov ecx, dword [0x14158a28c]
mov edx, eax
and edx, ecx
xor eax, ecx
lea eax, [rax + rdx*2]
add eax, 0xaca28e
xor eax, 0xb3ceb3e0
cmp eax, 0x1d881d5
jb 0x14021f100
mov eax, dword [0x14158a290]
xor edx, edx
div dword [str.4yVP]
mov rcx, r14
xor rcx, 0x10
nop dword [rax + rax]
mov edx, dword [0x14158a298]
and edx, dword [0x14158a29c]
or edx, 0x3a3a43df
xor edx, 0xaa129807
add edx, 0x93e7ed7
mov eax, r14d
and eax, 0x10
lea rsi, [rcx + rax*2]
mov rbp, rdi
add rbp, rsi
setb al
cmp edx, 0x4f32c08d
jb 0x14021f140
nop dword [rax]
mov ecx, dword [0x14158a2a4]
add ecx, dword [0x14158a2a0]
mov edx, ecx
and edx, 0x3ad061db
add edx, edx
sub ecx, edx
add ecx, 0xce7738d0
imul rcx, rcx, 0x6a4b18e3
shr rcx, 0x3e
cmp ecx, 0xdbdf9e90
je 0x14021f180
test al, al
jne 0x14021f33d
nop dword [rax]
mov eax, dword [0x14158a2a8]
and eax, dword [0x14158a2ac]
add eax, 0xa2ccc82c
and eax, 0x5535e655
add eax, 0x2b9b80d
cmp eax, 0xf3028f0b
ja 0x14021f1c0
cmp rbp, r10
ja 0x14021f33d
mov qword [rsp + 0x38], r11
mov qword [rsp + 0x68], rbx
mov eax, dword [0x14158a2c0]
mov ecx, dword [0x14158a2c4]
mov edx, ecx
not edx
mov r8d, eax
and r8d, edx
or edx, eax
not edx
imul edx, r8d
mov r8d, eax
and r8d, ecx
or eax, ecx
imul eax, r8d
add eax, edx
imul rax, rax, 0x6428c89b
shr rax, 0x3c
mov ecx, eax
not ecx
or ecx, 0x839f9a89
lea edx, [rax + rcx]
inc edx
add eax, ecx
not edx
or edx, 0x1363f13e
add eax, edx
add eax, 2
cmp eax, 0x1585bd9b
jbe 0x14021f451
jmp 0x14021f482
movabs rcx, 0x1ffffffffffffffe
and rax, rcx
xor ecx, ecx
movdqa xmm0, xmmword [0x1402496e0]
movdqa xmm1, xmmword [0x1402496f0]
xor r8d, r8d
nop dword [rax]
mov r9d, ecx
and r9d, 0x10
lea r10, [r15 + rcx]
pxor xmm2, xmm2
pcmpgtb xmm2, xmmword [r15 + rcx]
sub r10, r9
por xmm2, xmm0
movdqa xmmword [r15 + rcx], xmm2
add rcx, 0x20
pxor xmm2, xmm2
pcmpgtb xmm2, xmmword [r10 + 0x10]
movdqa xmm3, xmm2
pxor xmm3, xmm0
paddq xmm3, xmm2
pand xmm2, xmm1
psubq xmm3, xmm2
movdqa xmmword [r10 + 0x10], xmm3
add r8, 2
add rax, 0xfffffffffffffffe
jne 0x14021f280
test rdx, rdx
je 0x14021fdb0
mov eax, dword [0x14158a390]
xor edx, edx
div dword [0x14158a394]
mov edx, eax
not edx
and edx, 0x4b1daea1
mov r8d, eax
and r8d, 0xb4e2515e
imul r8d, edx
mov edx, eax
and edx, 0x4b1daea1
or eax, 0x4b1daea1
imul eax, edx
add eax, r8d
mov edx, eax
and edx, 0xf704e35
xor edx, 0xd0453733
and eax, 0xf304804
add eax, eax
sub eax, edx
cmp eax, 0x24080a9a
jae 0x14021fd4b
jmp 0x14021fd91
mov eax, dword [0x14158a2b0]
and eax, dword [0x14158a2b4]
and eax, 0xb80f318d
imul eax, eax, 0x11af6a8b
mov ecx, eax
not ecx
mov edx, eax
and edx, 0xc43a9fc6
and ecx, 0x3bc56039
imul ecx, edx
mov edx, eax
and edx, 0x3bc56039
or eax, 0x3bc56039
imul eax, edx
add eax, ecx
cmp eax, 0xe76d776e
jae 0x14021f390
ud2
mov eax, dword [0x14158a2b8]
mov ecx, dword [0x14158a2bc]
mov edx, ecx
and edx, eax
add eax, ecx
sub eax, edx
mov ecx, eax
or ecx, 0xa0000040
not eax
and eax, 0x5a460828
and ecx, 0xa0a14655
sub ecx, eax
imul rax, rcx, 0x7e4a848f
shr rax, 0x3e
ud2
mov eax, dword [0x14158a228]
xor edx, edx
div dword [0x14158a22c]
or eax, 0x40284e44
and eax, 0x40aa4f5f
add eax, 0x4d4cb75d
cmp eax, 0x5cfc8bd7
jae 0x14021f400
ud2
mov eax, dword [0x14158a230]
or eax, dword [0x14158a234]
add eax, 0x376a1e4
imul rax, rax, 0x22cd6885
shr rax, 0x3d
or eax, 0xc9160d46
ud2
ud2
mov eax, dword [0x14158a2c8]
imul eax, dword [0x14158a2cc]
mov ecx, eax
not ecx
and ecx, 0x8d6c1be6
and eax, 0x7293e419
sub eax, ecx
add eax, 0x84ce0bff
movzx ecx, byte [0x1415acbd0]
cmp eax, 0x17dcc4f9
jae 0x14021f48b
movzx eax, byte [0x1415acbd0]
jmp 0x14021f451
mov eax, dword [0x14158a2d0]
xor eax, dword [0x14158a2d4]
or eax, 0xc6df6333
mov ecx, eax
xor ecx, 0x8008808
xor eax, 0x13f413b5
mov edx, eax
and edx, 0xb40274c4
and ecx, 0xb348829
imul ecx, edx
mov edx, eax
and edx, 0x4929880a
or eax, 0x4b3d882b
imul eax, edx
add eax, ecx
cmp eax, 0x19b6b663
jb 0x14021f506
mov eax, dword [0x14158a2d8]
and eax, dword [0x14158a2dc]
add eax, 0xf96cbca9
xor eax, 0xcd23793
imul rbx, rax, 0x162233db
shr rbx, 0x3c
xor ecx, ecx
mov rdx, rbp
call fcn.14020ae90
cmp ebx, 0x3b237b78
jbe 0x14021f512
xor ecx, ecx
mov rdx, rbp
call fcn.14020ae90
jmp 0x14021f4d3
mov r15, rax
nop word cs:[rax + rax]
mov eax, dword [0x14158a2e0]
xor edx, edx
div dword [0x14158a2e4]
mov ecx, eax
and ecx, 0xbc2a362b
or eax, 0xbc2a362b
add eax, ecx
or eax, 0x70f3d000
shr eax, 2
imul rax, rax, 0x8551dbb
shr rax, 0x39
cmp eax, 0x8ea3c391
ja 0x14021f520
test r15, r15
je 0x14021f44f
lea rbx, [r14 - 1]
nop word cs:[rax + rax]
mov eax, dword [0x14158a2e8]
or eax, dword [0x14158a2ec]
xor eax, 0x6fd6623c
imul rax, rax, 0x357c4c2b
shr rax, 0x3d
cmp eax, 0xbbd985c8
je 0x14021f570
mov qword [rsp + 0x50], r13
mov rcx, r14
shr rcx, 3
mov rax, r14
and rax, 0xfffffffffffffff8
sub rax, rcx
add r15, rdi
nop dword [rax]
mov ecx, dword [0x14158a2f0]
xor ecx, dword [0x14158a2f4]
imul ecx, ecx, 0x3d61ff93
mov edx, ecx
and edx, 0x6dac24b3
and ecx, 0x8080022
add ecx, ecx
sub edx, ecx
add edx, 0x98195b6a
cmp r14, 9
mov rcx, rax
cmovb rcx, rbx
cmp edx, 0x87abc6ff
jb 0x14021f5b0
mov qword [rsp + 0x40], rcx
mov rcx, r15
mov dl, 0xff
mov r8, rsi
call fcn.14021c2d0
mov rax, qword [rsp + 0x58]
mov rdi, qword [rax]
cmp qword [rsp + 0x30], 0
je 0x14021faba
nop word cs:[rax + rax]
mov ecx, dword [0x14158a2f8]
mov eax, dword [0x14158a2fc]
mov edx, eax
not edx
and edx, ecx
xor eax, ecx
add eax, ecx
sub eax, edx
mov ecx, eax
not ecx
mov edx, eax
or edx, 0x6c772c78
mov r8d, edx
and r8d, 0x246bbb59
and ecx, 0x13804086
imul ecx, r8d
and edx, 0x5b9444a6
or eax, 0x7ff76cfe
imul eax, edx
add eax, ecx
and eax, 0x4de37dda
cmp eax, 0x9572a0b9
je 0x14021f620
movdqa xmm0, xmmword [rdi]
pmovmskb r13d, xmm0
lea r10, [rdi - 0x18]
not r13d
nop word cs:[rax + rax]
mov eax, dword [0x14158a300]
mov ecx, dword [0x14158a304]
not eax
not ecx
or ecx, eax
mov eax, ecx
or eax, 0x300ad5ac
sub eax, ecx
shr eax, 1
imul rax, rax, 0x289d2bf5
shr rax, 0x3c
or eax, 0x805bc1ec
cmp eax, 0xab9062ea
ja 0x14021f690
nop word cs:[rax + rax]
mov eax, dword [0x14158a308]
mov ecx, dword [0x14158a30c]
add eax, ecx
add eax, 0xb8771f80
and eax, 0x52802d04
cmp eax, 0x8c733bff
je 0x14021f6d0
xor r11d, r11d
mov r14, rdi
xor r12d, r12d
mov rsi, qword [rsp + 0x30]
mov qword [rsp + 0x28], r10
mov qword [rsp + 0x20], rdi
mov qword [rsp + 0x48], rbx
jmp 0x14021f7d6
lea edx, [r13 - 1]
and edx, r13d
movabs r8, 0x74128774ec175a0f
add rsi, r8
not r8
add rsi, r8
shr rax, 0x39
lea r8, [rcx - 0x10]
not r8
mov r9, rbx
not r9
or r9, r8
not r9
mov byte [r15 + rcx], al
mov byte [r9 + r15 + 0x10], al
lea rax, [rbp*2]
not rax
add rax, rbp
mov r8d, eax
not r8d
mov r9, rax
and r9, 0xffffffffffffffe7
and r8d, 0x18
imul r8, r9
mov r9d, eax
and r9d, 0x18
or rax, 0x18
imul rax, r9
add rax, r8
mov r8, rcx
not r8
mov r9, r8
and r9, 0xffffffffffffffe7
and ecx, 0x18
imul rcx, r9
mov r9d, r8d
and r9d, 0x18
or r8, 0x18
imul r8, r9
add r8, rcx
mov rcx, qword [rdi + rax + 0x10]
mov qword [r15 + r8 + 0x10], rcx
movdqu xmm0, xmmword [rdi + rax]
movdqu xmmword [r15 + r8], xmm0
mov r13d, edx
test rsi, rsi
je 0x14021faba
mov eax, dword [0x14158a310]
imul eax, dword [0x14158a314]
mov ecx, eax
and ecx, 0x1b93532d
add ecx, ecx
neg ecx
add eax, ecx
add eax, 0x80fd69e0
imul rax, rax, 0x1b2e4d3d
shr rax, 0x3c
cmp eax, 0x7e3ff4b1
ja 0x14021f7d6
mov qword [rsp + 0x60], rsi
test r13w, r13w
je 0x14021f830
test r11b, r11b
mov rbx, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x50]
je 0x14021f860
jmp 0x14021f8c7
movdqa xmm0, xmmword [r14 + 0x10]
add r14, 0x10
pmovmskb r13d, xmm0
add r12, 0x10
cmp r13d, 0xffff
je 0x14021f830
not r13d
test r11b, r11b
mov rbx, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x50]
jne 0x14021f8c7
nop
mov eax, dword [0x14158a318]
mov ecx, dword [0x14158a31c]
mov edx, eax
xor edx, ecx
not edx
and edx, ecx
add edx, edx
sub ecx, edx
add eax, ecx
add eax, 0x30612d05
and eax, 0xbfa6eae3
mov ecx, eax
not ecx
or ecx, 0xef759730
lea edi, [rax + rcx]
inc edi
tzcnt ebp, r13d
add rbp, r12
mov rax, rbp
not rax
lea rax, [rax + rax*2]
mov r8, qword [r10 + rax*8 + 0x20]
mov r9, qword [r10 + rax*8 + 0x28]
mov rcx, rbx
mov rdx, rsi
call fcn.1401b1df0
mov r10, qword [rsp + 0x28]
cmp edi, 0xd0dd5dc6
jbe 0x14021f920
tzcnt eax, r13d
mov rcx, r12
movabs rdx, 0xcddd0af49a1f23aa
sub rcx, rdx
add rcx, rdx
movabs rdx, 0x12a231f852413ef2
add rcx, rdx
add rcx, rax
mov rax, rdx
sub rax, rcx
lea rax, [rax + rax*2]
mov r8, qword [r10 + rax*8 + 8]
mov r9, qword [r10 + rax*8 + 0x10]
mov rcx, rbx
mov rdx, rsi
call fcn.1401b1df0
mov r10, qword [rsp + 0x28]
jmp 0x14021f860
mov rbx, qword [rsp + 0x48]
mov rdx, rbx
xor rdx, rax
not rdx
and rdx, rax
movdqu xmm0, xmmword [r15 + rdx]
pmovmskb r8d, xmm0
test r8w, r8w
mov rsi, qword [rsp + 0x60]
je 0x14021f951
mov rdi, qword [rsp + 0x20]
xor r11d, r11d
jmp 0x14021f997
mov ecx, 0x10
xor r9d, r9d
mov rdi, qword [rsp + 0x20]
xor r11d, r11d
nop word cs:[rax + rax]
add r9, 0x10
mov r8, rcx
and r8, rdx
or rdx, rcx
add rdx, r8
and rdx, rbx
movdqu xmm0, xmmword [r15 + rdx]
pmovmskb r8d, xmm0
add rcx, 0x10
test r8d, r8d
je 0x14021f970
tzcnt ecx, r8d
add rcx, rdx
and rcx, rbx
cmp byte [r15 + rcx], 0
js 0x14021f720
mov ecx, dword [0x14158a320]
sub ecx, dword [0x14158a324]
mov edx, ecx
xor edx, 0xfacc2f1c
and ecx, 0x533d0e3
add ecx, ecx
sub ecx, edx
mov edx, ecx
not edx
and edx, 0x1cee3751
mov r8d, ecx
and r8d, 0xe311c8ae
imul r8d, edx
mov edx, ecx
and edx, 0x1cee3751
or ecx, 0x1cee3751
imul ecx, edx
add ecx, r8d
mov edx, ecx
not edx
mov r8d, ecx
and r8d, 0xedab169e
and edx, 0x1254e961
imul edx, r8d
mov r8d, ecx
and r8d, 0x1254e961
or ecx, 0x1254e961
imul ecx, r8d
add ecx, edx
cmp ecx, 0x8858020c
ja 0x14021f9ad
movdqa xmm0, xmmword [r15]
pmovmskb ecx, xmm0
nop word cs:[rax + rax]
test r11b, r11b
jne 0x14021fa40
nop word cs:[rax + rax]
mov edx, dword [0x14158a328]
mov r8d, dword [0x14158a32c]
mov r9d, edx
and r9d, r8d
or edx, r8d
add edx, r9d
mov r8d, edx
not r8d
or edx, 0x1db10f74
or r8d, 0xe24ef08b
and r8d, edx
mov edx, r8d
not edx
and edx, 0x6a6c9f5f
xor r8d, 0x959360a0
lea edx, [r8 + rdx*2]
mov r8d, edx
and r8d, 0x51379177
xor edx, 0xd1379177
lea edx, [rdx + r8*2]
cmp edx, 0x56621237
ja 0x14021fa50
tzcnt ecx, ecx
jmp 0x14021f720
mov eax, dword [0x14158a330]
sub eax, dword [0x14158a334]
mov r11, qword [rsp + 0x58]
mov qword [r11], r15
imul eax, eax, 0x4ae20ef2
or eax, 0x7f7dfd6f
cmp eax, 0x24c75a74
jne 0x14021fae4
mov qword [r11 + 8], rbx
mov rsi, qword [rsp + 0x40]
sub rsi, qword [rsp + 0x30]
mov r10, qword [rsp + 0x70]
nop word cs:[rax + rax]
mov eax, dword [0x14158a338]
mov ecx, dword [0x14158a33c]
mov edx, eax
not edx
mov r8d, ecx
not r8d
mov r9d, edx
and r9d, 0xe497a9af
and eax, 0x1b685650
or eax, r9d
or edx, r8d
and r8d, 0xe497a9af
and ecx, 0x1b685650
or ecx, r8d
xor ecx, eax
not edx
or edx, ecx
add edx, 0xdff368b8
imul rax, rdx, 0x2c11fc63
shr rax, 0x3d
mov qword [r11 + 8], rbx
cmp eax, 0x11a63233
je 0x14021fb00
mov eax, dword [0x14158a340]
xor edx, edx
div dword [0x14158a344]
add eax, 0x6d2b35e1
or eax, 0x1f20af6c
mov ecx, 0xa17a2f11
imul rcx, rax
shr rcx, 0x3e
cmp ecx, 0x2aef7fbb
ja 0x14021fbdf
mov eax, dword [0x14158a348]
xor eax, dword [0x14158a34c]
mov ecx, eax
xor ecx, 0x199a3b76
add ecx, eax
and eax, 0xe665c489
sub ecx, eax
mov eax, ecx
not eax
mov edx, ecx
and edx, 0xb9cc5c5e
and eax, 0x4633a3a1
imul eax, edx
mov edx, ecx
and edx, 0x4633a3a1
or ecx, 0x4633a3a1
imul ecx, edx
add ecx, eax
imul eax, ecx, 0x1469ad5b
mov qword [r11 + 0x10], rsi
cmp eax, 0xdca12ce3
jne 0x14021fbe5
mov qword [r11 + 0x10], rsi
jmp 0x14021fb8a
test r10, r10
je 0x140221050
mov ecx, 0x18
mov r9, qword [rsp + 0x38]
nop dword [rax + rax]
mov r8d, dword [0x14158a350]
and r8d, dword [0x14158a354]
mov eax, r8d
not eax
and eax, 0xd7c408a8
and r8d, 0x283bf757
sub r8d, eax
mov eax, r8d
xor eax, 0x182417cb
and r8d, 0x67dbe834
add r8d, r8d
sub r8d, eax
mov rax, r9
mul rcx
cmp r8d, 0x8f61b692
je 0x14021fc00
add rax, 0xf
and rax, 0xfffffffffffffff0
add r10, 0x11
add r10, rax
nop word cs:[rax + rax]
mov ecx, dword [0x14158a358]
mov edx, dword [0x14158a35c]
mov r8d, ecx
xor r8d, edx
not r8d
or ecx, edx
and ecx, r8d
imul ecx, ecx, 0xed1ef02d
add ecx, 0x5ffb7754
imul rcx, rcx, 0x2a3f81c1
shr rcx, 0x3d
cmp ecx, 0x20136b32
je 0x14021fc60
test r10, r10
je 0x140221050
movabs rcx, 0x8863f3288c148712
add rax, rcx
sub rcx, rax
add rdi, rcx
nop word cs:[rax + rax]
mov eax, dword [0x14158a360]
imul eax, dword [0x14158a364]
mov ecx, eax
xor ecx, 0xf1aa20cd
and eax, 0xe55df32
add eax, eax
sub eax, ecx
imul eax, eax, 0xe8b61671
add eax, 0xfea4b3
cmp eax, 0x5a69c3bb
ja 0x14021fcc0
mov eax, dword [0x14158a368]
xor eax, dword [0x14158a36c]
imul rax, rax, 0x49fcae53
shr rax, 0x3e
cmp eax, 0x2581e870
jne 0x14021fd20
mov rcx, qword [0x1415acb98]
xor edx, edx
mov r8, rdi
call qword [sym.imp.KERNEL32.dll_HeapFree]
xor esi, esi
nop word cs:[rax + rax]
mov rcx, qword [0x1415acb98]
xor edx, edx
mov r8, rdi
call fcn.14020ae70
test sil, sil
jne 0x14021fd30
jmp 0x140221050
mov eax, dword [0x14158a398]
or eax, dword [0x14158a39c]
mov edx, eax
not edx
or eax, 0xc605a00
and edx, 0xb090a130
and eax, 0xe6f5a8e
add eax, edx
add eax, 0xe81ff10c
pxor xmm0, xmm0
pcmpgtb xmm0, xmmword [r15 + rcx]
por xmm0, xmmword [0x1402496e0]
movdqa xmmword [r15 + rcx], xmm0
cmp eax, 0xe823baba
jae 0x14021fdb0
pxor xmm0, xmm0
pcmpgtb xmm0, xmmword [r15 + rcx]
por xmm0, xmmword [0x1402496e0]
movdqa xmmword [r15 + rcx], xmm0
jmp 0x14021fd4b
mov eax, dword [0x14158a3a0]
or eax, dword [0x14158a3a4]
mov ecx, eax
and ecx, 0x12b0fabd
xor eax, 0x12b0fabd
lea eax, [rax + rcx*2]
add eax, 0xb6853cf6
or eax, 0x29c2103
cmp eax, 0xa6ab4ec
je 0x14021fdb0
nop dword [rax]
mov eax, dword [0x14158a3a8]
imul eax, dword [0x14158a3ac]
imul eax, eax, 0x53dc0c9
mov ecx, eax
and ecx, 0xbb4d0283
mov edx, ecx
not edx
mov r8d, eax
and r8d, 0x28000003
and edx, 0x93df76d4
imul edx, r8d
and eax, 0x934d0280
or ecx, 0x93df76d4
imul ecx, eax
add ecx, edx
cmp ecx, 0x7bba14f0
jb 0x14021fde0
nop dword [rax + rax]
mov eax, dword [str.Apy]
and eax, dword [0x14158a3b4]
mov ecx, eax
xor ecx, 0x62f81dd1
xor eax, 0x936a3df8
add eax, ecx
and ecx, 0xe6ddfd6
sub eax, ecx
add eax, 0x16cc7fad
cmp eax, 0xd3d2fcc
ja 0x14021fe30
cmp r11, 0x10
jae 0x14021ff11
lea rcx, [r15 + 0x10]
mov rdx, r15
mov r8, r11
call fcn.14021bb50
nop dword [rax + rax]
mov eax, dword [0x14158a3d0]
xor edx, edx
div dword [0x14158a3d4]
add eax, 0xd00d8c4d
imul rax, rax, 0x75186a03
shr rax, 0x3e
cmp eax, 0xf31c53df
je 0x14021fe80
nop word cs:[rax + rax]
mov eax, dword [0x14158a3d8]
add eax, dword [0x14158a3dc]
mov ecx, eax
not ecx
or eax, 0x48062a40
and eax, 0xf88f3e7a
and ecx, 0x208185
or ecx, eax
mov eax, ecx
not eax
mov edx, eax
and edx, 0x1178d015
and ecx, 0xe0870faa
imul ecx, edx
mov edx, eax
and edx, 0xa68105aa
or eax, 0xe6870faa
imul eax, edx
add eax, ecx
cmp eax, 0x59455f17
ja 0x14021feb0
cmp r12, 0xffffffffffffffff
jne 0x14021ffc2
xor ecx, ecx
jmp 0x140221039
add r11, r15
nop word cs:[rax + rax]
mov eax, dword [0x14158a3b8]
xor eax, dword [0x14158a3bc]
or eax, 0x10c5716b
add eax, 0xc5fa52f1
shr eax, 7
imul rax, rax, 0x15dafe3
shr rax, 0x31
cmp eax, 0xa385be66
ja 0x14021ff20
xor eax, eax
test al, al
jne 0x14021ff7e
mov eax, dword [0x14158a3c0]
xor edx, edx
div dword [0x14158a3c4]
mov ecx, 0x960d5df7
imul rcx, rax
shr rcx, 0x3f
movdqu xmm0, xmmword [r15]
movdqu xmmword [r11], xmm0
cmp ecx, 0xcd3f5ad5
jne 0x14021ff90
movdqu xmm0, xmmword [r15]
movdqu xmmword [r11], xmm0
jmp 0x14021ff51
mov eax, dword [0x14158a3c8]
mov ecx, dword [str._Zw:IAGdh_]
mov edx, eax
not edx
and edx, ecx
not ecx
and ecx, eax
sub ecx, edx
xor ecx, 0x50380682
or ecx, 0xaac4b968
add ecx, 0xf609f4b0
cmp ecx, 0xe548e54f
jae 0x14021ff90
movabs rax, 0x736f6d6570736575
xor rax, rbx
mov qword [rsp + 0x20], rax
nop word cs:[rax + rax]
mov eax, dword [0x14158a3e0]
mov ecx, dword [0x14158a3e4]
mov edx, ecx
not edx
mov r8d, eax
and r8d, edx
or edx, eax
not edx
imul edx, r8d
mov r8d, eax
and r8d, ecx
or eax, ecx
imul eax, r8d
mov r8d, 0x58852739
sub r8d, eax
sub r8d, edx
add eax, edx
add eax, 0xa77ad8c6
or eax, 0xf685e805
or r8d, 0x97a17fa
and r8d, eax
not r8d
add r8d, 0x63d08ba
cmp r8d, 0x92ff166b
ja 0x14021ffe0
movabs rdx, 0x7465646279746573
movabs rcx, 0x6c7967656e657261
movabs rax, 0x646f72616e646f6d
xor rbx, rcx
mov rcx, r13
and rcx, rdx
add rcx, rcx
add rdx, r13
sub rdx, rcx
mov qword [rsp + 0x40], rdx
nop word cs:[rax + rax]
mov ecx, dword [0x14158a3ec]
add ecx, dword [0x14158a3e8]
shr ecx, 5
imul rcx, rcx, 0x55f73d3
shr rcx, 0x33
mov edx, ecx
not edx
and edx, 0xe8d332f4
mov r8d, ecx
and r8d, 3
imul r8d, edx
mov edx, ecx
and edx, 0xfffffffc
or ecx, 0xe8d332f4
imul ecx, edx
add ecx, r8d
mov edx, ecx
xor edx, 0xda6e7373
add edx, ecx
and ecx, 0x25918c8c
sub edx, ecx
cmp edx, 0x15c50af3
jb 0x140220080
mov qword [rsp + 0x78], r14
mov rcx, rax
xor rcx, rax
not rcx
and rcx, r13
xor rcx, rax
mov qword [rsp + 0x38], rcx
nop word cs:[rax + rax]
mov eax, dword [0x14158a3f0]
add eax, dword [0x14158a3f4]
and eax, 0x5a1c6bc4
imul eax, eax, 0xc0a8f500
add eax, 0x4ddccd2a
cmp eax, 0xc92c0892
jb 0x140220100
movabs r14, 0x9e0f2e90b0b894fa
xor edi, edi
mov qword [rsp + 0x68], rbx
mov qword [rsp + 0x48], r15
nop dword [rax]
mov eax, dword [0x14158a3f8]
mov ecx, dword [0x14158a3fc]
mov edx, ecx
not edx
and edx, eax
xor ecx, eax
add ecx, eax
sub ecx, edx
and ecx, 0xb276c3bf
imul eax, ecx, 0x1b0fbc6b
cmp eax, 0x70dd491d
je 0x140220140
cmp byte [r15 + rdi], 0x80
jne 0x140220fcb
nop word cs:[rax + rax]
mov eax, dword [0x14158a400]
mov ecx, dword [0x14158a404]
add eax, ecx
add eax, 0xed3acc33
xor eax, 0x8b96aa10
cmp eax, 0x6e0efe31
ja 0x140220180
movabs rcx, 0x28c82d8c01d8955e
mov rax, rcx
not rax
xor rax, rcx
mov rdx, rax
and rdx, rdi
xor rdx, rax
mov eax, edx
not eax
mov rcx, rdx
and rcx, 0xffffffffffffffe7
and eax, 0x18
imul rax, rcx
mov ecx, edx
and ecx, 0x18
or rdx, 0x18
imul rdx, rcx
add rdx, r15
add rdx, rax
mov qword [rsp + 0x50], rdx
mov rax, rdi
neg rax
lea rax, [rax + rax*2]
lea r9, [r15 + rax*8]
nop word cs:[rax + rax]
mov eax, dword [0x14158a408]
sub eax, dword [0x14158a40c]
mov ecx, eax
and ecx, 0x9b3689cf
or eax, 0x9b3689cf
add eax, ecx
mov ecx, eax
xor ecx, 0x65fd5ed8
and ecx, eax
imul rax, rcx, 0xfe09af
shr rax, 0x37
cmp eax, 0x50609da8
je 0x140220200
mov qword [rsp + 0x80], r9
mov qword [rsp + 0x60], rdi
nop word cs:[rax + rax]
mov eax, dword [0x14158a410]
add eax, dword [0x14158a414]
mov ecx, eax
not ecx
mov edx, eax
or edx, 0x6fc31126
mov r8d, edx
and r8d, 0x9decc93
and ecx, 0x202248
imul ecx, r8d
and edx, 0x621336c
or eax, 0xfe3336e
imul eax, edx
add eax, ecx
or eax, 0xf7f5f66b
cmp eax, 0x13da303c
jb 0x140220250
mov r13, qword [r9 - 0x10]
mov eax, dword [0x14158a418]
xor edx, edx
div dword [0x14158a41c]
imul eax, eax, 0x740a4dd0
add eax, 0xadf10610
and eax, 0x645f5c10
cmp eax, 0xeccc89d9
ja 0x14022029c
mov r9, qword [r9 - 8]
mov r11d, r9d
and r11d, 7
mov rax, r9
and rax, 0xfffffffffffffff8
nop word cs:[rax + rax]
mov ecx, dword [0x14158a420]
mov edx, dword [0x14158a424]
add ecx, edx
add ecx, 0x5e065ba5
mov edx, ecx
xor edx, 0xab0c3a38
and edx, ecx
mov ecx, edx
not ecx
mov r8d, edx
and r8d, 0xfc6477e6
and ecx, 0x39b8819
imul ecx, r8d
mov r8d, edx
and r8d, 0x39b8819
or edx, 0x39b8819
imul edx, r8d
add edx, ecx
cmp edx, 0xa4987630
jb 0x1402202e0
mov qword [rsp + 0x28], r9
test rax, rax
je 0x1402203e7
mov r8, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x40]
xor ebp, ebp
mov r10, qword [rsp + 0x20]
nop word cs:[rax + rax]
mov rcx, qword [r13 + rbp]
xor rdx, rcx
add r10, r8
rol r8, 0xd
add rbx, rdx
mov rdi, r14
not rdi
xor rdi, r14
mov r9, rdi
and r9, r10
xor r9, r14
and rdi, r8
xor rdi, r14
xor rdi, r9
rol rdx, 0x10
mov rsi, rdx
xor rsi, rdx
not rsi
and rsi, rbx
xor rsi, rdx
rol r10, 0x20
add rbx, rdi
mov rdx, rsi
and rdx, r10
or r10, rsi
add r10, rdx
rol rdi, 0x11
rol rsi, 0x15
xor rdi, rbx
xor rsi, r10
rol rbx, 0x20
xor r10, rcx
mov ecx, ebp
and ecx, 8
or rbp, 8
add rbp, rcx
mov r8, rdi
mov rdx, rsi
cmp rbp, rax
jb 0x140220360
cmp r11d, 4
jae 0x140220400
jmp 0x140220463
mov rsi, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x38]
mov r10, qword [rsp + 0x20]
xor ebp, ebp
cmp r11d, 4
jb 0x140220463
nop
mov eax, dword [0x14158a428]
or eax, dword [0x14158a42c]
add eax, 0x4fea5493
and eax, 0xe7f04233
cmp eax, 0x7c9f0820
jb 0x140220400
mov r12d, dword [r13 + rbp]
nop word cs:[rax + rax]
mov eax, dword [0x14158a430]
imul eax, dword [0x14158a434]
mov ecx, eax
xor ecx, 0x40010810
and ecx, eax
or ecx, 0x80581000
and ecx, 0xcd591812
cmp ecx, 0x3e0a4190
jb 0x140220430
mov r15d, 4
jmp 0x140220469
xor r12d, r12d
xor r15d, r15d
mov eax, dword [0x14158a438]
xor eax, dword [0x14158a43c]
mov ecx, eax
and ecx, 0x47cb7e86
add ecx, ecx
neg ecx
add eax, ecx
add eax, 0xce783e66
or eax, 0x5532a535
cmp eax, 0xb2152892
ja 0x140220469
mov rax, r15
or rax, 1
cmp rax, r11
jae 0x140220544
nop word cs:[rax + rax]
mov eax, dword [0x14158a440]
sub eax, dword [0x14158a444]
mov ecx, eax
xor ecx, 0xed5f34a3
and eax, 0x12a0cb5c
add eax, eax
sub eax, ecx
and eax, 0x940d8c40
cmp eax, 0x620cd3a2
je 0x1402204b0
lea r8, [r15 + rbp]
mov eax, dword [0x14158a448]
xor edx, edx
div dword [0x14158a44c]
add eax, 0x3da86ec5
mov ecx, eax
xor ecx, 0x88538822
xor eax, 0x77ac77dd
and ecx, 0x7a4a56e1
mov edx, eax
and edx, 0x85b5a91e
imul edx, ecx
mov ecx, eax
and ecx, 0x7a4a56e1
or eax, 0x7a4a56e1
imul eax, ecx
add eax, edx
movzx edx, word [r13 + r8]
lea ecx, [r15*8]
shl rdx, cl
or rdx, r12
mov r9, r15
or r9, 2
cmp eax, 0xa6d6a1a9
ja 0x1402204dd
jmp 0x14022054a
mov rdx, r12
mov r9, r15
mov r12, qword [rsp + 0x70]
nop
mov eax, dword [0x14158a450]
and eax, dword [0x14158a454]
imul eax, eax, 0x7d23525d
or eax, 0x15d16c2d
imul eax, eax, 0x653327bb
cmp eax, 0x61992bd2
ja 0x140220550
cmp r9, r11
jae 0x1402206b8
nop dword [rax]
mov r8d, dword [0x14158a458]
mov eax, dword [0x14158a45c]
mov ecx, eax
not ecx
mov r15d, r8d
and r15d, ecx
or ecx, r8d
not ecx
imul ecx, r15d
mov r15d, r8d
and r15d, eax
or r8d, eax
imul r8d, r15d
add r8d, ecx
xor r8d, 0xe4ea7507
add r8d, 0x4d042dc2
or r8d, 0x432a348e
lea rax, [r9 + rbp]
movzx eax, byte [r13 + rax]
lea ecx, [r9*8]
shl rax, cl
cmp r8d, 0x4723f9fd
jb 0x140220580
mov r15, qword [rsp + 0x48]
mov ebp, 0xb71913ff
nop dword [rax]
mov ecx, dword [0x14158a460]
and ecx, dword [0x14158a464]
mov r8d, ecx
not r8d
mov r9d, ecx
and r9d, 0xbae9e67d
and r8d, 0x45161982
imul r8d, r9d
mov r9d, ecx
and r9d, 0x45161982
or ecx, 0x45161982
imul ecx, r9d
add ecx, r8d
xor ecx, 0xa0602800
and ecx, 0xbb60390c
cmp ecx, 0x73ff6dd7
je 0x1402205f0
mov rcx, rax
not rcx
movabs r13, 0x1eb1739bc75bd97c
mov r8, r13
not r8
and rax, r8
and r8, rdx
not rdx
mov r9, rcx
and r9, r13
or rax, r9
or rcx, rdx
and rdx, r13
or r8, rdx
xor r8, rax
not rcx
mov rdx, rcx
or rdx, r8
xor r8d, r8d
mov r13d, 0xa672c837
mov r9, qword [rsp + 0x28]
nop dword [rax]
mov eax, dword [0x14158a468]
imul eax, dword [0x14158a46c]
add eax, 0x61aead2e
not eax
and eax, 0x13574224
cmp eax, 0x8dcbbe6a
je 0x140220690
inc r9
jmp 0x140220760
mov r9, qword [rsp + 0x28]
inc r9
mov r15, qword [rsp + 0x48]
mov r13d, 0xa672c837
mov ebp, 0xb71913ff
mov eax, dword [0x14158a470]
mov ecx, dword [0x14158a474]
mov r8d, eax
and r8d, ecx
not r8d
not eax
not ecx
or ecx, eax
and ecx, r8d
not ecx
and ecx, 0x6bd4e947
imul rax, rcx, 0x40c52431
shr rax, 0x3c
or eax, 0xe2224aa6
cmp eax, 0x6b5a89b1
jb 0x1402206d0
nop dword [rax]
mov eax, dword [0x14158a478]
mov ecx, dword [0x14158a47c]
mov r8d, eax
xor r8d, ecx
not r8d
or eax, ecx
and eax, r8d
mov ecx, eax
not ecx
and ecx, 0xfad59097
and eax, 0x52a6f68
sub eax, ecx
mov ecx, eax
xor ecx, 0x12692322
or eax, 0xed96dcdd
and eax, ecx
cmp eax, 0x26457032
je 0x140220710
test r11, r11
je 0x1402208b9
xor r8d, r8d
nop dword [rax]
lea ecx, [r11*8]
mov eax, 0xff
shl rax, cl
test r8b, r8b
jne 0x140220760
or rdx, rax
cmp r11d, 7
jne 0x1402208be
nop word cs:[rax + rax]
mov eax, dword [0x14158a480]
add eax, dword [0x14158a484]
mov ecx, eax
not ecx
mov r8d, eax
and r8d, 0xf3e9154f
and ecx, 0xc16eab0
imul ecx, r8d
mov r8d, eax
and r8d, 0xc16eab0
or eax, 0xc16eab0
imul eax, r8d
add eax, ecx
add eax, 0xa6d095f5
cmp eax, 0xdfca5f27
ja 0x140220790
xor rsi, rdx
movabs rax, 0x11d0a2502738527d
sub r10, rax
add r10, rdi
add r10, rax
add rbx, rsi
rol rdi, 0xd
xor rdi, r10
nop word cs:[rax + rax]
mov eax, dword [0x14158a488]
add eax, dword [0x14158a48c]
mov ecx, eax
not ecx
mov r8d, eax
and r8d, 0xce386cc4
and ecx, 0x31c7933b
imul ecx, r8d
mov r8d, eax
and r8d, 0x31c7933b
or eax, 0x31c7933b
imul eax, r8d
add eax, ecx
mov ecx, eax
and ecx, 0x6ab899f2
add ecx, ecx
sub eax, ecx
add eax, 0x6ab899f2
mov ecx, eax
xor ecx, 0xa184a3ac
and eax, 0x5e7b5c53
add eax, eax
sub eax, ecx
cmp eax, 0xb11c64d1
jb 0x140220800
rol rsi, 0x10
rol r10, 0x20
xor rsi, rbx
add rbx, rdi
rol rdi, 0x11
add r10, rsi
mov rax, rbx
not rax
and rax, rdi
not rax
not rdi
and rdi, rbx
not rdi
and rdi, rax
rol rsi, 0x15
mov rax, rsi
xor rax, r10
not rax
and rax, r10
add rax, rax
mov rcx, r10
sub rcx, rax
rol rbx, 0x20
add rsi, rcx
xor r10, rdx
not rdi
xor edx, edx
jmp 0x1402208be
mov edx, 0xff
shl r9, 0x38
or r9, rdx
xor rsi, r9
mov rax, r10
and rax, rdi
xor r10, rdi
lea rax, [r10 + rax*2]
movabs rcx, 0x5bcb6e0e1b6dd59
sub rbx, rcx
add rbx, rcx
rol rdi, 0xd
add rbx, rsi
movabs rdx, 0xaabeac7912816336
mov r8, rdx
not r8
xor r8, rdx
mov rcx, r8
and rcx, rax
xor rcx, rdx
and r8, rdi
xor r8, rdx
xor r8, rcx
rol rsi, 0x10
xor rsi, rbx
rol rax, 0x20
mov rcx, r8
and rcx, rbx
xor rbx, r8
lea rcx, [rbx + rcx*2]
add rax, rsi
rol r8, 0x11
mov rdx, r8
xor rdx, r8
not rdx
and rdx, rcx
rol rsi, 0x15
xor rdx, r8
xor rsi, rax
rol rcx, 0x20
xor rax, r9
xor rcx, 0xff
movabs r8, 0x797c558ca461040e
sub rax, r8
add rax, rdx
add rax, r8
mov r8, rcx
and r8, rsi
or rcx, rsi
add rcx, r8
rol rdx, 0xd
mov r8, rdx
xor r8, rdx
not r8
and r8, rax
xor r8, rdx
rol rsi, 0x10
rol rax, 0x20
xor rsi, rcx
add rcx, r8
rol r8, 0x11
add rax, rsi
mov rdx, rcx
not rdx
or rdx, r8
not r8
or r8, rcx
and r8, rdx
not r8
rol rsi, 0x15
mov rdx, rsi
xor rdx, rax
not rdx
and rdx, rax
add rdx, rdx
lea r9, [r8 + rax]
sub rax, rdx
add rax, rsi
rol rcx, 0x20
add rcx, rax
rol r8, 0xd
xor r8, r9
rol rax, 0x10
rol r9, 0x20
xor rax, rcx
add rcx, r8
rol r8, 0x11
add r9, rax
mov r10, rcx
not r10
mov rdx, r8
or rdx, r10
and r10, r8
not rdx
or rdx, r10
rol rax, 0x15
movabs r10, 0xd101d100cafdc75f
mov r8, r10
not r8
xor r8, r10
and rax, r8
xor rax, r10
and r8, r9
xor r8, r10
xor r8, rax
rol rcx, 0x20
add r9, rdx
mov rax, r8
and rax, rcx
xor rcx, r8
lea rax, [rcx + rax*2]
rol rdx, 0xd
xor rdx, r9
rol r8, 0x10
movabs r9, 0x57d2f08bc092f349
mov rcx, r9
not rcx
xor rcx, r9
and r8, rcx
xor r8, r9
and rcx, rax
xor rcx, r9
add rax, rdx
rol rdx, 0x11
xor rcx, r8
rol rcx, 0x15
mov r8, rax
rol r8, 0x20
not rdx
mov r9, rdx
and r9, rcx
not r9
or rdx, rcx
movabs r11, 0x30be6405afa14f62
mov rcx, r11
not rcx
mov r10, r11
xor r10, rcx
and rdx, r10
and rdx, r9
and r10, r8
xor r10, r11
xor r10, rcx
xor r10, rdx
mov rcx, rax
xor rcx, rax
not rcx
and rcx, r10
xor rcx, rax
mov rax, rcx
xor rax, r12
not rax
mov r10, rcx
or r10, r12
and r10, rax
movdqu xmm0, xmmword [r15 + r10]
pmovmskb eax, xmm0
mov r8, r10
test eax, eax
mov rbx, qword [rsp + 0x68]
mov rdi, qword [rsp + 0x60]
jne 0x140220b90
mov r9d, 0x10
mov r8, r10
xor r11d, r11d
nop word cs:[rax + rax]
mov eax, dword [0x14158a490]
xor edx, edx
div dword [0x14158a494]
mov eax, dword [0x14158a498]
xor eax, dword [0x14158a49c]
imul rax, r13
shr rax, 0x3e
mov edx, eax
and edx, 1
add edx, edx
neg edx
add eax, edx
add eax, 0xfbf0735d
mov edx, eax
not edx
and edx, 0x300d6
mov esi, eax
and esi, 0x29a04229
imul esi, edx
mov edx, eax
and edx, 0xd2503156
or eax, 0xd25331d6
imul eax, edx
add eax, esi
cmp eax, 0xd98aa5a2
ja 0x140220b1e
add r11, 0x10
add r8, r9
and r8, r12
movdqu xmm0, xmmword [r15 + r8]
pmovmskb eax, xmm0
add r9, 0x10
test ax, ax
je 0x140220b10
nop dword [rax]
mov edx, dword [0x14158a4a0]
sub edx, dword [0x14158a4a4]
add edx, 0x13f38695
or edx, 0xad150c02
cmp edx, 0xb9d7c33a
jb 0x140220b90
tzcnt eax, eax
add r8, rax
not r8
mov rax, r12
not rax
or r8, rax
not r8
cmp byte [r15 + r8], 0
js 0x140220c37
movdqa xmm0, xmmword [r15]
nop word cs:[rax + rax]
mov edx, dword [0x14158a4a8]
or edx, dword [0x14158a4ac]
or edx, 0xc81fcfac
cmp edx, 0x293279a
je 0x140220be0
pmovmskb edx, xmm0
mov r8d, dword [0x14158a4b0]
sub r8d, dword [0x14158a4b4]
shr r8d, 3
imul r8, r8, 0x30c0d23f
shr r8, 0x33
or r8d, 0xd039d000
and r8d, 0xd039d027
cmp r8d, 0x85f0984d
jb 0x140220bfe
tzcnt r8d, edx
mov rdx, rdi
movabs r9, 0x8f5aff47f0d0ed72
sub rdx, r9
sub rdx, r10
add rdx, r9
mov r9, r8
sub r9, r10
xor r9, rdx
mov rdx, r12
xor rdx, r9
not rdx
and rdx, r9
cmp rdx, 0x10
jb 0x140220f21
mov eax, dword [0x14158a4b8]
xor edx, edx
div dword [0x14158a4bc]
nop word [rax + rax]
mov eax, dword [0x14158a4c0]
add eax, dword [0x14158a4c4]
imul eax, eax, 0x4660071a
mov edx, eax
not edx
mov r9d, eax
and r9d, 0xe26ee38e
and edx, 0x1d911c70
imul edx, r9d
mov r9d, eax
and r9d, 0x1d911c70
or eax, 0x1d911c70
imul eax, r9d
add eax, edx
imul rax, rbp
shr rax, 0x3d
cmp eax, 0xc1245326
je 0x140220c80
movabs rax, 0x3aaa83ed902a4ca2
mov rdx, rax
not rdx
xor rdx, rax
mov rax, rdx
and rax, r8
xor rax, rdx
mov edx, eax
not edx
and edx, 0x18
mov r9, rax
and r9, 0xffffffffffffffe7
imul r9, rdx
mov edx, eax
and edx, 0x18
or rax, 0x18
imul rax, rdx
add rax, r15
add rax, r9
shr rcx, 0x39
movzx edx, byte [r15 + r8]
mov r9d, dword [0x14158a4c8]
mov r10d, dword [0x14158a4cc]
mov r11d, r10d
not r11d
mov esi, r9d
and esi, r11d
or r11d, r9d
not r11d
imul r11d, esi
mov esi, r9d
and esi, r10d
or r9d, r10d
imul r9d, esi
add r9d, r11d
mov r10d, r9d
not r10d
and r10d, 0x2f21d870
and r9d, 0xd0de278f
sub r9d, r10d
or r9d, 0x17663f8a
cmp r9d, 0x6232ce84
je 0x140220e24
mov r9d, dword [0x14158a4d4]
add r9d, dword [0x14158a4d0]
mov r10d, r9d
not r10d
and r10d, 0xceea1a8b
mov r11d, r9d
and r11d, 0x3115e574
imul r11d, r10d
mov r10d, r9d
and r10d, 0xceea1a8b
or r9d, 0xceea1a8b
imul r9d, r10d
add r9d, r11d
mov r10d, r9d
and r10d, 0xc4df180
add r10d, r10d
sub r9d, r10d
add r9d, 0x8c4df180
mov r10d, r9d
not r10d
mov r11d, r9d
and r11d, 0x8601dc97
and r10d, 0x79fe2368
imul r10d, r11d
mov r11d, r9d
and r11d, 0x79fe2368
or r9d, 0x79fe2368
imul r9d, r11d
add r9d, r10d
lea r10, [r8 - 0x10]
mov r11, r12
xor r11, r10
not r11
and r11, r10
mov byte [r15 + r8], cl
mov byte [r11 + r15 + 0x10], cl
cmp r9d, 0xe4922efb
jbe 0x140220e40
lea r9, [r8 - 0x10]
and r9, r12
mov byte [r15 + r8], cl
mov byte [r9 + r15 + 0x10], cl
jmp 0x140220d77
mov ecx, dword [0x14158a4dc]
add ecx, dword [0x14158a4d8]
mov r8d, ecx
not r8d
mov r9d, ecx
and r9d, 0x13b9349a
and r8d, 0xc46cb65
imul r8d, r9d
mov r9d, ecx
and r9d, 0xc46cb65
or ecx, 0xc46cb65
imul ecx, r9d
add ecx, r8d
not ecx
or ecx, 0x8fdd390e
and ecx, 0x9fdf3dff
cmp ecx, 0x781fe168
jb 0x140220e40
cmp dl, 0xff
je 0x140220f97
mov ecx, dword [0x14158a4e0]
sub ecx, dword [0x14158a4e4]
mov edx, 0xb3818c57
imul rcx, rdx
shr rcx, 0x3d
mov edx, ecx
and edx, 3
or ecx, 0xba03cfeb
add ecx, edx
mov edx, ecx
and edx, 0x2a020872
add edx, edx
sub ecx, edx
add ecx, 0x6e5e2872
cmp ecx, 0x69549cd
jb 0x140220e9d
mov r8, qword [rsp + 0x50]
movq xmm0, qword [r8]
movq xmm1, qword [rax]
movq qword [r8], xmm1
movq qword [rax], xmm0
mov rcx, qword [r8 + 8]
mov rdx, qword [rax + 8]
mov qword [r8 + 8], rdx
mov qword [rax + 8], rcx
mov rcx, qword [r8 + 0x10]
mov rdx, qword [rax + 0x10]
mov qword [r8 + 0x10], rdx
mov qword [rax + 0x10], rcx
mov r9, qword [rsp + 0x80]
jmp 0x140220250
xor edx, edx
test dl, dl
je 0x140220f40
mov rdx, rcx
shr rdx, 0x39
lea r8, [rdi - 0x10]
and r8, r12
mov byte [r15 + rdi], dl
mov byte [r8 + r15 + 0x10], dl
nop
mov edx, dword [0x14158a4e8]
mov r8d, dword [0x14158a4ec]
not edx
not r8d
or r8d, edx
mov edx, r8d
not edx
xor r8d, 0xee939463
or edx, 0xee939463
and edx, r8d
add edx, 0x96c9ab11
mov r8, rcx
shr r8, 0x39
lea r9, [rdi - 0x10]
not r9
or r9, rax
not r9
mov byte [r15 + rdi], r8b
mov byte [r9 + r15 + 0x10], r8b
cmp edx, 0xbf20e859
ja 0x140220f40
jmp 0x140220fcb
mov rcx, rdi
and rcx, 0xfffffffffffffff0
mov rdx, rdi
or rdx, 0xfffffffffffffff0
add rdx, rcx
and rdx, r12
mov byte [r15 + rdi], 0xff
mov byte [rdx + r15 + 0x10], 0xff
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rdx + 0x10]
mov qword [rax + 0x10], rcx
movdqu xmm0, xmmword [rdx]
movdqu xmmword [rax], xmm0
lea rax, [rdi + 1]
nop
mov ecx, dword [0x14158a4f0]
xor ecx, dword [0x14158a4f4]
mov edx, ecx
not edx
mov r8d, ecx
and r8d, 0x2d6752b3
and edx, 0xd298ad4c
imul edx, r8d
mov r8d, ecx
and r8d, 0xd298ad4c
or ecx, 0xd298ad4c
imul ecx, r8d
add ecx, edx
add ecx, 0xf7d387d4
xor ecx, 0x5095f64f
cmp ecx, 0x8e945fc9
jb 0x140220fd0
cmp rdi, r12
mov rdi, rax
jne 0x140220140
mov rsi, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x78]
movabs rax, 0x110376489bfaffd9
sub rcx, rax
sub rcx, rdi
add rcx, rax
mov qword [rsi + 0x10], rcx
mov eax, dword [0x14158a4f8]
add eax, dword [0x14158a4fc]
or eax, 0x38464e8e
add eax, 0xf93f76a6
cmp eax, 0xb6a15620
ja 0x140221050
movabs rax, 0x7ffffffffffffff0
add rax, 0x11
add rsp, 0x88
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret