Function at 0x18003b990
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1c0]
sub rsp, 0x2c0
mov rax, qword [0x1801d00c0]
xor rax, rsp
mov qword [rbp + 0x1b0], rax
movzx esi, dl
mov byte [rsp + 0x31], dl
mov rdi, rcx
mov qword [rsp + 0x38], rcx
mov qword [rbp + 0xd0], 0
mov rcx, qword [rcx]
mov rax, qword [rcx]
mov r9, qword [rax + 0x30]
mov r8d, 0x30010100
lea rdx, [rbp + 0xd0]
call r9
test eax, eax
je 0x18003ba07
xor al, al
jmp 0x18003c588
mov dword [rbp + 0x120], 0
mov rcx, qword [rbp + 0xd0]
mov rax, qword [rcx]
mov r9, qword [rax + 0x268]
lea r8, [rbp + 0x108]
lea rdx, [rbp + 0x120]
call r9
lea rax, str.Class_count:_
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], 0xf
movaps xmm0, xmmword [rsp + 0x50]
movdqa xmmword [rsp + 0x60], xmm0
lea r9, [rbp + 0x120]
lea r8, [rsp + 0x60]
call fcn.18003d020
mov dword [rsp + 0x34], 0
cmp dword [rbp + 0x120], 0
jle 0x18003c4d3
lea r14, [rdi + 0x10]
xor edx, edx
mov qword [rsp + 0x78], rdx
lea r12, vtable.std::_Ref_count_obj2_class_JvmKlass_.0
lea r15, [0x1801269e0]
nop dword [rax]
nop word [rax + rax]
mov rcx, qword [rdi + 8]
mov rax, qword [rbp + 0x108]
mov rdx, qword [rdx + rax]
mov rax, qword [rcx]
mov r8, qword [rax + 0xa8]
call r8
mov rbx, rax
mov qword [rsp + 0x40], rax
mov ecx, 0x20
call fcn.1800ba7f8
mov r13, rax
mov qword [rsp + 0x70], rax
xorps xmm0, xmm0
movups xmmword [rax], xmm0
mov dword [rax + 8], 1
mov dword [rax + 0xc], 1
mov qword [rax], r12
lea rcx, [rax + 0x10]
mov rax, qword [rdi + 8]
mov qword [rcx], rax
mov qword [rcx + 8], rbx
movups xmmword [rbp + 0x160], xmm0
mov qword [rbp + 0x160], rcx
mov qword [rbp + 0x168], r13
lea rdx, [rbp + 0x130]
call fcn.18003e130
nop
lea r8, [rbp + 0x130]
cmp qword [rbp + 0x148], 0xf
seta byte [rsp + 0x30]
cmova r8, qword [rbp + 0x130]
mov edx, 0xffffffff
xor r9d, r9d
mov r10, qword [rbp + 0x140]
test r10, r10
je 0x18003bb72
nop
movsx ecx, byte [r8]
mov eax, edx
xor rcx, rax
movzx eax, cl
shr edx, 8
xor edx, dword [r15 + rax*4]
lea r8, [r8 + 1]
inc r9d
mov eax, r9d
cmp rax, r10
jb 0x18003bb50
not edx
mov dword [rbp - 0x70], edx
lock inc dword [r13 + 8]
mov rax, qword [rbp + 0x160]
mov qword [rbp - 0x68], rax
mov qword [rbp - 0x60], r13
lea r8, [rbp - 0x70]
lea rdx, [rbp + 0xc0]
mov rcx, r14
call fcn.18003d2b0
nop
mov rcx, qword [rbp - 0x60]
test rcx, rcx
je 0x18003bbe1
mov eax, 0xffffffff
lock xadd dword [rcx + 8], eax
cmp eax, 1
jne 0x18003bbe1
mov rbx, qword [rbp - 0x60]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, 0xffffffff
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x18003bbdc
mov rcx, qword [rbp - 0x60]
mov rax, qword [rcx]
call qword [rax + 8]
mov rbx, qword [rsp + 0x40]
test sil, sil
jne 0x18003bc33
lea rcx, [rbp + 0x130]
call fcn.180008ad0
nop
mov eax, 0xffffffff
lock xadd dword [r13 + 8], eax
cmp eax, 1
jne 0x18003c4af
mov rax, qword [r13]
mov rcx, r13
call qword [rax]
mov eax, 0xffffffff
lock xadd dword [r13 + 0xc], eax
cmp eax, 1
jne 0x18003c4af
mov rax, qword [r13]
mov rcx, r13
call qword [rax + 8]
jmp 0x18003c4af
xor esi, esi
mov dword [rbp + 0x128], esi
mov rcx, qword [rbp + 0xd0]
mov rax, qword [rcx]
mov r10, qword [rax + 0x198]
lea r9, [rbp + 0xd8]
lea r8, [rbp + 0x128]
mov rdx, rbx
call r10
mov r15d, esi
cmp dword [rbp + 0x128], esi
jle 0x18003c048
mov r12d, esi
movzx r13d, byte [rsp + 0x30]
nop dword [rax + rax]
mov qword [rbp + 0xe0], rsi
mov qword [rbp + 0xe8], rsi
mov qword [rbp + 0x110], rsi
mov rax, qword [rbp + 0xd8]
mov rdx, qword [r12 + rax]
mov rcx, qword [rbp + 0xd0]
mov rax, qword [rcx]
mov r10, qword [rax + 0x1f8]
lea rax, [rbp + 0x110]
mov qword [rsp + 0x20], rax
lea r9, [rbp + 0xe8]
lea r8, [rbp + 0xe0]
call r10
mov rbx, qword [rbp + 0xd8]
mov ecx, 0x40
call fcn.1800ba7f8
mov r14, rax
mov qword [rbp + 0x58], rax
xorps xmm0, xmm0
movups xmmword [rax], xmm0
mov dword [rax + 8], 1
mov dword [rax + 0xc], 1
lea rax, vtable.std::_Ref_count_obj2_class_JvmMethod_.0
mov qword [r14], rax
lea rdx, [r14 + 0x10]
mov rcx, qword [rbx + r12]
mov rax, qword [rdi + 8]
mov qword [rdx], rax
mov qword [rdx + 8], rcx
movups xmmword [rdx + 0x10], xmm0
mov qword [rdx + 0x20], rsi
mov qword [rdx + 0x28], 0xf
mov byte [rdx + 0x10], 0
movups xmmword [rbp + 0x150], xmm0
mov qword [rbp + 0x150], rdx
mov qword [rbp + 0x158], r14
mov r10, qword [rbp + 0xe0]
test r10, r10
je 0x18003bff9
lea rdx, [rbp + 0x130]
test r13b, r13b
cmovne rdx, qword [rbp + 0x130]
mov esi, 0xffffffff
xor r11d, r11d
mov r8d, r11d
mov r9, qword [rbp + 0x140]
lea rbx, [0x1801269e0]
test r9, r9
je 0x18003bda0
movsx ecx, byte [rdx]
mov eax, esi
xor rcx, rax
movzx eax, cl
shr esi, 8
xor esi, dword [rbx + rax*4]
lea rdx, [rdx + 1]
inc r8d
mov eax, r8d
cmp rax, r9
jb 0x18003bd80
not esi
xorps xmm0, xmm0
movups xmmword [rbp - 0x28], xmm0
mov qword [rbp - 0x18], r11
mov qword [rbp - 0x10], r11
mov r8, 0xffffffffffffffff
nop dword [rax + rax]
inc r8
cmp byte [r10 + r8], r11b
jne 0x18003bdc0
mov rdx, r10
lea rcx, [rbp - 0x28]
call fcn.18000b050
lea rdx, [rbp - 0x28]
cmp qword [rbp - 0x10], 0xf
cmova rdx, qword [rbp - 0x28]
mov edi, 0xffffffff
xor r8d, r8d
mov r9, qword [rbp - 0x18]
test r9, r9
je 0x18003be20
nop dword [rax]
nop dword [rax + rax]
movsx ecx, byte [rdx]
mov eax, edi
xor rcx, rax
movzx eax, cl
shr edi, 8
xor edi, dword [rbx + rax*4]
lea rdx, [rdx + 1]
inc r8d
mov eax, r8d
cmp rax, r9
jb 0x18003be00
not edi
lea rcx, [rbp - 0x28]
call fcn.180008ad0
xorps xmm0, xmm0
movups xmmword [rbp - 8], xmm0
xor eax, eax
mov qword [rbp + 8], rax
mov qword [rbp + 0x10], rax
mov rdx, qword [rbp + 0xe8]
mov r8, 0xffffffffffffffff
nop word [rax + rax]
inc r8
cmp byte [rdx + r8], al
jne 0x18003be50
lea rcx, [rbp - 8]
call fcn.18000b050
lea rdx, [rbp - 8]
cmp qword [rbp + 0x10], 0xf
cmova rdx, qword [rbp - 8]
mov ebx, 0xffffffff
xor r8d, r8d
mov r9, qword [rbp + 8]
test r9, r9
je 0x18003beb1
lea r10, [0x1801269e0]
nop dword [rax + rax]
movsx ecx, byte [rdx]
mov eax, ebx
xor rcx, rax
movzx eax, cl
shr ebx, 8
xor ebx, dword [r10 + rax*4]
lea rdx, [rdx + 1]
inc r8d
mov eax, r8d
cmp rax, r9
jb 0x18003be90
not ebx
lea rcx, [rbp - 8]
call fcn.180008ad0
lea r9, [rbp + 0x195]
lea r8d, [rbx + rdi]
add r8d, esi
nop word [rax + rax]
dec r9
mov eax, 0xcccccccd
mul r8d
shr edx, 3
movzx eax, dl
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
sub r8b, cl
add r8b, 0x30
mov byte [r9], r8b
mov r8d, edx
test edx, edx
jne 0x18003bed0
lea r8, [rbp + 0x195]
mov rdx, r9
lea rcx, [rbp + 0x80]
call fcn.180022680
lea r8, [rbp + 0x80]
cmp qword [rbp + 0x98], 0xf
cmova r8, qword [rbp + 0x80]
mov edx, 0xffffffff
xor esi, esi
mov r9d, esi
mov r10, qword [rbp + 0x90]
test r10, r10
je 0x18003bf79
lea r13, [0x1801269e0]
nop dword [rax]
nop dword [rax + rax]
movsx ecx, byte [r8]
mov eax, edx
xor rcx, rax
movzx eax, cl
shr edx, 8
xor edx, dword [r13 + rax*4]
lea r8, [r8 + 1]
inc r9d
mov eax, r9d
cmp rax, r10
jb 0x18003bf50
movzx r13d, byte [rsp + 0x30]
not edx
mov ebx, edx
lea rcx, [rbp + 0x80]
call fcn.180008ad0
mov rdi, qword [rsp + 0x38]
lea rcx, [rdi + 0x50]
mov qword [rbp - 0x58], rbx
lock inc dword [r14 + 8]
mov rax, qword [rbp + 0x150]
mov qword [rbp - 0x50], rax
mov qword [rbp - 0x48], r14
lea r8, [rbp - 0x58]
lea rdx, [rbp + 0xb0]
call fcn.18003d5d0
nop
mov rcx, qword [rbp - 0x48]
test rcx, rcx
je 0x18003bff9
mov eax, 0xffffffff
lock xadd dword [rcx + 8], eax
cmp eax, 1
jne 0x18003bff9
mov rbx, qword [rbp - 0x48]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, 0xffffffff
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x18003bff9
mov rcx, qword [rbp - 0x48]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov eax, 0xffffffff
lock xadd dword [r14 + 8], eax
cmp eax, 1
jne 0x18003c02a
mov rax, qword [r14]
mov rcx, r14
call qword [rax]
mov eax, 0xffffffff
lock xadd dword [r14 + 0xc], eax
cmp eax, 1
jne 0x18003c02a
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 8]
inc r15d
add r12, 8
cmp r15d, dword [rbp + 0x128]
jl 0x18003bc80
mov r13, qword [rsp + 0x70]
mov rbx, qword [rsp + 0x40]
mov dword [rbp + 0x124], esi
mov rcx, qword [rbp + 0xd0]
mov rax, qword [rcx]
mov r10, qword [rax + 0x1a0]
lea r9, [rbp + 0xf0]
lea r8, [rbp + 0x124]
mov rdx, rbx
call r10
mov r15d, esi
cmp dword [rbp + 0x124], 0
jle 0x18003c458
mov r12, rsi
movzx r13d, byte [rsp + 0x30]
nop dword [rax]
mov qword [rbp + 0xf8], rsi
mov qword [rbp + 0x100], rsi
mov qword [rbp + 0x118], rsi
mov rax, qword [rbp + 0xf0]
mov r8, qword [r12 + rax]
mov rcx, qword [rbp + 0xd0]
mov rax, qword [rcx]
mov r10, qword [rax + 0x1d8]
lea rax, [rbp + 0x118]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x100]
mov qword [rsp + 0x20], rax
lea r9, [rbp + 0xf8]
mov rdx, rbx
call r10
mov rbx, qword [rbp + 0xf0]
mov ecx, 0x40
call fcn.1800ba7f8
mov r14, rax
mov qword [rbp + 0x58], rax
xorps xmm0, xmm0
movups xmmword [rax], xmm0
mov dword [rax + 8], 1
mov dword [rax + 0xc], 1
lea rax, vtable.std::_Ref_count_obj2_class_JvmField_.0
mov qword [r14], rax
lea rdx, [r14 + 0x10]
mov rcx, qword [rbx + r12]
mov rax, qword [rdi + 8]
mov qword [rdx], rax
mov qword [rdx + 8], rcx
movups xmmword [rdx + 0x10], xmm0
mov qword [rdx + 0x20], rsi
mov qword [rdx + 0x28], 0xf
mov byte [rdx + 0x10], 0
movups xmmword [rbp + 0x170], xmm0
mov qword [rbp + 0x170], rdx
mov qword [rbp + 0x178], r14
mov r10, qword [rbp + 0xf8]
test r10, r10
je 0x18003c409
lea rdx, [rbp + 0x130]
test r13b, r13b
cmovne rdx, qword [rbp + 0x130]
mov esi, 0xffffffff
xor r11d, r11d
mov r8d, r11d
mov r9, qword [rbp + 0x140]
lea rbx, [0x1801269e0]
test r9, r9
je 0x18003c1c0
nop dword [rax + rax]
movsx ecx, byte [rdx]
mov eax, esi
xor rcx, rax
movzx eax, cl
shr esi, 8
xor esi, dword [rbx + rax*4]
lea rdx, [rdx + 1]
inc r8d
mov eax, r8d
cmp rax, r9
jb 0x18003c1a0
not esi
xorps xmm0, xmm0
movups xmmword [rbp + 0x18], xmm0
mov qword [rbp + 0x28], r11
mov qword [rbp + 0x30], r11
mov r8, 0xffffffffffffffff
nop dword [rax + rax]
inc r8
cmp byte [r10 + r8], r11b
jne 0x18003c1e0
mov rdx, r10
lea rcx, [rbp + 0x18]
call fcn.18000b050
lea rdx, [rbp + 0x18]
cmp qword [rbp + 0x30], 0xf
cmova rdx, qword [rbp + 0x18]
mov edi, 0xffffffff
xor r8d, r8d
mov r9, qword [rbp + 0x28]
test r9, r9
je 0x18003c240
nop dword [rax]
nop dword [rax + rax]
movsx ecx, byte [rdx]
mov eax, edi
xor rcx, rax
movzx eax, cl
shr edi, 8
xor edi, dword [rbx + rax*4]
lea rdx, [rdx + 1]
inc r8d
mov eax, r8d
cmp rax, r9
jb 0x18003c220
not edi
lea rcx, [rbp + 0x18]
call fcn.180008ad0
xorps xmm0, xmm0
movups xmmword [rbp + 0x38], xmm0
xor eax, eax
mov qword [rbp + 0x48], rax
mov qword [rbp + 0x50], rax
mov rdx, qword [rbp + 0x100]
mov r8, 0xffffffffffffffff
nop word [rax + rax]
inc r8
cmp byte [rdx + r8], al
jne 0x18003c270
lea rcx, [rbp + 0x38]
call fcn.18000b050
lea rdx, [rbp + 0x38]
cmp qword [rbp + 0x50], 0xf
cmova rdx, qword [rbp + 0x38]
mov ebx, 0xffffffff
xor r8d, r8d
mov r9, qword [rbp + 0x48]
test r9, r9
je 0x18003c2d8
lea r13, [0x1801269e0]
nop dword [rax + rax]
movsx ecx, byte [rdx]
mov eax, ebx
xor rcx, rax
movzx eax, cl
shr ebx, 8
xor ebx, dword [r13 + rax*4]
lea rdx, [rdx + 1]
inc r8d
mov eax, r8d
cmp rax, r9
jb 0x18003c2b0
movzx r13d, byte [rsp + 0x30]
not ebx
lea rcx, [rbp + 0x38]
call fcn.180008ad0
lea r9, [rbp + 0x1ad]
lea ecx, [rbx + rdi]
add ecx, esi
nop
dec r9
mov eax, 0xcccccccd
mul ecx
shr edx, 3
movzx eax, dl
shl al, 2
lea r8d, [rax + rdx]
add r8b, r8b
sub cl, r8b
add cl, 0x30
mov byte [r9], cl
mov ecx, edx
test edx, edx
jne 0x18003c2f0
lea r8, [rbp + 0x1ad]
mov rdx, r9
lea rcx, [rbp + 0x60]
call fcn.180022680
lea r8, [rbp + 0x60]
cmp qword [rbp + 0x78], 0xf
cmova r8, qword [rbp + 0x60]
mov edx, 0xffffffff
xor esi, esi
mov r9d, esi
mov r10, qword [rbp + 0x70]
test r10, r10
je 0x18003c389
lea r13, [0x1801269e0]
nop dword [rax]
nop dword [rax + rax]
movsx ecx, byte [r8]
mov eax, edx
xor rcx, rax
movzx eax, cl
shr edx, 8
xor edx, dword [r13 + rax*4]
lea r8, [r8 + 1]
inc r9d
mov eax, r9d
cmp rax, r10
jb 0x18003c360
movzx r13d, byte [rsp + 0x30]
not edx
mov ebx, edx
lea rcx, [rbp + 0x60]
call fcn.180008ad0
mov rdi, qword [rsp + 0x38]
lea rcx, [rdi + 0x90]
mov qword [rbp - 0x40], rbx
lock inc dword [r14 + 8]
mov rax, qword [rbp + 0x170]
mov qword [rbp - 0x38], rax
mov qword [rbp - 0x30], r14
lea r8, [rbp - 0x40]
lea rdx, [rbp + 0xa0]
call fcn.18003d5d0
nop
mov rcx, qword [rbp - 0x30]
test rcx, rcx
je 0x18003c409
mov eax, 0xffffffff
lock xadd dword [rcx + 8], eax
cmp eax, 1
jne 0x18003c409
mov rbx, qword [rbp - 0x30]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, 0xffffffff
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x18003c409
mov rcx, qword [rbp - 0x30]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov eax, 0xffffffff
lock xadd dword [r14 + 8], eax
cmp eax, 1
jne 0x18003c43a
mov rax, qword [r14]
mov rcx, r14
call qword [rax]
mov eax, 0xffffffff
lock xadd dword [r14 + 0xc], eax
cmp eax, 1
jne 0x18003c43a
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 8]
inc r15d
add r12, 8
cmp r15d, dword [rbp + 0x124]
mov rbx, qword [rsp + 0x40]
jl 0x18003c090
mov r13, qword [rsp + 0x70]
lea rcx, [rbp + 0x130]
call fcn.180008ad0
nop
mov eax, 0xffffffff
lock xadd dword [r13 + 8], eax
cmp eax, 1
jne 0x18003c498
mov rax, qword [r13]
mov rcx, r13
call qword [rax]
mov eax, 0xffffffff
lock xadd dword [r13 + 0xc], eax
cmp eax, 1
jne 0x18003c498
mov rax, qword [r13]
mov rcx, r13
call qword [rax + 8]
movzx esi, byte [rsp + 0x31]
lea r14, [rdi + 0x10]
lea r15, [0x1801269e0]
lea r12, vtable.std::_Ref_count_obj2_class_JvmKlass_.0
mov eax, dword [rsp + 0x34]
inc eax
mov dword [rsp + 0x34], eax
mov rdx, qword [rsp + 0x78]
add rdx, 8
mov qword [rsp + 0x78], rdx
cmp eax, dword [rbp + 0x120]
jl 0x18003baa0
lea rax, str.Dumped_all_classes_
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], 0x13
movaps xmm0, xmmword [rsp + 0x50]
movdqa xmmword [rsp + 0x50], xmm0
lea r8, [rsp + 0x50]
mov edx, 0x58
lea rcx, str.C:Users_rootDocumentsGitHubghost_clientghost_client_sourcejvmjvm.cpp
call fcn.18001bfe0
test sil, sil
je 0x18003c586
mov rax, qword [rdi + 0x60]
mov qword [rsp + 0x38], rax
lea rax, str.Method_count:_
mov qword [rbp - 0x80], rax
mov qword [rbp - 0x78], 0x10
movaps xmm0, xmmword [rbp - 0x80]
movdqa xmmword [rbp - 0x80], xmm0
lea r9, [rsp + 0x38]
lea r8, [rbp - 0x80]
mov edx, 0x5b
call fcn.18003d8d0
mov rax, qword [rdi + 0xa0]
mov qword [rsp + 0x38], rax
lea rax, str.Field_count:_
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], 0xf
movaps xmm0, xmmword [rsp + 0x60]
movdqa xmmword [rsp + 0x60], xmm0
lea r9, [rsp + 0x38]
lea r8, [rsp + 0x60]
mov edx, 0x5c
call fcn.18003d8d0
mov al, 1
mov rcx, qword [rbp + 0x1b0]
xor rcx, rsp
call fcn.1800ba7d0
lea r11, [rsp + 0x2c0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret