Function at 0x140127f3c
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x338
mov r14d, 1
test rdx, rdx
je 0x14012801c
mov r12, rdx
mov rsi, rcx
movzx r15d, byte [rcx]
cmp r15d, 0x2d
je 0x140127f74
cmp r15d, 0x2b
jne 0x140127f80
dec r12
je 0x140128060
inc rsi
cmp r15b, 0x2d
sete r9b
lea rdi, [rsp + 0x28]
mov rcx, rdi
mov rdx, rsi
mov r8, r12
call fcn.140059940
mov bl, byte [rdi + 0x10]
cmp bl, 2
jne 0x140128020
mov r14d, 1
mov edi, pe_nt_image_headers64
cmp r12, 3
jb 0x140128065
xor eax, eax
lea rcx, [0x14044ea7c]
xor edx, edx
mov bl, byte [rdx + rcx]
xor bl, byte [rsi + rdx]
lea rbp, [rdx + 1]
or al, bl
mov rdx, rbp
cmp rbp, 3
jne 0x140127fc3
test al, 0xdf
je 0x140128203
xor eax, eax
lea rcx, [0x14044ea7f]
xor edx, edx
mov bl, byte [rdx + rcx]
xor bl, byte [rsi + rdx]
lea rbp, [rdx + 1]
or al, bl
mov rdx, rbp
cmp rbp, 3
jne 0x140127feb
test al, 0xdf
jne 0x140128065
mov rcx, rsi
mov rdx, r12
call fcn.140059d10
movss xmm0, dword [0x1403bcb48]
jmp 0x140128210
xor edi, edi
jmp 0x140128065
mov r15, qword [rsp + 0x28]
mov rbp, qword [rsp + 0x30]
mov r13b, byte [rsp + 0x39]
lea rax, [r15 + 0xa]
cmp rax, 0x1b
ja 0x140128096
cmp rbp, 0x1000000
ja 0x140128096
test r13b, r13b
jne 0x140128096
cmp r15, 0xa
jg 0x14012806a
test rbp, rbp
js 0x140128228
cvtsi2ss xmm0, rbp
jmp 0x14012823d
mov edi, pe_nt_image_headers64
jmp 0x1401282c2
lea rcx, [0x14044ea88]
mov rax, rbp
mul qword [rcx + r15*8 - 0x50]
jo 0x140128096
cmp rax, 0x1000000
ja 0x140128096
test rax, rax
js 0x140128270
cvtsi2ss xmm0, rax
jmp 0x140128285
mov rcx, r15
mov rdx, rbp
call fcn.1401277ee
mov rdi, rax
mov r14d, edx
test r13b, r13b
je 0x1401280cf
test r14d, r14d
js 0x1401280cf
inc rbp
mov rcx, r15
mov rdx, rbp
call fcn.1401277ee
cmp rdi, rax
jne 0x1401280d8
cmp r14d, edx
je 0x1401282a7
jmp 0x1401280d8
test r14d, r14d
jns 0x1401282a7
lea rbp, [rsp + 0x28]
mov rcx, rbp
mov rdx, rsi
mov r8, r12
call fcn.1400594c0
xor edi, edi
cmp qword [rbp + 0x300], 0
je 0x14012826b
mov eax, dword [rsp + 0x330]
mov r14d, 0
cmp eax, 0xfffffebc
jl 0x1401282a7
mov r14d, 0xff
xor edi, edi
cmp eax, 0x135
jg 0x1401282a7
mov r15d, ebx
test eax, eax
jle 0x14012816e
xor edi, edi
lea rbp, [0x14044ea69]
lea rsi, [rsp + 0x28]
mov ebx, 0x3c
cmp eax, 0x12
ja 0x14012814b
mov eax, eax
movzx ebx, byte [rax + rbp]
mov rcx, rsi
mov rdx, rbx
call fcn.1400592a0
mov eax, dword [rsp + 0x330]
cmp eax, 0xfffff801
jl 0x14012828f
add edi, ebx
test eax, eax
jg 0x14012813b
lea rsi, [rsp + 0x28]
lea rbp, [0x14044ea69]
test eax, eax
je 0x140128192
neg eax
mov ebx, 0x3c
cmp eax, 0x12
ja 0x1401281a5
mov eax, eax
movzx ebx, byte [rax + rbp]
jmp 0x1401281a5
mov al, byte [rsp + 0x28]
cmp al, 4
ja 0x1401281c8
cmp al, 2
mov ebx, 0
adc rbx, 1
mov rcx, rsi
mov rdx, rbx
call fcn.140058fd0
mov eax, dword [rsp + 0x330]
cmp eax, 0x7ff
jg 0x1401282a2
sub edi, ebx
test eax, eax
jle 0x14012817a
dec edi
cmp edi, 0xffffff81
jg 0x140128296
mov ebp, 0x3c
lea rbx, [rsp + 0x28]
mov esi, 0xffffff82
sub esi, edi
cmp esi, 0x3c
cmovae esi, ebp
mov rcx, rbx
mov rdx, rsi
call fcn.1400592a0
add esi, edi
mov edi, esi
cmp esi, 0xffffff82
jb 0x1401281dd
jmp 0x140128298
mov eax, 3
movss xmm0, dword [0x1403bcba8]
cmp rax, r12
jne 0x1401282c2
cmp r15b, 0x2d
je 0x1401282b6
jmp 0x1401282bd
mov rax, rbp
shr rax, 1
and ebp, 1
or rbp, rax
cvtsi2ss xmm0, rbp
addss xmm0, xmm0
test r15, r15
js 0x140128255
and r15d, 0xf
lea rax, [0x1403c4e30]
mulss xmm0, dword [rax + r15*4]
jmp 0x1401282b2
neg r15d
and r15d, 0xf
lea rax, [0x1403c4e30]
divss xmm0, dword [rax + r15*4]
jmp 0x1401282b2
xor r14d, r14d
jmp 0x1401282a7
mov rcx, rax
shr rcx, 1
and eax, 1
or rax, rcx
cvtsi2ss xmm0, rax
addss xmm0, xmm0
mulss xmm0, dword [0x1403bcba4]
jmp 0x1401282b2
xor edi, edi
xor r14d, r14d
jmp 0x1401282a4
mov esi, edi
lea eax, [rsi + 0x7f]
cmp eax, 0xfe
jle 0x1401282ed
xor edi, edi
mov ebx, r15d
shl r14d, 0x17
or edi, r14d
movd xmm0, edi
test bl, bl
je 0x1401282bd
xorps xmm0, xmmword [0x1403bcaf0]
xor edi, edi
xor r14d, r14d
movd eax, xmm0
shl rax, 0x20
and edi, 0x100
or rdi, rax
or rdi, r14
mov rax, rdi
add rsp, 0x338
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rdi, [rsp + 0x28]
mov edx, 0x18
mov rcx, rdi
call fcn.140058fd0
mov rcx, rdi
call fcn.140058300
cmp rax, 0xffffff
mov ebx, r15d
jbe 0x140128343
lea rdi, [rsp + 0x28]
mov edx, 1
mov rcx, rdi
call fcn.1400592a0
mov rcx, rdi
call fcn.140058300
mov rdi, rax
lea eax, [rsi + 0x80]
cmp eax, 0xfe
jle 0x140128348
xor edi, edi
jmp 0x1401282a7
mov rdi, rax
jmp 0x14012834a
inc esi
cmp rdi, 0x800000
sbb esi, 0
add esi, 0x7f
and edi, 0x7fffff
mov r14d, esi
jmp 0x1401282a7