Function at 0x140060160
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xf]
sub rsp, 0xc8
mov rax, qword [0x140113040]
xor rax, rsp
mov qword [rbp - 9], rax
movzx r12d, r9b
mov byte [rbp - 0x69], r12b
movzx r13d, r8b
mov byte [rbp - 0x68], r8b
mov rsi, rdx
mov rdi, rcx
cmp dword [rcx + 0xc], 1
jl 0x1400601b1
mov rcx, qword [rcx]
mov eax, dword [rdx + 0xc]
inc eax
mov dword [rcx + 0x1b8], eax
xor r14d, r14d
cmp dword [rdi + 8], 2
jl 0x1400602da
cmp byte [rdx + 0x38], r14b
jne 0x1400602da
mov rdx, qword [rdx + 0x20]
mov rcx, rdi
call fcn.14005ddc0
mov rbx, rax
test rax, rax
je 0x1400602da
cmp qword [rdi + 0x50], r14
je 0x140060235
mov r10, qword [rdi + 0x58]
cmp rax, r10
je 0x140060235
mov r9, qword [rdi + 0x48]
dec r9
shr rax, 5
xor rax, rbx
shr rax, 4
and rax, r9
mov edx, r14d
mov r11, qword [rdi + 0x40]
nop dword [rax + rax]
imul rcx, rax, 0x38
add rcx, r11
mov r8, qword [rcx]
cmp r8, rbx
je 0x140060238
cmp r8, r10
je 0x140060235
inc rax
add rax, rdx
and rax, r9
inc rdx
cmp rdx, r9
jbe 0x140060210
mov rcx, r14
lea r15, [rcx + 8]
test rcx, rcx
cmove r15, r14
test r15, r15
je 0x140060299
cmp byte [r15 + 0x2c], r14b
je 0x140060299
mov eax, dword [0x140113188]
mov ecx, dword [0x1401131a0]
mov edx, dword [0x140113170]
mov dword [rsp + 0x40], eax
mov dword [rsp + 0x38], ecx
mov dword [rsp + 0x30], edx
movzx eax, byte [rbp + 0x7f]
mov byte [rsp + 0x28], al
mov byte [rsp + 0x20], r12b
movzx r9d, r13b
mov r8, rbx
mov rdx, rsi
mov rcx, rdi
call fcn.14005f340
test al, al
jne 0x140060c19
cmp byte [r15 + 0x2c], r14b
jne 0x1400602da
cmp byte [rbx + 0x88], r14b
je 0x1400602ab
lea rdx, str.inlining_failed:_function_is_variadic
jmp 0x1400602d2
test r15, r15
jne 0x1400602b9
lea rdx, str.inlining_failed:_cant_inline_recursive_calls
jmp 0x1400602d2
cmp byte [rdi + 0x421], r14b
jne 0x1400602cb
cmp byte [rdi + 0x422], r14b
je 0x1400602da
lea rdx, str.inlining_failed:_module_uses_getfenv_setfenv
mov rcx, qword [rdi]
call fcn.140058120
mov qword [rbp - 0x29], rdi
mov r9d, dword [rdi + 0x40c]
mov dword [rbp - 0x5d], r9d
mov dword [rbp - 0x21], r9d
mov edx, r12d
movzx ecx, byte [rsi + 0x38]
mov r8d, dword [rsi + 0x30]
inc r8d
add r8d, ecx
cmp r8d, r12d
cmovb r8d, r12d
cmp byte [rbp + 0x77], 0
je 0x1400603e1
sub r8d, edx
lea ecx, [r9 + r8]
cmp ecx, 0xff
ja 0x140060c65
movzx edx, r9b
sub dl, r12b
mov dword [rbp - 0x65], edx
mov dword [rdi + 0x40c], ecx
mov eax, dword [rdi + 0x410]
cmp eax, ecx
cmovb eax, ecx
mov dword [rdi + 0x410], eax
mov byte [rbp - 0x59], 0
mov r15, 0xffffffffffffffff
mov r13d, r15d
cmp dword [rdi + 8], 1
jl 0x1400606c3
cmp byte [rsi + 0x38], 0
jne 0x1400606c3
cmp qword [rdi + 0x168], 0
je 0x1400606c3
mov r10, qword [rdi + 0x170]
cmp rsi, r10
je 0x1400606c3
mov r9, qword [rdi + 0x160]
dec r9
mov rax, rsi
shr rax, 5
xor rax, rsi
shr rax, 4
and rax, r9
mov rdx, r14
mov r11, qword [rdi + 0x158]
nop dword [rax + rax]
mov rcx, rax
shl rcx, 4
add rcx, r11
mov r8, qword [rcx]
cmp r8, rsi
je 0x1400603fa
cmp r8, r10
je 0x1400606c3
inc rax
add rax, rdx
and rax, r9
inc rdx
cmp rdx, r9
jbe 0x1400603b0
jmp 0x1400606c3
mov dword [rbp - 0x65], r9d
lea ecx, [r9 + r8]
cmp ecx, 0xff
ja 0x140060c4e
jmp 0x14006032c
lea r12, [rcx + 8]
test rcx, rcx
cmove r12, r14
test r12, r12
je 0x1400606c3
mov r12d, dword [r12]
mov ebx, r12d
test r12d, r12d
js 0x1400604f0
mov rax, qword [rdi]
mov ecx, dword [rax + 0x2e0]
shr ecx, 4
test cl, 1
je 0x1400604f0
lea r9, [rdi + 0xb8]
lea r8, [rdi + 0x90]
mov rdx, qword [rsi + 0x20]
lea rcx, [rbp - 0x49]
call fcn.140055060
movups xmm1, xmmword [rax]
mov rax, qword [rsi + 0x30]
test rax, rax
je 0x140060473
mov rdx, qword [rsi + 0x28]
mov rdx, qword [rdx + rax*8 - 8]
mov rcx, rdi
call fcn.14005e820
test al, al
je 0x140060473
mov cl, 1
jmp 0x140060475
xor cl, cl
movq r8, xmm1
psrldq xmm1, 8
test r8, r8
je 0x1400604ba
lea rdx, [0x1400f47b8]
lea rax, [0x1400e453f]
test cl, cl
cmovne rax, rdx
mov qword [rsp + 0x28], rax
mov eax, dword [rsi + 0x30]
mov dword [rsp + 0x20], eax
movq r9, xmm1
lea rdx, str.builtin__s._s__d_s
mov rcx, qword [rdi]
call fcn.140058120
jmp 0x1400604f0
movq r8, xmm1
test r8, r8
je 0x1400604f0
lea rdx, [0x1400f47b8]
lea rax, [0x1400e453f]
test cl, cl
cmovne rax, rdx
mov qword [rsp + 0x20], rax
mov r9d, dword [rsi + 0x30]
lea rdx, str.builtin__s__d_s
mov rcx, qword [rdi]
call fcn.140058120
cmp ebx, 0x39
jne 0x140060535
cmp byte [rbp + 0x7f], 0
jne 0x1400606c3
cmp byte [rbp - 0x69], 1
jne 0x1400606c3
mov eax, dword [rbp - 0x65]
mov byte [rsp + 0x30], al
mov byte [rsp + 0x28], 0
movzx eax, byte [rbp + 0x77]
mov byte [rsp + 0x20], al
mov r9b, 1
movzx r8d, byte [rbp - 0x68]
mov rdx, rsi
mov rcx, rdi
call fcn.14005eb40
jmp 0x140060c10
mov r13d, ebx
cmp ebx, 0x22
jne 0x1400606c3
cmp qword [rsi + 0x30], 3
jne 0x1400606c3
mov r13, qword [rsi + 0x28]
mov rax, qword [r13 + 8]
mov qword [rbp - 0x19], rax
lea rdx, [rbp - 0x19]
lea rcx, [rdi + 0xe0]
call fcn.14006c3b0
test rax, rax
je 0x1400606c0
cmp dword [rax], 0
je 0x1400606c0
mov rax, qword [r13 + 0x10]
mov qword [rbp - 0x19], rax
lea rdx, [rbp - 0x19]
lea rcx, [rdi + 0xe0]
call fcn.14006c3b0
test rax, rax
je 0x1400606c0
cmp dword [rax], 0
je 0x1400606c0
mov rax, qword [r13 + 8]
mov qword [rbp - 0x19], rax
lea rdx, [rbp - 0x19]
lea rcx, [rdi + 0xe0]
call fcn.14006c3b0
test rax, rax
je 0x1400605cb
movups xmm2, xmmword [rax]
movsd xmm0, qword [rax + 0x10]
jmp 0x1400605df
mov qword [rbp - 0x49], r14
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x41], xmm0
movups xmm2, xmmword [rbp - 0x49]
unpckhpd xmm0, xmm0
movsd qword [rbp - 0x39], xmm0
mov rax, qword [r13 + 0x10]
mov qword [rbp - 0x19], rax
lea rcx, [rdi + 0xe0]
lea rdx, [rbp - 0x19]
call fcn.14006c3b0
test rax, rax
je 0x14006060b
movups xmm1, xmmword [rax]
movsd xmm0, qword [rax + 0x10]
jmp 0x14006061f
mov qword [rbp - 0x49], r14
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x41], xmm0
movups xmm1, xmmword [rbp - 0x49]
unpckhpd xmm0, xmm0
movsd qword [rbp - 0x39], xmm0
movd eax, xmm2
cmp eax, 3
jne 0x140060637
unpckhpd xmm2, xmm2
cvttsd2si edx, xmm2
jmp 0x14006063a
mov edx, r15d
movd eax, xmm1
cmp eax, 3
jne 0x14006064d
unpckhpd xmm1, xmm1
cvttsd2si ecx, xmm1
jmp 0x140060650
mov ecx, r15d
mov r13d, ebx
test edx, edx
js 0x1400606c3
test ecx, ecx
jle 0x1400606c3
lea eax, [rcx + rdx]
cmp eax, 0x20
jg 0x1400606c3
shl ecx, 5
sub ecx, 0x20
or ecx, edx
movd xmm1, ecx
cvtdq2pd xmm1, xmm1
mov rcx, qword [rdi]
call fcn.140057770
test eax, eax
js 0x140060c7c
mov dword [rsp + 0x40], eax
mov dword [rsp + 0x38], 0x3b
mov eax, dword [rbp - 0x65]
mov byte [rsp + 0x30], al
movzx eax, byte [rbp + 0x7f]
mov byte [rsp + 0x28], al
movzx eax, byte [rbp + 0x77]
mov byte [rsp + 0x20], al
movzx r9d, byte [rbp - 0x69]
movzx r8d, byte [rbp - 0x68]
mov rdx, rsi
mov rcx, rdi
call fcn.14005ee80
jmp 0x140060c10
mov r13d, ebx
mov ecx, 2
movzx edx, byte [0x1401131d0]
test dl, dl
je 0x140060729
test r13d, r13d
js 0x140060797
cmp qword [rsi + 0x30], 3
jne 0x14006072e
mov rbx, r14
mov r12, qword [rsi + 0x28]
nop word [rax + rax]
mov rdx, qword [r12]
mov rcx, rdi
call fcn.140065fa0
test eax, eax
jns 0x14006071b
inc rbx
add r12, 8
cmp rbx, 3
jb 0x1400606f0
mov ecx, 2
movzx edx, byte [0x1401131d0]
jmp 0x14006072e
mov ecx, 3
movzx edx, byte [0x1401131d0]
jmp 0x14006072e
test r13d, r13d
js 0x140060797
mov r8, qword [rsi + 0x30]
cmp r8, 1
jb 0x140060797
mov eax, 2
test dl, dl
cmovne rax, rcx
cmp r8, rax
ja 0x140060797
mov rdx, qword [rsi + 0x28]
mov rdx, qword [rdx + r8*8 - 8]
mov rcx, rdi
call fcn.14005e820
test al, al
jne 0x14006076c
mov dword [rsp + 0x40], r15d
mov dword [rsp + 0x38], r13d
jmp 0x14006068f
cmp dword [rdi + 8], 2
jl 0x140060797
mov edx, r13d
lea rcx, [rbp - 0x49]
call fcn.140056570
movsd xmm0, qword [rax]
movsd qword [rbp - 0x19], xmm0
mov ecx, dword [rax + 8]
mov eax, dword [rbp - 0x19]
cmp dword [rsi + 0x30], eax
jne 0x140060797
test cl, 1
jne 0x14006075d
cmp byte [rsi + 0x38], 0
je 0x1400607f7
mov rcx, qword [rsi + 0x20]
mov rdx, r14
mov eax, dword [0x140215368]
cmp dword [rcx + 8], eax
cmove rdx, rcx
mov r12, qword [rdx + 0x20]
mov rdx, r12
mov rcx, rdi
call fcn.140065fa0
mov dword [rbp - 0x59], eax
test eax, eax
jns 0x14006082e
mov ecx, dword [rbp - 0x65]
mov byte [rbp - 0x59], cl
mov qword [rbp - 0x49], rdi
mov ebx, dword [rdi + 0x40c]
mov dword [rbp - 0x41], ebx
movzx eax, cl
inc eax
mov dword [rdi + 0x40c], eax
movzx r8d, cl
mov rdx, r12
mov rcx, rdi
call fcn.140065370
nop
jmp 0x140060828
test r13d, r13d
jns 0x14006082e
mov rdx, qword [rsi + 0x20]
mov qword [rbp - 0x49], rdi
mov ebx, dword [rdi + 0x40c]
mov dword [rbp - 0x41], ebx
mov ecx, dword [rbp - 0x65]
movzx eax, cl
inc eax
mov dword [rdi + 0x40c], eax
movzx r8d, cl
mov rcx, rdi
call fcn.140065370
nop
mov dword [rdi + 0x40c], ebx
mov byte [rbp - 0x61], 0
mov rax, r14
mov rcx, qword [rsi + 0x30]
test rcx, rcx
je 0x1400608b7
mov r15d, dword [rbp - 0x65]
nop dword [rax]
nop word [rax + rax]
lea r12, [rax + 1]
movzx r8d, al
add r8b, byte [rsi + 0x38]
mov rdx, qword [rsi + 0x28]
inc r8b
mov rdx, qword [rdx + rax*8]
add r8b, r15b
cmp r12, rcx
jne 0x14006087c
mov rcx, rdi
call fcn.14005e9e0
mov byte [rbp - 0x61], al
jmp 0x1400608a4
mov qword [rbp - 0x49], rdi
mov ebx, dword [rdi + 0x40c]
mov dword [rbp - 0x41], ebx
movzx eax, r8b
inc eax
mov dword [rdi + 0x40c], eax
mov rcx, rdi
call fcn.140065370
nop
mov dword [rdi + 0x40c], ebx
mov rax, r12
mov rcx, qword [rsi + 0x30]
cmp r12, rcx
jb 0x140060850
mov r15, 0xffffffffffffffff
mov rax, qword [rsi + 0x20]
cmp dword [rdi + 0xc], 1
jl 0x1400608cf
mov rcx, qword [rdi]
mov eax, dword [rax + 0x14]
inc eax
mov dword [rcx + 0x1b8], eax
cmp byte [rsi + 0x38], 0
je 0x140060a4e
mov rcx, qword [rsi + 0x20]
mov r12, r14
mov eax, dword [0x140215368]
cmp dword [rcx + 8], eax
cmove r12, rcx
cmp dword [rdi + 0xc], 1
jl 0x140060903
mov rcx, qword [rdi]
mov eax, dword [r12 + 0x30]
inc eax
mov dword [rcx + 0x1b8], eax
mov rbx, qword [r12 + 0x28]
nop dword [rax + rax]
inc r15
cmp byte [rbx + r15], 0
jne 0x140060910
mov qword [rbp - 0x49], rbx
mov qword [rbp - 0x41], r15
lea rdx, [rbp - 0x49]
mov rcx, qword [rdi]
call fcn.140057a50
mov dword [rbp - 0x19], eax
test eax, eax
js 0x140060c8d
mov r13, qword [rdi]
mov rdx, r15
test r15, r15
je 0x140060971
lea r8, [rbx - 1]
add r8, rdx
nop dword [rax + rax]
mov ecx, r15d
shl ecx, 5
mov eax, r15d
shr eax, 2
add ecx, eax
movzx eax, byte [r8]
add ecx, eax
xor r15d, ecx
lea r8, [r8 - 1]
sub rdx, 1
jne 0x140060950
movzx ecx, r15b
shl ecx, 8
movzx eax, byte [rbp - 0x59]
or ecx, eax
shl ecx, 8
mov r15d, dword [rbp - 0x65]
movzx eax, r15b
or ecx, eax
shl ecx, 8
or ecx, 0x14
mov dword [rbp - 0x65], ecx
mov rdx, qword [r13 + 0x30]
cmp rdx, qword [r13 + 0x38]
je 0x1400609a7
mov dword [rdx], ecx
add qword [r13 + 0x30], 4
jmp 0x1400609b4
lea r8, [rbp - 0x65]
lea rcx, [r13 + 0x28]
call fcn.14005c900
lea rcx, [r13 + 0x40]
lea r8, [r13 + 0x1b8]
mov rdx, qword [r13 + 0x48]
cmp rdx, qword [r13 + 0x50]
je 0x1400609d5
mov eax, dword [r8]
mov dword [rdx], eax
add qword [r13 + 0x48], 4
jmp 0x1400609da
call fcn.14005c900
mov rbx, qword [rdi]
mov eax, dword [rbp - 0x19]
mov dword [rbp - 0x19], eax
lea rcx, [rbx + 0x28]
mov rdx, qword [rbx + 0x30]
cmp rdx, qword [rbx + 0x38]
je 0x1400609fa
mov dword [rdx], eax
add qword [rbx + 0x30], 4
jmp 0x140060a03
lea r8, [rbp - 0x19]
call fcn.14005c900
lea rcx, [rbx + 0x40]
lea r8, [rbx + 0x1b8]
mov rdx, qword [rbx + 0x48]
cmp rdx, qword [rbx + 0x50]
je 0x140060a24
mov eax, dword [r8]
mov dword [rdx], eax
add qword [rbx + 0x48], 4
jmp 0x140060a29
call fcn.14005c900
movzx r8d, byte [rbp - 0x59]
mov dword [rsp + 0x20], 2
mov r9d, 4
mov rdx, qword [r12 + 0x20]
mov rcx, rdi
call fcn.14006a040
jmp 0x140060af8
test r13d, r13d
js 0x140060af4
mov rbx, qword [rdi]
lea rcx, [rbx + 0x28]
mov rdx, qword [rcx + 8]
mov r15, rdx
sub r15, qword [rcx]
sar r15, 2
movzx eax, r13b
shl eax, 8
or eax, 0x44
mov dword [rbp - 0x19], eax
cmp rdx, qword [rcx + 0x10]
je 0x140060a88
mov dword [rdx], eax
add qword [rcx + 8], 4
jmp 0x140060a91
lea r8, [rbp - 0x19]
call fcn.14005c900
lea rcx, [rbx + 0x40]
lea r8, [rbx + 0x1b8]
mov rdx, qword [rbx + 0x48]
cmp rdx, qword [rbx + 0x50]
je 0x140060ab2
mov eax, dword [r8]
mov dword [rdx], eax
add qword [rbx + 0x48], 4
jmp 0x140060ab7
call fcn.14005c900
mov r9b, 1
movzx r8d, byte [rbp - 0x65]
mov rdx, qword [rsi + 0x20]
mov rcx, rdi
call fcn.140064db0
mov rax, qword [rdi]
mov rdx, qword [rax + 0x28]
mov rcx, qword [rax + 0x30]
sub rcx, rdx
sar rcx, 2
sub ecx, r15d
dec ecx
movzx eax, cl
cmp eax, ecx
jne 0x140060c39
shl ecx, 0x18
or dword [rdx + r15*4], ecx
mov r15d, dword [rbp - 0x65]
mov rbx, qword [rdi]
movzx r12d, byte [rbp - 0x69]
cmp byte [rbp + 0x7f], 0
je 0x140060b0a
xor cl, cl
jmp 0x140060b0f
lea ecx, [r12 + 1]
cmp byte [rbp - 0x61], 0
je 0x140060b19
xor al, al
jmp 0x140060b22
movzx eax, byte [rsi + 0x38]
inc al
add al, byte [rsi + 0x30]
movzx ecx, cl
shl ecx, 8
movzx eax, al
or ecx, eax
shl ecx, 8
movzx eax, r15b
or ecx, eax
shl ecx, 8
or ecx, 0x15
mov dword [rbp - 0x19], ecx
mov rdx, qword [rbx + 0x30]
cmp rdx, qword [rbx + 0x38]
je 0x140060b52
mov dword [rdx], ecx
add qword [rbx + 0x30], 4
jmp 0x140060b5f
lea r8, [rbp - 0x19]
lea rcx, [rbx + 0x28]
call fcn.14005c900
lea rcx, [rbx + 0x40]
lea r8, [rbx + 0x1b8]
mov rdx, qword [rbx + 0x48]
cmp rdx, qword [rbx + 0x50]
je 0x140060b80
mov eax, dword [r8]
mov dword [rdx], eax
add qword [rbx + 0x48], 4
jmp 0x140060b85
call fcn.14005c900
cmp byte [rbp + 0x77], 0
jne 0x140060c10
movzx esi, r12b
test r12b, r12b
je 0x140060c10
movzx r12d, byte [rbp - 0x68]
nop dword [rax]
mov rbx, qword [rdi]
lea eax, [r15 + r14]
movzx edx, al
shl edx, 8
lea eax, [r14 + r12]
movzx ecx, al
or edx, ecx
shl edx, 8
or edx, 6
mov dword [rbp - 0x19], edx
lea rcx, [rbx + 0x28]
mov rax, qword [rbx + 0x30]
cmp rax, qword [rbx + 0x38]
je 0x140060bd6
mov dword [rax], edx
add qword [rbx + 0x30], 4
jmp 0x140060be2
lea r8, [rbp - 0x19]
mov rdx, rax
call fcn.14005c900
lea rcx, [rbx + 0x40]
lea r8, [rbx + 0x1b8]
mov rdx, qword [rbx + 0x48]
cmp rdx, qword [rbx + 0x50]
je 0x140060c03
mov eax, dword [r8]
mov dword [rdx], eax
add qword [rbx + 0x48], 4
jmp 0x140060c08
call fcn.14005c900
inc r14
cmp r14, rsi
jb 0x140060ba0
mov eax, dword [rbp - 0x5d]
mov dword [rdi + 0x40c], eax
mov rcx, qword [rbp - 9]
xor rcx, rsp
call fcn.1400dde30
add rsp, 0xc8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov rcx, qword [rsi + 0x20]
add rcx, 0xc
lea rdx, str.Exceeded_jump_distance_limit__simplify_the_code_to_compile
call fcn.14005d740
int3
lea rcx, [rsi + 0xc]
mov r9d, 0xff
lea rdx, str.Out_of_registers_when_trying_to_allocate__d_registers:_exceeded_limit__d
call fcn.14005d740
int3
lea rcx, [rsi + 0xc]
mov r9d, 0xff
lea rdx, str.Out_of_registers_when_trying_to_allocate__d_registers:_exceeded_limit__d
call fcn.14005d740
int3
lea rcx, [rsi + 0xc]
lea rdx, str.Exceeded_constant_limit__simplify_the_code_to_compile
call fcn.14005d740
int3
lea rcx, [r12 + 0xc]
lea rdx, str.Exceeded_constant_limit__simplify_the_code_to_compile
call fcn.14005d740
int3