Function at 0x140381ba0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
mov esi, edx
mov edi, ecx
mov eax, dword [0x1405ac4f8]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x140381c04
lea rdx, [rsp + 0x40]
mov ecx, edi
mov r8d, 0xd13d5a1f
mov r9d, 0xc4ea301e
call fcn.140382890
movzx ecx, byte [rsp + 0x40]
mov edx, dword [0x1405ac4f8]
lea eax, [rdx - 1]
imul eax, edx
mov r8d, 0x924f38dd
add r8d, dword [0x14058b130]
xor edx, edx
div r8d
test edx, edx
je 0x140381c36
lea rbx, [rsp + 0x40]
nop dword [rax]
mov r8d, dword [0x14058b130]
lea edx, [r8 + 0x1e3ba004]
add r8d, 0x72954d3
mov rcx, rbx
call fcn.140382830
cmp dword [rsp + 0x40], 0x24
jge 0x140381c10
jmp 0x140381bc5
test cl, 1
je 0x140381ce0
mov ecx, esi
mov edx, 0x338f0529
mov r8d, 0xc42fa9ed
call fcn.1403827b0
test al, 1
je 0x140381d44
movzx eax, byte [0x14058b09d]
cmp al, 0x48
je 0x140381e38
movzx ecx, byte [0x14058b140]
lea eax, [rcx - 0xa]
add cl, 0x89
lock cmpxchg byte [0x14058b09d], cl
jne 0x140381c60
xor esi, esi
lea r14, [0x14058b090]
lea rdi, [rsp + 0x3f]
lea rbx, [rsp + 0x40]
nop word cs:[rax + rax]
lea rcx, [r14 + rsi]
mov dword [rsp + 0x28], 0x191d34c2
mov dword [rsp + 0x20], 0xf2932818
mov edx, esi
mov r8, rdi
mov r9, rbx
call fcn.140382720
movzx eax, byte [rsp + 0x3f]
mov rcx, qword [rsp + 0x40]
mov byte [rcx + r14], al
lea eax, [rsi + 1]
cmp eax, 0xc
jg 0x140381e29
inc rsi
jmp 0x140381ca0
mov eax, 0x924f38db
add eax, dword [0x14058b130]
cmp esi, eax
jne 0x140381dcc
xor edi, edi
lea rsi, [rsp + 0x40]
mov bl, 1
nop dword [rax]
test dil, dil
jne 0x140381d2b
mov r8d, dword [0x14058b130]
lea edx, [r8 - 0x5ee7ae6d]
add r8d, 0x765b6a87
mov rcx, rsi
call fcn.1403827d0
test dil, dil
je 0x140381df9
mov rcx, rsi
mov edx, 0xa452be4d
mov r8d, 0x6e7b22d9
call fcn.140382870
test bl, bl
je 0x140381d00
jmp 0x140381d05
movzx eax, byte [0x14058afaf]
cmp al, 0xf7
je 0x140381ef4
mov bl, 0xd1
mov esi, 0x924f38dd
jmp 0x140381d86
mov al, 5
lock cmpxchg byte [0x14058afaf], bl
mov ecx, dword [0x1405ac4f8]
lea eax, [rcx - 1]
imul eax, ecx
mov ecx, dword [0x14058b130]
add ecx, esi
xor edx, edx
div ecx
test edx, edx
je 0x140381d91
mov eax, dword [0x1405ac4fc]
cmp eax, 0x25
jg 0x140381d60
mov al, 5
lock cmpxchg byte [0x14058afaf], bl
sete cl
mov edx, dword [0x1405ac4fc]
cmp edx, 0x20
jg 0x140381d60
test cl, cl
jne 0x140381e44
mov ecx, eax
mov edx, 0x24d24f2
mov r8d, 0x3f1aca27
call fcn.140382880
test al, 1
je 0x140381d86
jmp 0x140381ef4
movzx eax, byte [0x14058b043]
cmp al, 0x20
je 0x14038214e
mov cl, 0x36
nop dword [rax]
mov al, 0xbf
lock cmpxchg byte [0x14058b043], cl
je 0x140381f00
cmp al, 0x20
jne 0x140381de0
jmp 0x14038214e
test byte [rsp + 0x40], 1
jne 0x1403820db
mov cl, 0xa6
nop word cs:[rax + rax]
mov al, 0xfe
lock cmpxchg byte [0x14058b05f], cl
je 0x140381f84
cmp al, 0x3c
jne 0x140381e10
jmp 0x1403820db
movzx eax, byte [0x14058b140]
add al, 0xe4
xchg byte [0x14058b09d], al
lea rax, [0x14058b090]
jmp 0x1403820ca
xor esi, esi
lea rdi, [0x14058afa0]
lea rbx, [0x140487710]
nop word cs:[rax + rax]
movsxd rax, esi
movzx ecx, byte [rax + rbx]
xor byte [rax + rdi], cl
mov ecx, dword [0x14058b130]
lea esi, [rcx + rax]
add esi, 0x924f38dc
mov ecx, esi
mov edx, 0x62ed6b04
mov r8d, 0x34e5fd76
call fcn.1401af8f0
test al, 1
je 0x140381e60
mov esi, 0x924f38db
nop word cs:[rax + rax]
mov ecx, dword [0x1405ac4f8]
lea edx, [rcx - 1]
mov r8d, 0xb0ed7af4
mov r9d, 0xf5d8ecd6
call fcn.1400ab8b0
test al, 1
jne 0x140381edb
nop
mov eax, dword [0x1405ac4f8]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
mov eax, dword [0x14058b130]
add eax, esi
cmp ecx, eax
jne 0x140381ea0
mov eax, dword [0x1405ac4f8]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x140381ec0
mov al, 0xf7
xchg byte [0x14058afaf], al
lea rax, [0x14058afa0]
jmp 0x1403820ca
xor esi, esi
lea r14, [0x14058b020]
lea rdi, [rsp + 0x3f]
lea rbx, [rsp + 0x40]
nop word cs:[rax + rax]
movzx edx, byte [rsi + r14]
mov dword [rsp + 0x28], 0x51af2963
mov dword [rsp + 0x20], 0x7a6e9b3a
mov ecx, esi
mov r8, rdi
mov r9, rbx
call fcn.140382810
movzx edx, byte [rsp + 0x3f]
mov rcx, qword [rsp + 0x40]
mov r8d, 0xde06a55a
mov r9d, 0x36cbf82c
call fcn.140382800
lea eax, [rsi + 1]
mov ecx, dword [0x14058b130]
mov edx, ecx
xor edx, 0x924f38fe
and ecx, 0x124f38fe
lea ecx, [rdx + rcx*2]
cmp eax, ecx
jge 0x14038208f
inc rsi
jmp 0x140381f20
xor ebp, ebp
lea r14, [0x14058b050]
lea r15, [0x1404877b0]
lea rsi, [rsp + 0x40]
mov r12b, 1
xor ebx, ebx
jmp 0x140381faa
test r13b, 1
jne 0x1403820b7
movsxd rdi, ebx
test bpl, bpl
jne 0x140382040
nop word cs:[rax + rax]
movzx edx, byte [rdi + r14]
xor dl, byte [rdi + r15]
mov dword [rsp + 0x28], 0x957b4b55
mov dword [rsp + 0x20], 0xf9484d2
mov rcx, rdi
mov r8d, edi
mov r9, rsi
call fcn.140382660
mov ebx, dword [rsp + 0x40]
mov ecx, ebx
mov rdx, rsi
mov r8d, 0xc6c92d31
mov r9d, 0x2ab44e95
call fcn.1403827f0
movzx r13d, byte [rsp + 0x40]
mov rcx, rsi
mov edx, 0xf9ecb708
mov r8d, 0x3003fba
call fcn.140382740
mov ecx, dword [rsp + 0x40]
mov edx, 0x69136815
mov r8d, 0x74794ce9
call fcn.1403826f0
test al, 1
jne 0x140381fa0
nop word cs:[rax + rax]
movzx ecx, byte [rdi + r14]
movzx edx, byte [rdi + r15]
mov eax, ecx
sub al, dl
mul dl
mov ebx, eax
mov dword [rsp + 0x20], 0x2768f480
mov edx, eax
mov r8, rsi
mov r9d, 0xa2ec48c4
call fcn.1401eb550
xor bl, byte [rsp + 0x40]
mov byte [rdi + r14], bl
lea ecx, [rdi + rdi*2]
mov edx, 0x1ba39ed4
mov r8d, 0x93ef7ee1
call fcn.14008bef0
test r12b, r12b
je 0x140382040
jmp 0x140381fc0
mov eax, 0x924f38dc
add eax, dword [0x14058b130]
lea rcx, [fcn.140381ba0]
add ecx, ecx
add ecx, 0x1120
xor ecx, eax
not ecx
test ecx, eax
jne 0x140382132
jmp 0x14038211d
mov eax, dword [0x1405ac4f8]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x1403820ea
jmp 0x1403820e4
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rax, [0x14058b050]
jmp 0x1403820ca
mov al, 1
test al, al
jne 0x14038210c
lea rsi, [rsp + 0x40]
nop
mov rcx, rsi
mov edx, 0x70a7f4af
mov r8d, 0xdd1bfbd2
call fcn.140071320
cmp dword [rsp + 0x40], 0
jne 0x1403820f0
jmp 0x1403820e4
mov ecx, 0xf2d0d40b
mov edx, 0xf2d0d40b
call fcn.140382700
jmp 0x1403820db
mov eax, dword [0x1405ac4fc]
mov ecx, 0x924f3903
add ecx, dword [0x14058b130]
cmp eax, ecx
jl 0x140382146
mov al, 1
nop word cs:[rax + rax]
test al, al
je 0x140382140
jmp 0x14038211d
mov al, 0x20
xchg byte [0x14058b043], al
lea rax, [0x14058b020]
jmp 0x1403820ca