Function at 0x18005ff10
Capabilities:
Encode data using xor

Disassembly:
mov dword [rsp + 0x10], edx
push rbp
push rsi
push r14
push r15
lea rbp, [rsp - 0x3f]
sub rsp, 0xd8
mov r14d, edx
mov esi, edx
and r14d, 0x1800000
mov r15, rcx
and esi, 0x700000
je 0x18005ff46
test r14d, r14d
jne 0x180060727
mov rax, qword [0x180006160]
mov qword [rsp + 0xd0], rdi
xor edi, edi
cmp byte [0x180006167], dil
mov qword [rsp + 0xc8], r12
movabs r12, 0x29e4129e4129e413
mov qword [rbp + 0x77], rax
je 0x18005ffb2
mov r8d, edi
nop dword [rax]
mov rax, r12
mul r8
mov rax, r8
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 5
movsx eax, al
imul ecx, eax, 0x37
movzx eax, r8b
sub al, cl
add al, 0x31
xor byte [rbp + r8 + 0x77], al
inc r8
cmp r8, 8
jb 0x18005ff80
xor edx, edx
lea rcx, [rbp + 0x77]
call fcn.180044670
test al, al
je 0x180060717
mov rax, qword [0x180147368]
mov qword [rsp + 0x100], rbx
movaps xmmword [rsp + 0xb0], xmm6
mov qword [rbp + 0x7f], rax
mov ebx, dword [rax + 0x2f24]
test esi, esi
jne 0x180060141
cmp byte [0x18000616b], dil
mov eax, dword [0x180006168]
mov dword [rbp + 0x77], eax
je 0x180060042
mov r8, rdi
nop dword [rax]
nop word [rax + rax]
mov rax, r12
mul r8
mov rax, r8
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 5
movsx eax, al
imul ecx, eax, 0x37
movzx eax, r8b
sub al, cl
add al, 0x31
xor byte [rbp + r8 + 0x77], al
inc r8
cmp r8, 4
jb 0x180060010
mov edx, ebx
lea rcx, [rbp + 0x77]
shr edx, 0x14
and dl, 1
call fcn.180067840
test al, al
je 0x180060061
and ebx, 0xff9fffff
bts ebx, 0x14
cmp byte [0x18000616f], dil
mov eax, dword [0x18000616c]
mov dword [rbp + 0x77], eax
je 0x1800600b2
mov r8, rdi
nop word [rax + rax]
mov rax, r12
mul r8
mov rax, r8
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 5
movsx eax, al
imul ecx, eax, 0x37
movzx eax, r8b
sub al, cl
add al, 0x31
xor byte [rbp + r8 + 0x77], al
inc r8
cmp r8, 4
jb 0x180060080
mov edx, ebx
lea rcx, [rbp + 0x77]
shr edx, 0x15
and dl, 1
call fcn.180067840
test al, al
je 0x1800600d1
and ebx, 0xffafffff
bts ebx, 0x15
cmp byte [0x180006173], dil
mov eax, dword [0x180006170]
mov dword [rbp + 0x77], eax
je 0x180060122
mov r8, rdi
nop word [rax + rax]
mov rax, r12
mul r8
mov rax, r8
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 5
movsx eax, al
imul ecx, eax, 0x37
movzx eax, r8b
sub al, cl
add al, 0x31
xor byte [rbp + r8 + 0x77], al
inc r8
cmp r8, 4
jb 0x1800600f0
mov edx, ebx
lea rcx, [rbp + 0x77]
shr edx, 0x16
and dl, 1
call fcn.180067840
test al, al
je 0x180060141
and ebx, 0xffcfffff
bts ebx, 0x16
test r14d, r14d
jne 0x180060235
test esi, esi
jne 0x180060177
mov rax, qword [0x180147368]
mov rcx, qword [rax + 0x1a80]
cmp byte [rcx + 0x83], dil
jne 0x180060177
mov eax, dword [rcx + 0x1a8]
neg eax
sbb ecx, ecx
add ecx, 6
call fcn.180068ea0
mov eax, dword [0x180006174]
lea rcx, [rbp + 0x77]
mov dword [rbp + 0x77], eax
mov edx, ebx
movzx eax, word [0x180006178]
xor byte [rbp + 0x78], 0x32
xor byte [rbp + 0x79], 0x33
xor byte [rbp + 0x7a], 0x34
mov word [rbp + 0x7b], ax
movzx eax, byte [0x18000617a]
xor byte [rbp + 0x7b], 0x35
xor al, 0x37
xor byte [rbp + 0x7c], 0x36
shr edx, 0x17
and dl, 1
mov byte [rbp + 0x7d], al
mov byte [rbp + 0x77], 0x30
call fcn.180067840
test al, al
je 0x1800601cc
btr ebx, 0x18
bts ebx, 0x17
movzx eax, word [0x180006188]
lea rcx, [rbp - 0x59]
movsd xmm0, qword [0x180006180]
mov edx, ebx
movsd qword [rbp - 0x59], xmm0
xor byte [rbp - 0x58], 0x32
xor byte [rbp - 0x57], 0x33
xor byte [rbp - 0x56], 0x34
xor byte [rbp - 0x55], 0x35
xor byte [rbp - 0x54], 0x36
xor byte [rbp - 0x53], 0x37
xor byte [rbp - 0x52], 0x38
mov word [rbp - 0x51], ax
movzx eax, byte [0x18000618a]
xor byte [rbp - 0x51], 0x39
xor al, 0x3b
xor byte [rbp - 0x50], 0x3a
shr edx, 0x18
and dl, 1
mov byte [rbp - 0x4f], al
mov byte [rbp - 0x59], 0x30
call fcn.180067840
test al, al
je 0x180060235
btr ebx, 0x17
bts ebx, 0x18
test esi, esi
je 0x18006023e
test r14d, r14d
jne 0x180060267
mov rax, qword [0x180147368]
mov rcx, qword [rax + 0x1a80]
cmp byte [rcx + 0x83], dil
jne 0x180060267
mov eax, dword [rcx + 0x1a8]
neg eax
sbb ecx, ecx
add ecx, 6
call fcn.180068ea0
cmp byte [0x180006199], dil
xorps xmm6, xmm6
movss xmm0, dword [0x180004ce4]
movzx eax, word [0x180006198]
movss dword [rbp + 0x77], xmm0
movsd xmm0, qword [0x180006190]
movsd qword [rbp - 0x59], xmm0
mov dword [rbp + 0x7b], edi
mov word [rbp - 0x51], ax
je 0x1800602d2
mov r8, rdi
nop
mov rax, r12
mul r8
mov rax, r8
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 5
movsx eax, al
imul ecx, eax, 0x37
movzx eax, r8b
sub al, cl
add al, 0x31
xor byte [rbp + r8 - 0x59], al
inc r8
cmp r8, 0xa
jb 0x1800602a0
xor r8d, r8d
lea rdx, [rbp + 0x77]
lea rcx, [rbp - 0x59]
call fcn.18005cd40
test al, al
je 0x180060314
mov eax, dword [0x18000619c]
lea rcx, [rbp + 0x77]
mov dword [rbp + 0x77], eax
movzx eax, byte [0x1800061a0]
xor byte [rbp + 0x78], 0x32
xor al, 0x35
xor byte [rbp + 0x79], 0x33
xor byte [rbp + 0x7a], 0x34
mov byte [rbp + 0x7b], al
mov byte [rbp + 0x77], 0x43
call fcn.18004ed50
mov eax, dword [0x1800061a4]
lea rcx, [rbp + 0x77]
mov dword [rbp + 0x77], eax
xor edx, edx
movzx eax, byte [0x1800061a8]
xor byte [rbp + 0x78], 0x32
xor al, 0x35
xor byte [rbp + 0x79], 0x33
xor byte [rbp + 0x7a], 0x34
mov byte [rbp + 0x7b], al
mov byte [rbp + 0x77], 0x43
call fcn.180044670
test al, al
je 0x1800606f8
movss xmm4, dword [r15]
comiss xmm6, xmm4
mov qword [rsp + 0xc0], r13
movss xmm2, dword [0x180004c54]
movaps xmmword [rsp + 0xa0], xmm7
jbe 0x180060373
movaps xmm0, xmm6
jmp 0x18006037a
movaps xmm0, xmm2
minss xmm0, xmm4
movss xmm1, dword [0x180004cb4]
movss xmm3, dword [0x180004c48]
movss xmm7, dword [r15 + 4]
comiss xmm6, xmm7
mulss xmm0, xmm1
addss xmm0, xmm3
cvttss2si r13d, xmm0
jbe 0x1800603a7
movaps xmm0, xmm6
jmp 0x1800603ae
movaps xmm0, xmm2
minss xmm0, xmm7
movss xmm5, dword [r15 + 8]
comiss xmm6, xmm5
mulss xmm0, xmm1
addss xmm0, xmm3
cvttss2si r12d, xmm0
jbe 0x1800603cb
movaps xmm0, xmm6
jmp 0x1800603d2
movaps xmm0, xmm2
minss xmm0, xmm5
and dword [rbp + 0x6f], 2
mulss xmm0, xmm1
addss xmm0, xmm3
cvttss2si r14d, xmm0
je 0x1800603ec
mov esi, 0xff
jmp 0x18006040d
movss xmm0, dword [r15 + 0xc]
comiss xmm6, xmm0
ja 0x1800603fe
minss xmm2, xmm0
movaps xmm6, xmm2
mulss xmm6, xmm1
movaps xmm2, xmm0
addss xmm6, xmm3
cvttss2si esi, xmm6
mov eax, dword [0x1800061c8]
mov r8, rdi
movups xmm0, xmmword [0x1800061b0]
movabs r15, 0x29e4129e4129e413
mov dword [rbp - 0x41], eax
movsd xmm1, qword [0x1800061c0]
movzx eax, byte [0x1800061cc]
cvtps2pd xmm6, xmm7
mov byte [rbp - 0x3d], al
movaps xmm7, xmmword [rsp + 0xa0]
movups xmmword [rbp - 0x59], xmm0
cvtps2pd xmm5, xmm5
cvtps2pd xmm3, xmm4
movsd qword [rbp - 0x49], xmm1
nop word [rax + rax]
mov rax, r15
mul r8
mov rax, r8
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 5
movsx eax, al
imul ecx, eax, 0x37
movzx eax, r8b
sub al, cl
add al, 0x31
xor byte [rbp + r8 - 0x59], al
inc r8
cmp r8, 0x1d
jb 0x180060460
xorps xmm0, xmm0
lea r8, [rbp - 0x59]
cvtss2sd xmm0, xmm2
lea rcx, [rbp - 0x39]
mov edx, 0x40
movq r9, xmm3
movsd qword [rsp + 0x30], xmm0
movsd qword [rsp + 0x28], xmm5
movsd qword [rsp + 0x20], xmm6
call fcn.180048cc0
lea r9, [rbp + 0x77]
mov qword [rbp + 0x77], rdi
xor r8d, r8d
lea rcx, [rbp - 0x39]
xor edx, edx
call fcn.1800689f0
test al, al
je 0x1800604e5
lea rcx, [rbp - 0x39]
call fcn.180052b20
cmp byte [0x1800061dd], dil
mov eax, dword [0x1800061d8]
movsd xmm0, qword [0x1800061d0]
mov dword [rbp - 0x51], eax
movzx eax, word [0x1800061dc]
mov word [rbp - 0x4d], ax
movsd qword [rbp - 0x59], xmm0
je 0x180060552
mov r8, rdi
nop dword [rax]
nop word [rax + rax]
mov rax, r15
mul r8
mov rax, r8
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 5
movsx eax, al
imul ecx, eax, 0x37
movzx eax, r8b
sub al, cl
add al, 0x31
xor byte [rbp + r8 - 0x59], al
inc r8
cmp r8, 0xe
jb 0x180060520
mov dword [rsp + 0x30], esi
lea r8, [rbp - 0x59]
mov dword [rsp + 0x28], r14d
lea rcx, [rbp - 0x39]
mov r9d, r13d
mov dword [rsp + 0x20], r12d
mov edx, 0x40
call fcn.180048cc0
lea r9, [rbp + 0x77]
mov qword [rbp + 0x77], rdi
xor r8d, r8d
lea rcx, [rbp - 0x39]
xor edx, edx
call fcn.1800689f0
test al, al
je 0x180060598
lea rcx, [rbp - 0x39]
call fcn.180052b20
cmp byte [0x1800061ed], dil
mov eax, dword [0x1800061e8]
movsd xmm0, qword [0x1800061e0]
mov dword [rbp - 0x51], eax
movzx eax, word [0x1800061ec]
mov word [rbp - 0x4d], ax
movsd qword [rbp - 0x59], xmm0
je 0x180060602
mov r8, rdi
nop word [rax + rax]
mov rax, r15
mul r8
mov rax, r8
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 5
movsx eax, al
imul ecx, eax, 0x37
movzx eax, r8b
sub al, cl
add al, 0x31
xor byte [rbp + r8 - 0x59], al
inc r8
cmp r8, 0xe
jb 0x1800605d0
mov dword [rsp + 0x28], r14d
lea r8, [rbp - 0x59]
mov r9d, r13d
mov dword [rsp + 0x20], r12d
mov edx, 0x40
lea rcx, [rbp - 0x39]
call fcn.180048cc0
lea r9, [rbp + 0x77]
mov qword [rbp + 0x77], rdi
xor r8d, r8d
lea rcx, [rbp - 0x39]
xor edx, edx
call fcn.1800689f0
test al, al
je 0x180060644
lea rcx, [rbp - 0x39]
call fcn.180052b20
cmp dword [rbp + 0x6f], edi
jne 0x1800606eb
cmp byte [0x180006201], dil
movups xmm0, xmmword [0x1800061f0]
movzx eax, word [0x180006200]
mov word [rbp - 0x49], ax
movups xmmword [rbp - 0x59], xmm0
je 0x1800606a1
nop dword [rax]
mov rax, r15
mul rdi
mov rax, rdi
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 5
movsx eax, al
imul ecx, eax, 0x37
movzx eax, dil
sub al, cl
add al, 0x31
xor byte [rbp + rdi - 0x59], al
inc rdi
cmp rdi, 0x12
jb 0x180060670
mov dword [rsp + 0x30], esi
lea r8, [rbp - 0x59]
mov dword [rsp + 0x28], r14d
lea rcx, [rbp - 0x39]
mov r9d, r13d
mov dword [rsp + 0x20], r12d
mov edx, 0x40
call fcn.180048cc0
lea r9, [rbp + 0x77]
mov qword [rbp + 0x77], 0
xor r8d, r8d
lea rcx, [rbp - 0x39]
xor edx, edx
call fcn.1800689f0
test al, al
je 0x1800606eb
lea rcx, [rbp - 0x39]
call fcn.180052b20
call fcn.1800471a0
mov r13, qword [rsp + 0xc0]
mov rax, qword [rbp + 0x7f]
mov dword [rax + 0x2f24], ebx
call fcn.1800471a0
movaps xmm6, xmmword [rsp + 0xb0]
mov rbx, qword [rsp + 0x100]
mov rdi, qword [rsp + 0xd0]
mov r12, qword [rsp + 0xc8]
add rsp, 0xd8
pop r15
pop r14
pop rsi
pop rbp
ret