Function at 0x140004730
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r14
lea rbp, [rsp - 0xfd0]
mov eax, 0x10d0
call fcn.140005310
sub rsp, rax
xor r14d, r14d
mov ebx, r14d
cmp qword [0x1400070b0], rbx
mov qword [rbp + 0x1000], rbx
jne 0x140004a8a
mov ecx, dword [0x140007088]
lea edx, [r14 + 8]
mov rax, qword [0x140007050]
lea r9d, [r14 + 4]
mov r8d, 0x1000
mov r10d, dword [rax + rcx*4]
xor ecx, ecx
add r10, qword [0x140007080]
call r10
mov qword [0x1400070b0], rax
test rax, rax
je 0x140004f0f
lea rcx, [rbp + 0x1000]
call fcn.1400033f0
test eax, eax
js 0x140004f0f
mov rbx, qword [rbp + 0x1000]
mov byte [rbp + 0x1008], 2
test rbx, rbx
je 0x140004823
test ebx, ebx
js 0x140004823
mov ecx, dword [0x14000708c]
lea r9d, [r14 + 1]
mov rax, qword [0x140007050]
lea r8, [rbp + 0x1008]
mov qword [rsp + 0x38], r14
mov edx, 0x222298
mov byte [rbp + 0x1000], 1
mov r10d, dword [rax + rcx*4]
lea rax, [rbp - 0x80]
add r10, qword [0x140007080]
mov rcx, rbx
mov qword [rsp + 0x30], rax
lea rax, [rbp + 0x1000]
mov dword [rsp + 0x28], 1
mov qword [rsp + 0x20], rax
call r10
mov byte [rbp + 0x1018], 0x82
test rbx, rbx
je 0x14000488c
test ebx, ebx
js 0x14000488c
mov ecx, dword [0x14000708c]
lea r8, [rbp + 0x1018]
mov rax, qword [0x140007050]
mov r9d, 1
mov qword [rsp + 0x38], r14
mov edx, 0x222298
mov byte [rbp + 0x1010], 1
mov r10d, dword [rax + rcx*4]
lea rax, [rbp - 0x7c]
add r10, qword [0x140007080]
mov rcx, rbx
mov qword [rsp + 0x30], rax
lea rax, [rbp + 0x1010]
mov dword [rsp + 0x28], 1
mov qword [rsp + 0x20], rax
call r10
mov dword [rsp + 0x58], r14d
test rbx, rbx
je 0x1400048e0
test ebx, ebx
js 0x1400048e0
mov ecx, dword [0x14000708c]
lea r8, [rsp + 0x58]
mov rax, qword [0x140007050]
mov r9d, 4
mov qword [rsp + 0x38], r14
mov edx, 0x222284
mov r10d, dword [rax + rcx*4]
lea rax, [rbp - 0x78]
add r10, qword [0x140007080]
mov rcx, rbx
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], r14d
mov qword [rsp + 0x20], r14
call r10
mov rsi, qword [0x1400070b0]
test rbx, rbx
je 0x140004a8a
test ebx, ebx
js 0x140004a8a
mov ecx, dword [0x140007088]
movabs rax, 0x7711080000000000
mov qword [rbp - 0x70], rax
mov edx, 0x100
mov rax, qword [0x140007050]
mov r8d, 0x1000
mov dword [rsp + 0x50], r14d
mov r10d, dword [rax + rcx*4]
xor ecx, ecx
add r10, qword [0x140007080]
lea r9d, [rcx + 4]
call r10
mov rdi, rax
test rax, rax
je 0x140004a8a
mov ecx, dword [0x140007074]
xorps xmm0, xmm0
mov rax, qword [0x140007050]
xor r9d, r9d
mov byte [rsp + 0x40], 2
xor r8d, r8d
mov qword [rsp + 0x60], r14
mov dl, 1
movdqu xmmword [rsp + 0x68], xmm0
mov r10d, dword [rax + rcx*4]
xor ecx, ecx
add r10, qword [0x140007080]
call r10
mov qword [rsp + 0x78], rax
test rax, rax
je 0x140004a64
mov ecx, dword [0x14000708c]
lea r8, [rsp + 0x40]
mov rax, qword [0x140007050]
mov r9d, 1
mov edx, 0x2222a1
mov r10d, dword [rax + rcx*4]
lea rax, [rsp + 0x60]
add r10, qword [0x140007080]
mov rcx, rbx
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x50]
mov qword [rsp + 0x30], rax
lea rax, [rbp - 0x70]
mov dword [rsp + 0x28], 8
mov qword [rsp + 0x20], rax
call r10
test al, al
jne 0x140004f22
mov ecx, dword [0x14000706c]
mov rax, qword [0x140007050]
mov edx, dword [rax + rcx*4]
add rdx, qword [0x140007080]
call rdx
cmp eax, 0x3e5
jne 0x140004f22
mov ecx, dword [0x140007048]
lea r8, [rsp + 0x50]
mov rax, qword [0x140007050]
lea rdx, [rsp + 0x60]
mov r9b, 1
mov r10d, dword [rax + rcx*4]
mov rcx, rbx
add r10, qword [0x140007080]
call r10
test al, al
jne 0x140004f22
cmp dword [rsp + 0x50], 8
je 0x140004f22
mov ecx, dword [0x14000705c]
mov rax, qword [0x140007050]
mov edx, dword [rax + rcx*4]
add rdx, qword [0x140007080]
mov rcx, qword [rsp + 0x78]
call rdx
mov ecx, dword [0x140007098]
xor edx, edx
mov rax, qword [0x140007050]
mov r8d, 0x8000
mov r9d, dword [rax + rcx*4]
mov rcx, rdi
add r9, qword [0x140007080]
call r9
mov rdi, r14
mov esi, 0xa
nop dword [rax]
nop word [rax + rax]
lea r8, [rbp - 0x40]
mov rdx, rdi
mov rcx, rbx
call fcn.140003970
test eax, eax
js 0x140004abc
lea rcx, [rbp - 0x40]
call fcn.140004110
inc rdi
sub rsi, 1
jne 0x140004aa0
mov ecx, dword [0x140007068]
mov edi, r14d
mov rax, qword [0x140007050]
mov edx, dword [rax + rcx*4]
lea rcx, [rbp + 0x1008]
add rdx, qword [0x140007080]
call rdx
mov ecx, dword [0x14000702c]
mov rax, qword [0x140007050]
mov edx, dword [rax + rcx*4]
lea rcx, [rbp + 0x1000]
add rdx, qword [0x140007080]
call rdx
imul rax, qword [rbp + 0x1000], 0x3e8
xorps xmm1, xmm1
xorps xmm0, xmm0
cvtsi2sd xmm0, qword [rbp + 0x1008]
cvtsi2sd xmm1, rax
divsd xmm1, xmm0
cvttsd2si eax, xmm1
movsxd rsi, eax
nop dword [rax]
nop word [rax + rax]
lea eax, [rdi + 0x1000]
mov rcx, rbx
movsxd rdx, eax
lea r8, [rbp - 0x40]
call fcn.140003970
test eax, eax
lea ecx, [rdi + 1]
mov rax, qword [0x140007050]
cmovs ecx, edi
mov edi, ecx
mov ecx, dword [0x140007068]
mov edx, dword [rax + rcx*4]
lea rcx, [rbp + 0x1010]
add rdx, qword [0x140007080]
call rdx
mov ecx, dword [0x14000702c]
mov rax, qword [0x140007050]
mov edx, dword [rax + rcx*4]
lea rcx, [rbp + 0x1008]
add rdx, qword [0x140007080]
call rdx
imul rax, qword [rbp + 0x1008], 0x3e8
xorps xmm1, xmm1
xorps xmm0, xmm0
cvtsi2sd xmm0, qword [rbp + 0x1010]
cvtsi2sd xmm1, rax
divsd xmm1, xmm0
cvttsd2si eax, xmm1
movsxd rcx, eax
sub rcx, rsi
cmp rcx, 0x3e8
jb 0x140004b40
cmp byte [0x140006191], r14b
movups xmm0, xmmword [0x140006180]
movzx eax, word [0x140006190]
mov word [rsp + 0x70], ax
movups xmmword [rsp + 0x60], xmm0
je 0x140004da1
cmp dword [section..data], 2
mov r8d, r14d
jl 0x140004d5f
movdqa xmm0, xmmword [str.0000000000000000O]
lea rcx, [rsp + 0x64]
movdqa xmm5, xmmword [0x1400062c0]
movdqa xmm4, xmmword [0x140006320]
movdqa xmmword [rbp - 0x70], xmm0
mov edx, dword [rbp - 0x70]
movaps xmmword [rsp + 0x10c0], xmm6
movdqa xmm6, xmmword [0x1400062e0]
nop dword [rax]
nop word [rax + rax]
movd xmm2, r8d
lea eax, [r8 + 4]
pshufd xmm2, xmm2, 0
lea rcx, [rcx + 8]
paddd xmm2, xmm5
movd xmm3, eax
movdqa xmm1, xmm2
pshufd xmm3, xmm3, 0
punpckldq xmm1, xmm2
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
paddd xmm3, xmm5
pmuldq xmm0, xmm4
add r8d, 8
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
movdqa xmm1, xmm3
andps xmm2, xmmword [0x140006300]
packuswb xmm2, xmm2
punpckldq xmm1, xmm3
pmuldq xmm1, xmm4
movd xmm0, edx
paddb xmm2, xmm0
movd xmm0, dword [rcx - 0xc]
xorps xmm2, xmm0
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm4
movd dword [rcx - 0xc], xmm2
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm3, xmm0
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm1, xmm0, 0xd8
movd xmm0, edx
pshufd xmm2, xmm1, 0xd8
andps xmm2, xmmword [0x140006300]
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [rcx - 8]
xorps xmm2, xmm0
movd dword [rcx - 8], xmm2
cmp r8d, 0x10
jl 0x140004c50
movaps xmm6, xmmword [rsp + 0x10c0]
cmp r8d, 0x12
jge 0x140004da1
movsxd rax, r8d
lea r10, [rsp + 0x60]
add r10, rax
nop word [rax + rax]
mov eax, 0x4ec4ec4f
lea r10, [r10 + 1]
imul r8d
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x34
movzx eax, r8b
inc r8d
sub al, cl
add al, 0x30
xor byte [r10 - 1], al
cmp r8d, 0x12
jl 0x140004d70
cmp qword [0x1400070a8], r14
je 0x140004eca
mov ecx, dword [0x140007088]
mov edx, 0x100
mov rax, qword [0x140007050]
mov r8d, 0x1000
mov r10d, dword [rax + rcx*4]
xor ecx, ecx
add r10, qword [0x140007080]
lea r9d, [rcx + 4]
call r10
mov r8d, dword [0x1400070a4]
mov edx, 0x100
mov rcx, qword [0x140007050]
mov rsi, rax
mov r9d, dword [rcx + r8*4]
xor r8d, r8d
add r9, qword [0x140007080]
mov rcx, rax
call r9
mov rcx, qword [0x140007040]
mov eax, edi
cdq
mov r8d, edi
movzx edx, dl
add eax, edx
mov r9d, eax
movzx eax, al
sub eax, edx
sar r9d, 8
imul eax, eax, 0x64
cdq
movzx edx, dl
add eax, edx
mov edx, dword [0x14000704c]
sar eax, 8
mov dword [rsp + 0x20], eax
mov r10d, dword [rcx + rdx*4]
lea rdx, [rsp + 0x60]
add r10, qword [0x140007030]
mov rcx, rsi
call r10
mov dword [rbp + 0x1000], r14d
mov r8d, r14d
test rsi, rsi
je 0x140004e73
xor cl, cl
nop
movzx eax, cl
cmp byte [rax + rsi], r14b
je 0x140004e73
inc cl
inc r8d
cmp cl, 0xff
jb 0x140004e60
mov ecx, dword [0x140007090]
lea r9, [rbp + 0x1000]
mov rax, qword [0x140007050]
mov rdx, rsi
mov qword [rsp + 0x20], r14
mov r10d, dword [rax + rcx*4]
add r10, qword [0x140007080]
mov rcx, qword [0x1400070a8]
call r10
mov ecx, dword [0x140007098]
xor edx, edx
mov rax, qword [0x140007050]
mov r8d, 0x8000
mov r9d, dword [rax + rcx*4]
mov rcx, rsi
add r9, qword [0x140007080]
call r9
test rbx, rbx
je 0x140004ef1
test ebx, ebx
js 0x140004ef1
mov edx, dword [0x14000705c]
mov rcx, rbx
mov rax, qword [0x140007050]
mov r8d, dword [rax + rdx*4]
add r8, qword [0x140007080]
call r8
mov ecx, dword [0x140007070]
mov rax, qword [0x140007050]
mov edx, dword [rax + rcx*4]
mov ecx, 0x61a8
add rdx, qword [0x140007080]
call rdx
mov eax, 1
add rsp, 0x10d0
pop r14
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov ecx, dword [0x14000705c]
mov rax, qword [0x140007050]
mov edx, dword [rax + rcx*4]
add rdx, qword [0x140007080]
mov rcx, qword [rsp + 0x78]
call rdx
mov ecx, dword [0x140007074]
xorps xmm0, xmm0
mov rax, qword [0x140007050]
xor r9d, r9d
mov byte [rsp + 0x48], 0x82
xor r8d, r8d
mov qword [rbp - 0x60], r14
mov dl, 1
movdqu xmmword [rbp - 0x58], xmm0
mov r10d, dword [rax + rcx*4]
xor ecx, ecx
add r10, qword [0x140007080]
call r10
mov qword [rbp - 0x48], rax
test rax, rax
je 0x140004a64
mov ecx, dword [0x14000708c]
lea r8, [rsp + 0x48]
mov rax, qword [0x140007050]
mov r9d, 1
mov edx, 0x22229e
mov r10d, dword [rax + rcx*4]
lea rax, [rbp - 0x60]
add r10, qword [0x140007080]
mov rcx, rbx
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x50]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 0x100
mov qword [rsp + 0x20], rdi
call r10
test al, al
jne 0x14000504d
mov ecx, dword [0x14000706c]
mov rax, qword [0x140007050]
mov edx, dword [rax + rcx*4]
add rdx, qword [0x140007080]
call rdx
cmp eax, 0x3e5
jne 0x14000504d
mov ecx, dword [0x140007048]
lea r8, [rsp + 0x50]
mov rax, qword [0x140007050]
lea rdx, [rbp - 0x60]
mov r9b, 1
mov r10d, dword [rax + rcx*4]
mov rcx, rbx
add r10, qword [0x140007080]
call r10
test al, al
jne 0x14000504d
cmp dword [rsp + 0x50], 0x100
je 0x14000504d
mov ecx, dword [0x14000705c]
mov rax, qword [0x140007050]
mov edx, dword [rax + rcx*4]
add rdx, qword [0x140007080]
mov rcx, qword [rbp - 0x48]
jmp 0x140004a62
mov ecx, dword [0x14000705c]
mov rax, qword [0x140007050]
mov edx, dword [rax + rcx*4]
add rdx, qword [0x140007080]
mov rcx, qword [rbp - 0x48]
call rdx
mov edx, dword [rsp + 0x50]
mov ecx, r14d
test edx, edx
je 0x140004a8a
nop dword [rax]
cmp dword [rdi], 0x55556666
jne 0x140004a8a
movzx eax, word [rdi + 0xa]
add ecx, 4
add rdi, 4
mov word [rsi + 2], ax
cmp ecx, edx
jb 0x140005080
jmp 0x140004a8a