Function at 0x1400151a0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x20
mov rsi, rcx
mov eax, dword [0x1400d45c0]
or eax, dword [0x1400d45c4]
and eax, 0xd33d293c
add eax, 0xc67b15d5
add eax, 0x5b67612d
cmp eax, 0x115bb9f4
je 0x14001591c
jmp 0x1400151d9
mov ecx, dword [0x1400d45c8]
imul ecx, dword [0x1400d45cc]
xor ecx, 0xff55c47e
and ecx, 0x8e9a11d8
and ecx, 0x39f3031d
movzx eax, byte [rsi + 0x1a8]
cmp ecx, 0x6af99440
je 0x1400151d9
mov ecx, eax
sub eax, 0xa
ja case.0x14001521c.1
lea rax, [0x1400b4150]
movsxd rcx, dword [rax + rcx*4]
add rcx, rax
jmp rcx
add rsp, 0x20
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
mov rdx, qword [rsi]
cmp rdx, 0
je 0x140015245
mov rcx, qword [rsi + 8]
mov r8d, 1
call fcn.1400541d0
mov eax, dword [0x1400d45d0]
and eax, dword [0x1400d45d4]
add eax, 0xe7074ab7
and eax, 0x47289c43
sub eax, 0xe38747a9
cmp eax, 0x3655d0a
jbe 0x140015929
jmp 0x14001526d
mov edx, dword [0x1400d45d8]
imul edx, dword [0x1400d45dc]
and edx, 0x51b4dc86
or edx, 0x97f3510a
add edx, 0x8d6bbc10
mov rcx, rsi
add rcx, 0x18
mov rax, qword [rsi + 0x18]
lock dec qword [rax]
sete al
cmp edx, 0xc291d18
jbe 0x14001526d
test al, 1
jne 0x1400152af
jmp case.0x14001521c.1
call fcn.140041ee0
jmp case.0x14001521c.1
cmp byte [rsi + 0x220], 3
jne 0x140015538
cmp byte [rsi + 0x218], 3
jne 0x140015538
cmp byte [rsi + 0x1d0], 4
jne 0x140015538
mov rcx, rsi
add rcx, 0x1d8
call fcn.140060960
mov rax, qword [rsi + 0x1e0]
cmp rax, 0
je 0x140015538
mov rcx, qword [rsi + 0x1e8]
call qword [rax + 0x18]
jmp 0x140015538
mov rcx, rsi
add rcx, 0x1b8
call fcn.140015b10
mov rcx, qword [rsi + 0xe8]
mov edx, 1
call fcn.140060190
jmp 0x140015538
cmp byte [rsi + 0x220], 3
jne 0x1400155c9
cmp byte [rsi + 0x218], 3
jne 0x1400155c9
cmp byte [rsi + 0x1d0], 4
jne 0x1400155c9
mov rcx, rsi
add rcx, 0x1d8
call fcn.140060960
mov rax, qword [rsi + 0x1e0]
cmp rax, 0
je 0x1400155c9
mov rcx, qword [rsi + 0x1e8]
call qword [rax + 0x18]
jmp 0x1400155c9
mov rcx, rsi
add rcx, 0x1b8
call fcn.140015b10
mov rcx, qword [rsi + 0x118]
mov edx, 1
call fcn.140060190
jmp 0x1400155c9
mov eax, 0x158
cmp byte [rsi + 0x220], 3
jne 0x140015604
mov eax, 0x158
cmp byte [rsi + 0x218], 3
jne 0x140015604
mov eax, 0x158
cmp byte [rsi + 0x1d0], 4
jne 0x140015604
mov rcx, rsi
add rcx, 0x1d8
call fcn.140060960
mov rdx, qword [rsi + 0x1e0]
mov eax, 0x158
cmp rdx, 0
je 0x140015604
mov rcx, qword [rsi + 0x1e8]
call qword [rdx + 0x18]
mov eax, 0x158
jmp 0x140015604
mov eax, dword [0x1400d45e0]
add eax, dword [0x1400d45e4]
sub eax, 0x834db164
mov ecx, 0x28ea3a58
xor edx, edx
div ecx
sub eax, 0x84609fe4
cmp eax, 0x74fb441e
je 0x140015941
jmp 0x14001544a
mov eax, dword [0x1400d45e8]
and eax, dword [0x1400d45ec]
mov ecx, 0x7ea8b1d
xor edx, edx
div ecx
mov edi, eax
xor edi, 0x1456ad9
xor edi, 0x64f36acf
mov rcx, rsi
add rcx, 0x1b8
call fcn.140015b10
mov rcx, qword [rsi + 0x178]
mov edx, 1
call fcn.140060190
cmp edi, 0xbdc5a2f3
je 0x14001544a
mov eax, 0x158
jmp 0x140015604
mov eax, 0x180
cmp byte [rsi + 0x220], 3
jne 0x140015604
mov eax, 0x180
cmp byte [rsi + 0x218], 3
jne 0x140015604
mov eax, 0x180
cmp byte [rsi + 0x1d0], 4
jne 0x140015604
mov rcx, rsi
add rcx, 0x1d8
call fcn.140060960
mov rdx, qword [rsi + 0x1e0]
mov eax, 0x180
cmp rdx, 0
je 0x140015604
mov rcx, qword [rsi + 0x1e8]
call qword [rdx + 0x18]
mov eax, 0x180
jmp 0x140015604
mov rcx, rsi
add rcx, 0x1b8
call fcn.140015b10
mov rcx, qword [rsi + 0x1a0]
mov edx, 1
call fcn.140060190
mov eax, 0x180
jmp 0x140015604
mov rdx, qword [rsi + 0xc8]
cmp rdx, 0
je 0x140015557
mov rcx, qword [rsi + 0xd0]
mov r8d, 1
call fcn.1400541d0
mov eax, dword [0x1400d45f0]
imul eax, dword [0x1400d45f4]
add eax, 0x7d337a95
sub eax, 0xae684ff3
xor eax, 0xfcd81385
cmp eax, 0xdd3ea043
ja 0x140015972
jmp 0x140015580
mov eax, dword [0x1400d45f8]
and eax, dword [0x1400d45fc]
xor eax, 0x739224e7
imul eax, eax, 0x4b713302
mov ecx, 0x95f12955
xor edx, edx
div ecx
mov rdi, rsi
add rdi, 0x1ab
cmp byte [rsi + 0x1ab], 0
sete cl
cmp eax, 0x372777cb
ja 0x140015580
test cl, 1
jne 0x140015816
jmp 0x1400158f4
mov rdx, qword [rsi + 0xf8]
cmp rdx, 0
je 0x1400155e8
mov rcx, qword [rsi + 0x100]
mov r8d, 1
call fcn.1400541d0
mov r12, rsi
add r12, 0x1ac
cmp byte [rsi + 0x1ac], 0
je case.0x1400156c2.0
jmp 0x1400156a2
mov rcx, rsi
add rcx, rax
mov rdx, qword [rsi + rax]
cmp rdx, 0
je 0x140015623
mov rcx, qword [rcx + 8]
mov r8d, 1
call fcn.1400541d0
mov rdi, rsi
add rdi, 0x1aa
cmp byte [rsi + 0x1aa], 0
jne 0x14001564b
mov rbx, rsi
add rbx, 0x1a9
cmp byte [rsi + 0x1a9], 0
je 0x14001566c
jmp 0x140015677
mov rdx, qword [rsi + 0x120]
cmp rdx, 0
je 0x140015636
mov rcx, qword [rsi + 0x128]
mov r8d, 1
call fcn.1400541d0
jmp 0x140015636
mov byte [rbx], 0
mov byte [rdi], 0
jmp 0x1400155e8
mov rdx, qword [rsi + 0x138]
cmp rdx, 0
je 0x14001566c
mov rcx, qword [rsi + 0x140]
mov r8d, 1
call fcn.1400541d0
jmp 0x14001566c
mov byte [r12], 0
jmp 0x140015557
mov rax, qword [rsi + 0xf0]
cmp rax, 0
je case.0x1400156c2.0
mov ecx, eax
and ecx, 3
lea rdx, [0x1400b417c]
movsxd rcx, dword [rdx + rcx*4]
add rcx, rdx
jmp rcx
mov eax, dword [0x1400d4618]
xor edx, edx
div dword [0x1400d461c]
xor eax, 0x9b2ffc70
mov ecx, 0xf6922e14
xor edx, edx
div ecx
mov ebp, eax
and ebp, 0x481c834c
mov rcx, rbx
call r14
cmp ebp, 0x6af479b2
ja 0x140015990
jmp 0x14001578f
mov r14, qword [r15 + 8]
mov r15, qword [r15 + 0x10]
cmp r14, 0
je 0x1400157fe
mov eax, dword [0x1400d4620]
imul eax, dword [0x1400d4624]
sub eax, 0x2f78b2ec
add eax, 0x31d6fa16
and eax, 0xfd6b8cd5
cmp eax, 0xd38711f1
jb 0x1400159a7
jmp 0x1400157c6
mov eax, dword [0x1400d4628]
xor edx, edx
div dword [0x1400d462c]
imul eax, eax, 0x78385762
imul ebp, eax, 0xaa97ba09
sub ebp, 0xa22db9ee
mov rcx, rbx
mov rdx, r14
mov r8, r15
call fcn.1400541d0
cmp ebp, 0xf04b0945
ja 0x1400157c6
jmp 0x1400157fe
mov rcx, rdi
mov edx, 0x18
mov r8d, 8
call fcn.1400541d0
jmp case.0x1400156c2.0
mov byte [rdi], 0
mov rdx, qword [rsi + 0x40]
cmp rdx, 0
je 0x140015832
mov rcx, qword [rsi + 0x48]
mov r8d, 1
call fcn.1400541d0
mov rdx, qword [rsi + 0x58]
cmp rdx, 0
je 0x14001584b
mov rcx, qword [rsi + 0x60]
mov r8d, 1
call fcn.1400541d0
mov rbx, rsi
add rbx, 0x70
mov rdi, rsi
add rdi, 0x78
mov r14, qword [rsi + 0x78]
mov r15, qword [rsi + 0x80]
cmp r15, 0
je 0x14001589c
xor r12d, r12d
jmp 0x14001586f
imul rcx, r12, 0x18
mov rax, r14
add rax, rcx
add r12, 1
mov rdx, qword [rax]
cmp rdx, 0
je 0x140015895
mov rcx, qword [rax + 8]
mov r8d, 1
call fcn.1400541d0
cmp r12, r15
jne 0x14001586f
jmp 0x14001589c
mov rax, qword [rbx]
cmp rax, 0
je 0x1400158b7
mov rcx, qword [rdi]
imul rdx, rax, 0x18
mov r8d, 8
call fcn.1400541d0
mov rcx, rsi
add rcx, 0x38
mov rax, qword [rsi + 0x38]
lock dec qword [rax]
sete al
test al, 1
je 0x1400158d2
call fcn.140041ee0
mov rdx, qword [rsi + 0x20]
cmp rdx, 0
je case.0x14001521c.1
mov rcx, qword [rsi + 0x28]
mov r8d, 1
call fcn.1400541d0
jmp case.0x14001521c.1
mov rdx, qword [rsi + 0xb0]
cmp rdx, 0
je 0x140015816
mov rcx, qword [rsi + 0xb8]
mov r8d, 1
call fcn.1400541d0
jmp 0x140015816
jne 0x1400158cd
adc ebp, dword [rax]
jge 0x1400159a0
xor cl, ch
scasb al, byte [rdi]
clc
invalid
fadd st(4), st(0)
invalid
cmc
invalid
scasb al, byte [rdi]
movabs eax, dword [0x2998eb35a01512c5]
wait
jmp 0x14001557e
and dl, byte [rsi - 0x74481e83]
xor bh, byte [rbx]
invalid
call rsi
jmp 0x140015757
jo 0x1400159fc
invalid
add bl, ch
mov eax, dword [eip + 0xbec2b]
xor edx, edx
div dword [str.HHzX]
mov ecx, 0xac0e2eb7
xor edx, edx
div ecx
or eax, 0x653bcb
and eax, 0x74902272
cmp eax, 0xa9f6657e
jae 0x140015af1
mov eax, dword [0x1400d4638]
mov ecx, dword [0x1400d463c]
imul eax, ecx
imul edi, eax, 0x15746b8b
mov eax, 0xc80dc47f
imul rdi, rax
shr rdi, 0x39
and edi, 0xffffffec
mov rcx, rsi
call fcn.140041ee0
cmp edi, 0x49971174
jae 0x140015af1
jmp 0x140015a66
add rsp, 0x28
pop rdi
pop rsi
ret
stosd dword [rdi], eax
invalid