Function at 0x140073bc0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x30
cmp byte [rcx + 0x99], 0
mov rsi, r8
mov rbx, rcx
je 0x1400745b7
lea eax, [rdx - 0x25]
cmp eax, 0xf1
ja case.0x140073c0b.39
lea rcx, [0x140000000]
cdqe
movzx eax, byte [rcx + rax + 0x74610]
mov edx, dword [rcx + rax*4 + 0x745cc]
add rdx, rcx
jmp rdx
movzx ecx, byte [rbx + 4]
xor edi, edi
lea eax, [rcx - 6]
cmp al, 1
mov eax, dword [rbx + 0xc]
jbe 0x140073cb9
imul eax, dword [rbx + 8]
sub cl, 2
cmp cl, 1
jbe 0x140073c79
test eax, eax
je case.0x140073c0b.39
nop word [rax + rax]
mov r8d, dword [rsi + rdi*4]
test r8d, r8d
je 0x1400745b7
mov eax, dword [rbx + rdi*4 + 0x20]
xor edx, edx
div r8d
mov dword [rbx + rdi*4 + 0x20], edx
inc edi
mov eax, dword [rbx + 0xc]
imul eax, dword [rbx + 8]
cmp edi, eax
jb 0x140073c40
mov al, 1
mov rbx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
test eax, eax
je case.0x140073c0b.39
mov r8d, dword [rsi + rdi*4]
test r8d, r8d
je 0x1400745b7
mov eax, dword [rbx + rdi*4 + 0x20]
cdq
idiv r8d
mov dword [rbx + rdi*4 + 0x20], edx
inc edi
mov eax, dword [rbx + 0xc]
imul eax, dword [rbx + 8]
cmp edi, eax
jb 0x140073c81
mov al, 1
mov rbx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
imul eax, dword [rbx + 8]
test eax, eax
je case.0x140073c0b.39
mov qword [rsp + 0x40], rbp
movaps xmmword [rsp + 0x20], xmm6
xorps xmm6, xmm6
movss xmm1, dword [rsi + rdi*4]
ucomiss xmm1, xmm6
jp 0x140073ce8
jne 0x140073ce8
mov dword [rbx + rdi*4 + 0x20], 0x7fc00000
jmp 0x140073cf9
movss xmm0, dword [rbx + rdi*4 + 0x20]
call fcn.140084450
movss dword [rbx + rdi*4 + 0x20], xmm0
mov eax, dword [rbx + 0xc]
inc edi
imul eax, dword [rbx + 8]
cmp edi, eax
jb 0x140073cd2
movaps xmm6, xmmword [rsp + 0x20]
mov al, 1
mov rbp, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
movzx eax, byte [rbx + 4]
xor edi, edi
sub al, 6
cmp al, 1
mov eax, dword [rbx + 0xc]
jbe 0x140073d6c
imul eax, dword [rbx + 8]
test eax, eax
je case.0x140073c0b.39
nop dword [rax]
mov eax, dword [rbx + rdi*4 + 0x20]
imul eax, dword [r8 + rdi*4]
mov dword [rbx + rdi*4 + 0x20], eax
inc edi
mov eax, dword [rbx + 0xc]
imul eax, dword [rbx + 8]
cmp edi, eax
jb 0x140073d40
mov al, 1
mov rbx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
imul eax, dword [rbx + 8]
test eax, eax
je case.0x140073c0b.39
nop dword [rax + rax]
movss xmm0, dword [r8 + rdi*4]
mulss xmm0, dword [rbx + rdi*4 + 0x20]
movss dword [rbx + rdi*4 + 0x20], xmm0
inc edi
mov eax, dword [rbx + 0xc]
imul eax, dword [rbx + 8]
cmp edi, eax
jb 0x140073d80
mov al, 1
mov rbx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
movzx eax, byte [rbx + 4]
xor edi, edi
sub al, 6
cmp al, 1
mov eax, dword [rbx + 0xc]
jbe 0x140073df7
imul eax, dword [rbx + 8]
test eax, eax
je case.0x140073c0b.39
nop dword [rax]
mov eax, dword [r8 + rdi*4]
add dword [rbx + rdi*4 + 0x20], eax
inc edi
mov eax, dword [rbx + 0xc]
imul eax, dword [rbx + 8]
cmp edi, eax
jb 0x140073dd0
mov al, 1
mov rbx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
imul eax, dword [rbx + 8]
test eax, eax
je case.0x140073c0b.39
movss xmm0, dword [r8 + rdi*4]
addss xmm0, dword [rbx + rdi*4 + 0x20]
movss dword [rbx + rdi*4 + 0x20], xmm0
inc edi
mov eax, dword [rbx + 0xc]
imul eax, dword [rbx + 8]
cmp edi, eax
jb 0x140073e03
mov al, 1
mov rbx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
movzx eax, byte [rbx + 4]
xor edi, edi
sub al, 6
cmp al, 1
mov eax, dword [rbx + 0xc]
jbe 0x140073e77
imul eax, dword [rbx + 8]
test eax, eax
je case.0x140073c0b.39
nop
mov eax, dword [r8 + rdi*4]
sub dword [rbx + rdi*4 + 0x20], eax
inc edi
mov eax, dword [rbx + 0xc]
imul eax, dword [rbx + 8]
cmp edi, eax
jb 0x140073e50
mov al, 1
mov rbx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
imul eax, dword [rbx + 8]
test eax, eax
je case.0x140073c0b.39
movss xmm0, dword [rbx + rdi*4 + 0x20]
subss xmm0, dword [r8 + rdi*4]
movss dword [rbx + rdi*4 + 0x20], xmm0
inc edi
mov eax, dword [rbx + 0xc]
imul eax, dword [rbx + 8]
cmp edi, eax
jb 0x140073e83
mov al, 1
mov rbx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
movzx ecx, byte [rbx + 4]
xor edi, edi
lea eax, [rcx - 6]
cmp al, 1
mov eax, dword [rbx + 0xc]
jbe 0x140073f59
imul eax, dword [rbx + 8]
sub cl, 2
cmp cl, 1
jbe 0x140073f19
test eax, eax
je case.0x140073c0b.39
nop dword [rax]
mov r8d, dword [rsi + rdi*4]
test r8d, r8d
je 0x1400745b7
mov eax, dword [rbx + rdi*4 + 0x20]
xor edx, edx
div r8d
mov dword [rbx + rdi*4 + 0x20], eax
inc edi
mov eax, dword [rbx + 0xc]
imul eax, dword [rbx + 8]
cmp edi, eax
jb 0x140073ee0
mov al, 1
mov rbx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
test eax, eax
je case.0x140073c0b.39
mov r8d, dword [rsi + rdi*4]
test r8d, r8d
je 0x1400745b7
mov eax, dword [rbx + rdi*4 + 0x20]
cdq
idiv r8d
mov dword [rbx + rdi*4 + 0x20], eax
inc edi
mov eax, dword [rbx + 0xc]
imul eax, dword [rbx + 8]
cmp edi, eax
jb 0x140073f21
mov al, 1
mov rbx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
imul eax, dword [rbx + 8]
test eax, eax
je case.0x140073c0b.39
nop word [rax + rax]
movss xmm0, dword [rbx + rdi*4 + 0x20]
divss xmm0, dword [r8 + rdi*4]
movss dword [rbx + rdi*4 + 0x20], xmm0
inc edi
mov eax, dword [rbx + 0xc]
imul eax, dword [rbx + 8]
cmp edi, eax
jb 0x140073f70
mov al, 1
mov rbx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
mov eax, dword [rbx + 0xc]
xor edi, edi
imul eax, dword [rbx + 8]
test eax, eax
je case.0x140073c0b.39
mov eax, dword [r8 + rdi*4]
and dword [rbx + rdi*4 + 0x20], eax
inc edi
mov eax, dword [rbx + 0xc]
imul eax, dword [rbx + 8]
cmp edi, eax
jb 0x140073fb2
mov al, 1
mov rbx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
mov eax, dword [rbx + 0xc]
xor edi, edi
imul eax, dword [rbx + 8]
test eax, eax
je case.0x140073c0b.39
nop word [rax + rax]
mov eax, dword [r8 + rdi*4]
or dword [rbx + rdi*4 + 0x20], eax
inc edi
mov eax, dword [rbx + 0xc]
imul eax, dword [rbx + 8]
cmp edi, eax
jb 0x140073ff0
mov al, 1
mov rbx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
mov eax, dword [rbx + 0xc]
xor edi, edi
imul eax, dword [rbx + 8]
test eax, eax
je case.0x140073c0b.39
nop dword [rax + rax]
mov eax, dword [r8 + rdi*4]
xor dword [rbx + rdi*4 + 0x20], eax
inc edi
mov eax, dword [rbx + 0xc]
imul eax, dword [rbx + 8]
cmp edi, eax
jb 0x140074030
mov al, 1
mov rbx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
movzx ecx, byte [rbx + 4]
xor edi, edi
lea eax, [rcx - 6]
cmp al, 1
mov eax, dword [rbx + 0xc]
jbe 0x140074108
imul eax, dword [rbx + 8]
sub cl, 2
mov r8d, edi
cmp cl, 1
jbe 0x1400740c8
test eax, eax
je 0x140074143
nop dword [rax]
nop word [rax + rax]
mov edx, r8d
mov ecx, edi
mov eax, dword [rsi + rdx*4]
cmp dword [rbx + rdx*4 + 0x20], eax
setb cl
inc r8d
mov dword [rbx + rdx*4 + 0x20], ecx
mov eax, dword [rbx + 0xc]
imul eax, dword [rbx + 8]
cmp r8d, eax
jb 0x140074090
mov byte [rbx + 4], 1
mov al, 1
mov rbx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
test eax, eax
je 0x140074143
nop dword [rax]
mov edx, r8d
mov ecx, edi
mov eax, dword [rsi + rdx*4]
cmp dword [rbx + rdx*4 + 0x20], eax
setl cl
inc r8d
mov dword [rbx + rdx*4 + 0x20], ecx
mov eax, dword [rbx + 0xc]
imul eax, dword [rbx + 8]
cmp r8d, eax
jb 0x1400740d0
mov byte [rbx + 4], 1
mov al, 1
mov rbx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
imul eax, dword [rbx + 8]
mov edx, edi
test eax, eax
je 0x140074143
nop dword [rax]
nop word [rax + rax]
mov ecx, edx
mov eax, edi
movss xmm0, dword [r8 + rcx*4]
comiss xmm0, dword [rbx + rcx*4 + 0x20]
seta al
inc edx
mov dword [rbx + rcx*4 + 0x20], eax
mov eax, dword [rbx + 0xc]
imul eax, dword [rbx + 8]
cmp edx, eax
jb 0x140074120
mov byte [rbx + 4], 1
mov al, 1
mov rbx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
movzx ecx, byte [rbx + 4]
xor edi, edi
lea eax, [rcx - 6]
cmp al, 1
mov eax, dword [rbx + 0xc]
jbe 0x1400741d7
imul eax, dword [rbx + 8]
sub cl, 2
mov r8d, edi
cmp cl, 1
jbe 0x1400741a4
test eax, eax
je 0x140074143
nop dword [rax]
mov edx, r8d
mov ecx, edi
mov eax, dword [rsi + rdx*4]
cmp dword [rbx + rdx*4 + 0x20], eax
setbe cl
inc r8d
mov dword [rbx + rdx*4 + 0x20], ecx
mov eax, dword [rbx + 0xc]
imul eax, dword [rbx + 8]
cmp r8d, eax
jb 0x140074180
jmp 0x140074143
test eax, eax
je 0x140074143
nop dword [rax + rax]
mov edx, r8d
mov ecx, edi
mov eax, dword [rsi + rdx*4]
cmp dword [rbx + rdx*4 + 0x20], eax
setle cl
inc r8d
mov dword [rbx + rdx*4 + 0x20], ecx
mov eax, dword [rbx + 0xc]
imul eax, dword [rbx + 8]
cmp r8d, eax
jb 0x1400741b0
jmp 0x140074143
imul eax, dword [rbx + 8]
mov edx, edi
test eax, eax
je 0x140074143
nop word [rax + rax]
mov ecx, edx
mov eax, edi
movss xmm0, dword [r8 + rcx*4]
comiss xmm0, dword [rbx + rcx*4 + 0x20]
setae al
inc edx
mov dword [rbx + rcx*4 + 0x20], eax
mov eax, dword [rbx + 0xc]
imul eax, dword [rbx + 8]
cmp edx, eax
jb 0x1400741f0
mov byte [rbx + 4], 1
mov al, 1
mov rbx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
movzx ecx, byte [rbx + 4]
xor edi, edi
lea eax, [rcx - 6]
cmp al, 1
mov eax, dword [rbx + 0xc]
jbe 0x1400742a7
imul eax, dword [rbx + 8]
sub cl, 2
mov r8d, edi
cmp cl, 1
jbe 0x140074277
test eax, eax
je 0x140074143
mov edx, r8d
mov ecx, edi
mov eax, dword [rsi + rdx*4]
cmp dword [rbx + rdx*4 + 0x20], eax
seta cl
inc r8d
mov dword [rbx + rdx*4 + 0x20], ecx
mov eax, dword [rbx + 0xc]
imul eax, dword [rbx + 8]
cmp r8d, eax
jb 0x140074250
jmp 0x140074143
test eax, eax
je 0x140074143
nop
mov edx, r8d
mov ecx, edi
mov eax, dword [rsi + rdx*4]
cmp dword [rbx + rdx*4 + 0x20], eax
setg cl
inc r8d
mov dword [rbx + rdx*4 + 0x20], ecx
mov eax, dword [rbx + 0xc]
imul eax, dword [rbx + 8]
cmp r8d, eax
jb 0x140074280
jmp 0x140074143
imul eax, dword [rbx + 8]
mov edx, edi
test eax, eax
je 0x140074143
nop word [rax + rax]
mov ecx, edx
mov eax, edi
movss xmm0, dword [rbx + rcx*4 + 0x20]
comiss xmm0, dword [r8 + rcx*4]
seta al
inc edx
mov dword [rbx + rcx*4 + 0x20], eax
mov eax, dword [rbx + 0xc]
imul eax, dword [rbx + 8]
cmp edx, eax
jb 0x1400742c0
mov byte [rbx + 4], 1
mov al, 1
mov rbx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
movzx ecx, byte [rbx + 4]
xor edi, edi
lea eax, [rcx - 6]
cmp al, 1
mov eax, dword [rbx + 0xc]
jbe 0x140074377
imul eax, dword [rbx + 8]
sub cl, 2
mov r8d, edi
cmp cl, 1
jbe 0x140074347
test eax, eax
je 0x140074143
mov edx, r8d
mov ecx, edi
mov eax, dword [rsi + rdx*4]
cmp dword [rbx + rdx*4 + 0x20], eax
setae cl
inc r8d
mov dword [rbx + rdx*4 + 0x20], ecx
mov eax, dword [rbx + 0xc]
imul eax, dword [rbx + 8]
cmp r8d, eax
jb 0x140074320
jmp 0x140074143
test eax, eax
je 0x140074143
nop
mov edx, r8d
mov ecx, edi
mov eax, dword [rsi + rdx*4]
cmp dword [rbx + rdx*4 + 0x20], eax
setge cl
inc r8d
mov dword [rbx + rdx*4 + 0x20], ecx
mov eax, dword [rbx + 0xc]
imul eax, dword [rbx + 8]
cmp r8d, eax
jb 0x140074350
jmp 0x140074143
imul eax, dword [rbx + 8]
mov edx, edi
test eax, eax
je 0x140074143
nop word [rax + rax]
mov ecx, edx
mov eax, edi
movss xmm0, dword [rbx + rcx*4 + 0x20]
comiss xmm0, dword [r8 + rcx*4]
setae al
inc edx
mov dword [rbx + rcx*4 + 0x20], eax
mov eax, dword [rbx + 0xc]
imul eax, dword [rbx + 8]
cmp edx, eax
jb 0x140074390
mov byte [rbx + 4], 1
mov al, 1
mov rbx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
movzx eax, byte [rbx + 4]
xor edi, edi
sub al, 6
cmp al, 1
mov eax, dword [rbx + 0xc]
jbe 0x140074417
imul eax, dword [rbx + 8]
mov r8d, edi
test eax, eax
je 0x140074143
nop word [rax + rax]
mov edx, r8d
mov ecx, edi
mov eax, dword [rsi + rdx*4]
cmp dword [rbx + rdx*4 + 0x20], eax
sete cl
inc r8d
mov dword [rbx + rdx*4 + 0x20], ecx
mov eax, dword [rbx + 0xc]
imul eax, dword [rbx + 8]
cmp r8d, eax
jb 0x1400743f0
jmp 0x140074143
imul eax, dword [rbx + 8]
mov ecx, edi
test eax, eax
je 0x140074143
nop word [rax + rax]
mov eax, ecx
movss xmm0, dword [rbx + rax*4 + 0x20]
ucomiss xmm0, dword [r8 + rax*4]
jp 0x140074446
mov edx, 1
je 0x140074448
mov edx, edi
mov dword [rbx + rax*4 + 0x20], edx
inc ecx
mov eax, dword [rbx + 0xc]
imul eax, dword [rbx + 8]
cmp ecx, eax
jb 0x140074430
mov byte [rbx + 4], 1
mov al, 1
mov rbx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
movzx eax, byte [rbx + 4]
xor edi, edi
sub al, 6
cmp al, 1
mov eax, dword [rbx + 0xc]
jbe 0x1400744b7
imul eax, dword [rbx + 8]
mov r8d, edi
test eax, eax
je 0x140074143
nop dword [rax]
mov edx, r8d
mov ecx, edi
mov eax, dword [rsi + rdx*4]
cmp dword [rbx + rdx*4 + 0x20], eax
setne cl
inc r8d
mov dword [rbx + rdx*4 + 0x20], ecx
mov eax, dword [rbx + 0xc]
imul eax, dword [rbx + 8]
cmp r8d, eax
jb 0x140074490
jmp 0x140074143
imul eax, dword [rbx + 8]
mov ecx, edi
test eax, eax
je 0x140074143
nop word [rax + rax]
mov eax, ecx
movss xmm0, dword [rbx + rax*4 + 0x20]
ucomiss xmm0, dword [r8 + rax*4]
jp 0x1400744e3
mov edx, edi
je 0x1400744e8
mov edx, 1
mov dword [rbx + rax*4 + 0x20], edx
inc ecx
mov eax, dword [rbx + 0xc]
imul eax, dword [rbx + 8]
cmp ecx, eax
jb 0x1400744d0
mov byte [rbx + 4], 1
mov al, 1
mov rbx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
mov eax, dword [rbx + 0xc]
xor edi, edi
imul eax, dword [rbx + 8]
test eax, eax
je case.0x140073c0b.39
mov ecx, dword [r8 + rdi*4]
shl dword [rbx + rdi*4 + 0x20], cl
inc edi
mov eax, dword [rbx + 0xc]
imul eax, dword [rbx + 8]
cmp edi, eax
jb 0x140074520
mov al, 1
mov rbx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
movzx eax, byte [rbx + 4]
xor edi, edi
sub al, 2
test al, 0xfa
mov eax, dword [rbx + 0xc]
je 0x140074587
imul eax, dword [rbx + 8]
test eax, eax
je case.0x140073c0b.39
nop
mov ecx, dword [r8 + rdi*4]
shr dword [rbx + rdi*4 + 0x20], cl
inc edi
mov eax, dword [rbx + 0xc]
imul eax, dword [rbx + 8]
cmp edi, eax
jb 0x140074560
mov al, 1
mov rbx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
imul eax, dword [rbx + 8]
test eax, eax
je case.0x140073c0b.39
nop
mov ecx, dword [r8 + rdi*4]
sar dword [rbx + rdi*4 + 0x20], cl
inc edi
mov eax, dword [rbx + 0xc]
imul eax, dword [rbx + 8]
cmp edi, eax
jb 0x140074590
mov al, 1
mov rbx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
mov rbx, qword [rsp + 0x48]
xor al, al
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret