Function at 0x1800303c0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r14
push r15
mov rbp, rsp
sub rsp, 0x48
mov rax, qword gs:[0x58]
mov r14, rcx
mov edx, dword [0x18039b468]
xor r15d, r15d
mov ecx, 4
mov rsi, qword [rax + rdx*8]
add rsi, rcx
mov eax, dword [rsi]
cmp dword [0x1803a15d0], eax
jle 0x180030470
lea rcx, [0x1803a15d0]
call fcn.180360f8c
cmp dword [0x1803a15d0], 0xffffffff
jne 0x180030470
xorps xmm0, xmm0
xor r8d, r8d
xor edx, edx
movdqa xmmword [0x1803a14e0], xmm0
call fcn.180354610
lea rcx, [0x1803a14f0]
mov qword [0x1803a14e0], rax
call fcn.180001990
lea rcx, [0x18037d290]
mov qword [0x1803a1508], r15
mov qword [0x1803a1510], 0xf
mov byte [0x1803a14f8], r15b
mov byte [0x1803a1518], r15b
call fcn.1803614c4
lea rcx, [0x1803a15d0]
call fcn.180360f2c
xor eax, eax
mov dword [rbp + 0x50], 0xc3cfd0e7
mov byte [rbp + 0x54], al
mov qword [rbp + 0x40], r15
mov rax, qword [rbp + 0x40]
nop dword [rax]
nop dword [rax + rax]
mov rcx, qword [rbp + 0x40]
mov rax, qword [rbp + 0x40]
sub cl, 0x5b
xor cl, byte [rbp + rax + 0x51]
mov rax, qword [rbp + 0x40]
mov byte [rbp + rax + 0x51], cl
mov rax, qword [rbp + 0x40]
inc rax
mov qword [rbp + 0x40], rax
mov rax, qword [rbp + 0x40]
cmp rax, 3
jb 0x180030490
lea r8, [rbp + 0x51]
mov byte [rbp + 0x54], r15b
lea rdx, [rbp - 0x20]
lea rcx, [0x1803a14e0]
call fcn.180004da0
mov rax, qword [rbp - 0x18]
cmp rax, qword [rbp - 0x20]
je 0x18003050e
mov qword [rbp + 0x48], 0x10
mov qword [rbp + 0x40], r15
mov rcx, qword [rbp + 0x40]
mov rax, qword [rbp + 0x48]
add rcx, rax
mov qword [rbp + 0x40], rcx
mov rcx, r14
mov r8, qword [rbp + 0x40]
mov rdx, qword [rbp - 0x20]
call fcn.180362260
jmp 0x1800306ee
mov dword [rbp + 0x48], 7
mov edi, r15d
mov dword [rbp + 0x40], 9
mov ecx, dword [rbp + 0x40]
mov eax, dword [rbp + 0x48]
add ecx, eax
mov dword [rbp + 0x40], ecx
mov eax, dword [rbp + 0x40]
nop dword [rax]
mov dword [rbp + 0x48], 0xd1
mov dword [rbp + 0x40], 0x2e
mov ecx, dword [rbp + 0x40]
mov eax, dword [rbp + 0x48]
add ecx, eax
mov dword [rbp + 0x40], ecx
mov ebx, dword [rbp + 0x40]
inc ebx
call fcn.18000c5c0
xor edx, edx
div ebx
mov eax, edx
xor edx, edx
div ebx
mov eax, edi
inc edi
mov byte [rax + r14], dl
mov dword [rbp + 0x48], 7
mov dword [rbp + 0x40], 9
mov ecx, dword [rbp + 0x40]
mov eax, dword [rbp + 0x48]
add ecx, eax
mov dword [rbp + 0x40], ecx
mov eax, dword [rbp + 0x40]
cmp edi, eax
jb 0x180030530
mov eax, dword [rsi]
cmp dword [0x1803a15d0], eax
jle 0x180030604
lea rcx, [0x1803a15d0]
call fcn.180360f8c
cmp dword [0x1803a15d0], 0xffffffff
jne 0x180030604
xorps xmm0, xmm0
xor r8d, r8d
xor edx, edx
movdqa xmmword [0x1803a14e0], xmm0
call fcn.180354610
lea rcx, [0x1803a14f0]
mov qword [0x1803a14e0], rax
call fcn.180001990
lea rcx, [0x18037d290]
mov qword [0x1803a1508], r15
mov qword [0x1803a1510], 0xf
mov byte [0x1803a14f8], r15b
mov byte [0x1803a1518], r15b
call fcn.1803614c4
lea rcx, [0x1803a15d0]
call fcn.180360f2c
xor eax, eax
mov dword [rbp - 0x28], 0x5a5449f1
mov byte [rbp - 0x24], al
mov qword [rbp + 0x40], r15
mov rax, qword [rbp + 0x40]
nop dword [rax + rax]
mov rcx, qword [rbp + 0x40]
mov rax, qword [rbp + 0x40]
add cl, 0x3c
xor cl, byte [rbp + rax - 0x27]
mov rax, qword [rbp + 0x40]
mov byte [rbp + rax - 0x27], cl
mov rax, qword [rbp + 0x40]
inc rax
mov qword [rbp + 0x40], rax
mov rax, qword [rbp + 0x40]
cmp rax, 3
jb 0x180030620
mov r8, r14
mov byte [rbp - 0x24], r15b
lea rdx, [rbp - 0x27]
lea rcx, [0x1803a14e0]
call fcn.180004860
mov eax, dword [rsi]
cmp dword [0x1803a15d0], eax
jle 0x1800306e2
lea rcx, [0x1803a15d0]
call fcn.180360f8c
cmp dword [0x1803a15d0], 0xffffffff
jne 0x1800306e2
xorps xmm0, xmm0
xor r8d, r8d
xor edx, edx
movdqa xmmword [0x1803a14e0], xmm0
call fcn.180354610
lea rcx, [0x1803a14f0]
mov qword [0x1803a14e0], rax
call fcn.180001990
lea rcx, [0x18037d290]
mov qword [0x1803a1508], r15
mov qword [0x1803a1510], 0xf
mov byte [0x1803a14f8], r15b
mov byte [0x1803a1518], r15b
call fcn.1803614c4
lea rcx, [0x1803a15d0]
call fcn.180360f2c
lea rcx, [0x1803a14e0]
call fcn.180004280
mov byte [r14 + 0x10], r15b
lea rbx, [r14 + 0x10]
mov qword [rbp + 0x48], 6
mov edi, r15d
mov qword [rbp + 0x40], 0xa
mov rdx, r15
mov rcx, qword [rbp + 0x40]
mov esi, 0x37
mov rax, qword [rbp + 0x48]
add rcx, rax
mov qword [rbp + 0x40], rcx
mov rax, qword [rbp + 0x40]
mov dword [rbp + 0x48], 0xa
lea r8, [rbp + 0x38]
mov dword [rbp + 0x40], 6
mov ecx, dword [rbp + 0x40]
mov eax, dword [rbp + 0x48]
add ecx, eax
mov dword [rbp + 0x40], ecx
mov r9d, dword [rbp + 0x40]
movzx ecx, byte [rdx + r14]
nop word [rax + rax]
xor edx, edx
mov eax, ecx
div r9d
mov ecx, eax
cmp edx, 0xa
mov eax, 0x30
cmovge eax, esi
add al, dl
mov byte [r8], al
inc r8
test ecx, ecx
jg 0x180030750
lea rax, [rbp + 0x38]
mov byte [r8], r15b
sub r8d, eax
mov r10d, r15d
mov r11d, r8d
shr r11d, 1
je 0x1800307b8
lea r9, [rbp + 0x38]
nop dword [rax]
movzx edx, byte [r9]
lea rcx, [rbp + 0x38]
mov eax, r8d
lea r9, [r9 + 1]
sub eax, r10d
inc r10d
dec eax
add rcx, rax
movzx eax, byte [rcx]
mov byte [r9 - 1], al
mov byte [rcx], dl
cmp r10d, r11d
jb 0x180030790
mov eax, r15d
cmp byte [rbx], r15b
je 0x1800307c8
inc eax
cmp byte [rax + rbx], r15b
jne 0x1800307c0
mov ecx, eax
lea rdx, [rbp + 0x38]
add rcx, rbx
movzx eax, byte [rdx]
lea rdx, [rdx + 1]
mov byte [rcx], al
lea rcx, [rcx + 1]
test al, al
jne 0x1800307d1
mov qword [rbp + 0x48], 6
inc edi
mov qword [rbp + 0x40], 0xa
mov rcx, qword [rbp + 0x40]
mov rax, qword [rbp + 0x48]
add rcx, rax
mov edx, edi
mov qword [rbp + 0x40], rcx
mov rax, qword [rbp + 0x40]
cmp rdx, rax
jb 0x180030724
mov rcx, qword [rbp - 0x20]
mov byte [r14 + 0x31], 1
test rcx, rcx
je 0x18003084d
mov rdx, qword [rbp - 0x10]
mov rax, rcx
sub rdx, rcx
cmp rdx, 0x1000
jb 0x180030848
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18003085a
call fcn.180360d9c
add rsp, 0x48
pop r15
pop r14
pop rdi
pop rsi
pop rbx
pop rbp
ret
call fcn.1803687c0
int3