Function at 0x140355310
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x58
mov rax, qword [0x14054b938]
xor rax, rsp
mov qword [rsp + 0x50], rax
test ecx, ecx
je 0x14035534f
mov esi, ecx
mov r12d, dword [0x14055bdf4]
mov eax, dword [0x14055ee78]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x1403553b4
jmp 0x140355357
xor r15d, r15d
jmp 0x140355c5d
mov qword [rsp + 0x48], 0
mov eax, dword [0x1405404d8]
add eax, r12d
add eax, 0xffffff5c
cdqe
add rax, qword [0x1405404f0]
mov dword [rsp + 0x38], 0x3ef5bd28
mov dword [rsp + 0x30], 0xc9f9be53
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
xor r15d, r15d
lea r8, [rsp + 0x48]
xor ecx, ecx
mov edx, 1
xor r9d, r9d
call qword [case.0x140303ece.0]
test r15b, r15b
je 0x14035540e
mov qword [rsp + 0x48], 0
mov eax, dword [0x1405404d8]
xor eax, r12d
add eax, 0xffffff5c
cdqe
add rax, qword [0x1405404f0]
mov dword [rsp + 0x38], 0x3ef5bd28
mov dword [rsp + 0x30], 0xc9f9be53
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
lea r8, [rsp + 0x48]
xor ecx, ecx
mov edx, 1
xor r9d, r9d
call qword [case.0x140303ece.0]
jmp 0x140355357
mov rdi, rax
test rax, rax
je 0x140355c5d
xor r15d, r15d
cmp dword [rdi], 0
je 0x140355c14
mov dword [rsp + 0x44], esi
nop word [rax + rax]
mov eax, dword [0x14055ee78]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x14035545a
mov eax, dword [0x14055bdf4]
add eax, dword [rdi]
mov ecx, dword [0x14055ee78]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
je 0x140355467
mov eax, dword [0x14055ee7c]
cmp eax, 0x26
jge 0x140355430
jmp 0x140355441
test eax, eax
je 0x140355c14
mov r13, rdi
add r13, 8
lea rbx, [0x1403561a0]
xor r14d, r14d
xor ebp, ebp
jmp 0x1403554ca
xor esi, esi
mov eax, esi
not eax
mov r15d, r14d
not r15d
mov ecx, esi
xor ecx, r14d
mov edx, eax
and edx, r15d
or edx, ecx
not edx
and eax, r14d
and r15d, esi
or r15d, eax
or r15d, edx
add r13, 0x128
inc ebp
mov r14d, r15d
cmp ebp, dword [rdi]
jae 0x140355c14
movzx eax, word [r13 + 0x26]
lea r15, [rax + r13]
add r15, 0x28
mov eax, dword [0x1405404d0]
add eax, r12d
add eax, 0xffffff5c
cdqe
add rax, qword [0x1405404e0]
mov dword [rsp + 0x28], 0x62b20e23
mov dword [rsp + 0x20], 0xf079ee79
xor ecx, ecx
mov edx, 1
mov r8, r15
xor r9d, r9d
call qword [case.0x140303ece.0]
cmp eax, 9
je 0x140355550
cmp eax, 0xa
jne 0x140355490
movzx eax, byte [r15]
lea ecx, [rax - 0x41]
lea edx, [rax - 0x20]
cmp cl, 0x1a
movzx ecx, dl
cmovae ecx, eax
xor esi, esi
cmp cl, 0x73
jne 0x140355492
xor eax, eax
test al, al
jne 0x140355720
jmp 0x1403556f0
movzx ecx, byte [r15]
mov eax, ecx
xor al, 0xbf
mov edx, ecx
and dl, 0x3f
add dl, dl
add dl, al
mov eax, ecx
xor al, 0xe0
mov r8d, ecx
not r8b
and r8b, 0x1f
or r8b, al
not r8b
add r8b, r8b
add r8b, al
cmp dl, 0x1a
movzx eax, r8b
cmovae eax, ecx
cmp al, 0x6e
je 0x140355606
movzx ecx, al
cmp ecx, 0x73
jne 0x14035569a
movzx eax, byte [r15 + 1]
lea ecx, [rax - 0x41]
lea edx, [rax - 0x20]
cmp cl, 0x1a
movzx ecx, dl
cmovae ecx, eax
cmp cl, 0x79
jne 0x140355490
movzx eax, byte [r15 + 2]
lea ecx, [rax - 0x41]
lea edx, [rax - 0x20]
cmp cl, 0x1a
movzx ecx, dl
cmovae ecx, eax
cmp cl, 0x73
jne 0x140355490
movzx eax, byte [r15 + 3]
lea ecx, [rax - 0x41]
lea edx, [rax - 0x20]
cmp cl, 0x1a
movzx ecx, dl
cmovae ecx, eax
cmp cl, 0x65
jne 0x140355490
mov eax, dword [0x14055ee78]
lea ecx, [rax + 1]
imul ecx, eax
test cl, 1
jne 0x1403557e0
jmp 0x1403557b7
movzx eax, byte [r15 + 1]
lea ecx, [rax - 0x41]
lea edx, [rax - 0x20]
cmp cl, 0x1a
movzx ecx, dl
cmovae ecx, eax
xor esi, esi
cmp cl, 0x74
jne 0x140355492
movzx eax, byte [r15 + 2]
lea ecx, [rax - 0x41]
lea edx, [rax - 0x20]
cmp cl, 0x1a
movzx ecx, dl
cmovae ecx, eax
cmp cl, 0x69
jne 0x140355492
nop word cs:[rax + rax]
mov eax, dword [0x14055ee7c]
cmp eax, 0xb
jg 0x14035568d
movzx ecx, byte [r15 + 3]
lea eax, [rcx - 0x41]
mov edx, ecx
xor dl, 0xe0
mov r8d, ecx
not r8b
and r8b, 0x1f
or r8b, dl
not r8b
add r8b, r8b
add r8b, dl
cmp al, 0x1a
movzx eax, r8b
cmovae eax, ecx
xor ecx, ecx
test cl, cl
je 0x1403556d0
mov eax, dword [0x14055ee7c]
cmp eax, 0x2b
jge 0x140355650
jmp 0x14035565b
test dword [rsp + 0x44], 0x800
sete cl
cmp al, 0x6b
sete dl
xor esi, esi
cmp dl, cl
je 0x140355492
cmp al, 0x6b
jne 0x140355492
mov eax, dword [0x14055ee7c]
cmp eax, 0x56
jg 0x1403558b0
jmp 0x14035587e
cmp al, 0x63
jne 0x140355492
xor eax, eax
test al, al
jne 0x140355af0
jmp 0x140355a0c
movzx ecx, byte [r15 + 1]
lea eax, [rcx - 0x41]
mov edx, ecx
xor dl, 0xe0
mov r8d, ecx
and r8b, 0x60
add r8b, r8b
add r8b, dl
cmp al, 0x1a
movzx eax, r8b
cmovae eax, ecx
mov cl, 1
test cl, cl
jne 0x140355733
nop dword [rax]
mov eax, dword [0x14055ee78]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x140355720
jmp 0x1403556f0
cmp al, 0x69
jne 0x140355492
movzx eax, byte [r15 + 2]
lea ecx, [rax - 0x41]
lea edx, [rax - 0x20]
cmp cl, 0x1a
movzx ecx, dl
cmovae ecx, eax
cmp cl, 0x77
jne 0x140355492
movzx eax, byte [r15 + 3]
lea ecx, [rax - 0x41]
lea edx, [rax - 0x20]
cmp cl, 0x1a
movzx ecx, dl
cmovae ecx, eax
cmp cl, 0x76
jne 0x140355492
movzx eax, byte [r15 + 4]
mov ecx, eax
neg cl
mov edx, ecx
xor dl, 0x41
and cl, 0x41
add cl, cl
add cl, dl
neg cl
lea edx, [rax - 0x20]
cmp cl, 0x1a
movzx ecx, dl
cmovae ecx, eax
cmp cl, 0x69
jne 0x140355492
xor eax, eax
test al, al
lea rbx, [0x140356180]
jne 0x140355b50
jmp 0x140355b14
movzx ecx, byte [r15 + 4]
lea eax, [rcx - 0x41]
lea edx, [rcx - 0x20]
cmp al, 0x1a
movzx eax, dl
cmovae eax, ecx
mov ecx, dword [0x14055ee78]
lea edx, [rcx + 1]
imul edx, ecx
test dl, 1
je 0x1403557ed
nop dword [rax + rax]
mov eax, dword [0x14055ee7c]
cmp eax, 0x38
jge 0x1403557e0
jmp 0x1403557b7
cmp al, 0x72
jne 0x140355490
movzx eax, byte [r15 + 5]
lea ecx, [rax - 0x41]
lea edx, [rax - 0x20]
cmp cl, 0x1a
movzx ecx, dl
cmovae ecx, eax
cmp cl, 0x2e
jne 0x140355490
movzx eax, byte [r15 + 6]
lea ecx, [rax - 0x41]
lea edx, [rax - 0x20]
cmp cl, 0x1a
movzx ecx, dl
cmovae ecx, eax
cmp cl, 0x73
jne 0x140355490
movzx eax, byte [r15 + 7]
lea ecx, [rax - 0x41]
lea edx, [rax - 0x20]
cmp cl, 0x1a
movzx ecx, dl
cmovae ecx, eax
cmp cl, 0x79
jne 0x140355490
movzx eax, byte [r15 + 8]
mov ecx, eax
xor cl, 0xbf
mov edx, eax
and dl, 0x3f
add dl, dl
add dl, cl
lea ecx, [rax - 0x20]
cmp dl, 0x1a
movzx ecx, cl
cmovae ecx, eax
mov esi, 0x10000
cmp cl, 0x73
jne 0x140355490
jmp 0x140355492
movzx ecx, byte [r15 + 1]
lea eax, [rcx - 0x41]
lea edx, [rcx - 0x20]
cmp al, 0x1a
movzx eax, dl
cmovae eax, ecx
mov ecx, dword [0x14055ee78]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
je 0x1403558d6
nop word cs:[rax + rax]
mov ecx, 0x5a
call fcn.1403c4b54
mov qword [0x14055ee70], rax
mov rcx, rbx
call fcn.1403e5350
mov eax, dword [0x14055ee7c]
cmp eax, 0x38
jge 0x1403558b0
jmp 0x14035587e
cmp al, 0x64
jne 0x140355492
mov eax, dword [0x14055ee7c]
cmp eax, 0x35
movzx ecx, byte [r15 + 2]
lea eax, [rcx - 0x41]
mov edx, ecx
xor dl, 0xe0
mov r8d, ecx
and r8b, 0x60
add r8b, r8b
add r8b, dl
cmp al, 0x1a
movzx eax, r8b
cmovae eax, ecx
mov ecx, dword [0x14055ee78]
lea edx, [rcx + 1]
imul edx, ecx
test dl, 1
jne 0x1403558e7
cmp al, 0x6e
jne 0x140355492
movzx eax, byte [r15 + 3]
lea ecx, [rax - 0x41]
lea edx, [rax - 0x20]
cmp cl, 0x1a
movzx ecx, dl
cmovae ecx, eax
cmp cl, 0x69
jne 0x140355492
movzx eax, byte [r15 + 4]
lea ecx, [rax - 0x41]
lea edx, [rax - 0x20]
cmp cl, 0x1a
movzx ecx, dl
cmovae ecx, eax
cmp cl, 0x63
jne 0x140355492
movzx eax, byte [r15 + 5]
lea ecx, [rax - 0x41]
lea edx, [rax - 0x20]
cmp cl, 0x1a
movzx ecx, dl
cmovae ecx, eax
cmp cl, 0x2e
jne 0x140355492
movzx eax, byte [r15 + 6]
lea ecx, [rax - 0x41]
lea edx, [rax - 0xc]
mov r8d, edx
xor r8b, 0xe0
and dl, 0x60
add dl, dl
add dl, r8b
add dl, 0xc
cmp cl, 0x1a
movzx ecx, dl
cmovae ecx, eax
cmp cl, 0x73
jne 0x140355492
movzx eax, byte [r15 + 7]
lea ecx, [rax - 0x41]
lea edx, [rax - 0x20]
cmp cl, 0x1a
movzx ecx, dl
cmovae ecx, eax
cmp cl, 0x79
jne 0x140355492
movzx eax, byte [r15 + 8]
mov ecx, eax
not cl
mov edx, ecx
and dl, 0xbf
mov r8d, eax
and r8b, 0x40
or r8b, dl
mov edx, eax
xor dl, 0x3f
and cl, 0x40
or cl, dl
not cl
add cl, cl
add cl, r8b
lea edx, [rax - 0x20]
cmp cl, 0x1a
movzx ecx, dl
cmovae ecx, eax
xor esi, esi
cmp cl, 0x73
sete sil
shl esi, 0x14
jmp 0x140355492
movzx ecx, byte [r15 + 4]
lea eax, [rcx - 0x41]
mov edx, ecx
xor dl, 0xe0
mov r8d, ecx
and r8b, 0x60
add r8b, r8b
add r8b, dl
cmp al, 0x1a
movzx eax, r8b
cmovae eax, ecx
mov ecx, dword [0x14055ee7c]
cmp ecx, 0x11
jge 0x140355af0
cmp al, 0x65
jne 0x140355492
movzx eax, byte [r15 + 5]
lea ecx, [rax - 0x41]
lea edx, [rax - 0x20]
cmp cl, 0x1a
movzx ecx, dl
cmovb eax, ecx
cmp byte [0x14055c1a8], 0
cmovne eax, ecx
cmp al, 0x2e
jne 0x140355492
movzx eax, byte [r15 + 6]
lea ecx, [rax - 0x41]
mov edx, eax
xor dl, 0xe0
mov r8d, eax
and r8b, 0x60
add r8b, r8b
add r8b, dl
cmp cl, 0x1a
movzx ecx, r8b
cmovae ecx, eax
cmp cl, 0x73
jne 0x140355492
movzx eax, byte [r15 + 7]
lea ecx, [rax - 0x41]
lea edx, [rax - 0x42]
mov r8d, edx
xor r8b, 0xe0
and dl, 0x60
add dl, dl
add dl, r8b
add dl, 0x42
cmp cl, 0x1a
movzx ecx, dl
cmovae ecx, eax
cmp cl, 0x79
jne 0x140355492
movzx eax, byte [r15 + 8]
mov ecx, eax
xor cl, 0xbf
mov edx, eax
and dl, 0x3f
add dl, dl
add dl, cl
lea ecx, [rax - 0x20]
cmp dl, 0x1a
movzx ecx, cl
jmp 0x140355b00
mov eax, dword [0x14055ee7c]
cmp eax, 0x37
jge 0x140355af0
jmp 0x140355a0c
cmovae ecx, eax
xor esi, esi
cmp cl, 0x73
sete sil
shl esi, 0x11
jmp 0x140355492
movzx ecx, byte [r15 + 5]
lea eax, [rcx - 0x41]
mov edx, ecx
xor dl, 0xe0
mov r8d, ecx
and r8b, 0x60
add r8b, r8b
add r8b, dl
cmp al, 0x1a
movzx eax, r8b
cmovae eax, ecx
mov ecx, dword [0x14055ee78]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
je 0x140355b7c
nop dword [rax + rax]
mov ecx, 0x10
call fcn.1403c4b54
mov qword [0x14055ee68], rax
mov rcx, rbx
call fcn.1403e5350
mov eax, dword [0x14055ee78]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x140355b50
jmp 0x140355b14
cmp al, 0x64
jne 0x140355c08
movzx eax, byte [r15 + 6]
lea ecx, [rax - 0x41]
lea edx, [rax - 0x20]
cmp cl, 0x1a
movzx ecx, dl
cmovae ecx, eax
cmp cl, 0x2e
lea rbx, [0x1403561a0]
jne 0x140355492
movzx eax, byte [r15 + 7]
lea ecx, [rax - 0x41]
lea edx, [rax - 0x20]
cmp cl, 0x1a
movzx ecx, dl
cmovae ecx, eax
cmp cl, 0x73
jne 0x140355492
movzx eax, byte [r15 + 8]
lea ecx, [rax - 0x41]
lea edx, [rax - 0x20]
cmp cl, 0x1a
movzx ecx, dl
cmovae ecx, eax
cmp cl, 0x79
jne 0x140355492
movzx eax, byte [r15 + 9]
lea ecx, [rax - 0x41]
mov edx, eax
xor dl, 0xe0
mov r8d, eax
and r8b, 0x60
add r8b, r8b
add r8b, dl
cmp cl, 0x1a
movzx ecx, r8b
jmp 0x140355b00
lea rbx, [0x1403561a0]
jmp 0x140355492
or r12d, dword [0x1405404d4]
add r12d, 0xffffff5c
movsxd rax, r12d
add rax, qword [0x1405404e8]
mov dword [rsp + 0x38], 0x57dbeb51
mov dword [rsp + 0x30], 0xfe20033f
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
xor ecx, ecx
xor edx, edx
mov r8, rdi
xor r9d, r9d
call qword [case.0x140303ece.0]
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.1403e4d80
mov eax, r15d
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret