Function at 0x1800086cc
Capabilities:
Encode data using xor
Hash data with crc32
Link many functions at runtime

Disassembly:
mov dword [rsp + 8], ecx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x98]
sub rsp, 0x198
mov ebx, ecx
lea rcx, [rbp - 0x68]
call fcn.180036598
mov edx, ebx
mov rcx, rax
call fcn.1800370e8
test al, al
je 0x180008717
lea rdx, [rbp + 0xe0]
call fcn.1800364c4
mov eax, dword [rax]
jmp 0x18000918e
mov rcx, qword [0x1801b5bb0]
lea rdx, str.il2cpp_domain_get
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rax
mov rcx, qword [0x1801b5bb0]
lea rdx, str.il2cpp_domain_get_assemblies
and qword [rbp - 0x58], 0
mov rbx, rax
mov qword [rbp - 0x50], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [rbp - 0x58]
mov rcx, rbx
call rax
mov rcx, qword [0x1801b5bb0]
lea rdx, str.il2cpp_domain_get_assemblies
xor esi, esi
mov qword [rbp - 0x48], rax
and qword [rbp + 0xf8], rsi
mov r14, rax
mov dword [rbp + 0xf0], esi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [rbp + 0xf8]
mov rcx, rbx
call rax
cmp qword [rbp + 0xf8], rsi
jbe 0x18000918c
xor edi, edi
movabs r13, 0x7fffffffffffffff
mov qword [rbp - 0x70], rdi
mov rax, qword [r14 + rdi*8]
lea rdx, str.il2cpp_image_get_class_count
mov rcx, qword [0x1801b5bb0]
xor r12d, r12d
mov dword [rbp + 0xe8], r12d
mov r15, qword [rax]
mov qword [rbp - 0x80], r15
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, r15
call rax
test rax, rax
je 0x180009145
xor esi, esi
mov r14, qword [r15]
or rdi, 0xffffffffffffffff
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x50], rsi
mov qword [rsp + 0x58], 0xf
inc rdi
cmp byte [r14 + rdi], sil
jne 0x1800087fc
cmp rdi, 0xf
ja 0x18000882f
mov r8, rdi
mov qword [rsp + 0x50], rdi
mov rdx, r14
lea rcx, [rsp + 0x40]
call sub.VCRUNTIME140.dll_memmove
mov byte [rsp + rdi + 0x40], sil
mov rsi, qword [rsp + 0x40]
jmp 0x1800088c6
cmp rdi, r13
ja 0x18000926d
mov rbx, rdi
or rbx, 0xf
cmp rbx, r13
jbe 0x180008853
mov rbx, r13
movabs rax, 0x8000000000000027
jmp 0x180008879
mov eax, 0x16
cmp rbx, rax
cmovb rbx, rax
lea rcx, [rbx + 1]
cmp rcx, 0x1000
jb 0x180008898
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x180009273
mov rcx, rax
call fcn.18006f980
test rax, rax
je 0x180009260
lea rsi, [rax + 0x27]
and rsi, 0xffffffffffffffe0
mov qword [rsi - 8], rax
jmp 0x1800088a5
test rcx, rcx
je 0x1800088a5
call fcn.18006f980
mov rsi, rax
mov r8, rdi
mov qword [rsp + 0x50], rdi
mov rdx, r14
mov qword [rsp + 0x58], rbx
mov rcx, rsi
call sub.VCRUNTIME140.dll_memcpy
mov byte [rsi + rdi], 0
mov qword [rsp + 0x40], rsi
cmp qword [rsp + 0x58], 0x10
lea rbx, [rsp + 0x40]
mov rdi, qword [rsp + 0x50]
cmovae rbx, rsi
cmp rdi, 4
jb 0x180008920
lea r14, [rdi + rbx]
mov r13d, 0x2e
lea r8, [r14 - 3]
mov rcx, rbx
sub r8, rbx
jmp 0x180008910
cmp dword [r9], 0x6c6c642e
je 0x1800089d9
inc r9
lea r8, [r14 - 3]
sub r8, r9
mov rcx, r9
mov edx, r13d
call sub.VCRUNTIME140.dll_memchr
mov r9, rax
test rax, rax
jne 0x1800088f6
or r9, 0xffffffffffffffff
cmp rdi, r9
jb 0x180009267
mov rax, rdi
lea rcx, [rsp + 0x40]
sub rax, r9
mov edx, 4
cmp rax, rdx
cmovb rdx, rax
cmp qword [rsp + 0x58], 0x10
cmovae rcx, rsi
sub rdi, rdx
mov qword [rsp + 0x50], rdi
add rcx, r9
sub rdi, r9
add rdx, rcx
lea r8, [rdi + 1]
call sub.VCRUNTIME140.dll_memmove
mov rcx, qword [0x1801b5bb0]
lea rdx, str.il2cpp_image_get_class
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
movsxd rdx, r12d
mov rcx, r15
call rax
xor edi, edi
mov qword [rbp - 0x18], 0xf
mov r13, rax
mov qword [rbp - 0x30], rdi
or rsi, 0xffffffffffffffff
mov r12, qword [rax + 0x10]
mov r14, qword [rax + 0x18]
inc rsi
cmp byte [r14 + rsi], dil
jne 0x1800089a1
cmp rsi, 0xf
ja 0x1800089e1
mov r8, rsi
mov qword [rbp - 0x20], rsi
mov rdx, r14
lea rcx, [rbp - 0x30]
call sub.VCRUNTIME140.dll_memmove
mov byte [rbp + rsi - 0x30], dil
mov rbx, qword [rbp - 0x18]
mov rsi, qword [rbp - 0x20]
mov rdi, qword [rbp - 0x30]
jmp 0x180008a73
sub r9, rbx
jmp 0x180008924
movabs rax, 0x7fffffffffffffff
cmp rsi, rax
ja 0x18000926d
mov rbx, rsi
or rbx, 0xf
cmp rbx, rax
jbe 0x180008a0f
mov rbx, rax
movabs rax, 0x8000000000000027
jmp 0x180008a35
mov eax, 0x16
cmp rbx, rax
cmovb rbx, rax
lea rcx, [rbx + 1]
cmp rcx, 0x1000
jb 0x180008a54
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x180009273
mov rcx, rax
call fcn.18006f980
test rax, rax
je 0x180009260
lea rdi, [rax + 0x27]
and rdi, 0xffffffffffffffe0
mov qword [rdi - 8], rax
jmp 0x180008a61
test rcx, rcx
je 0x180008a61
call fcn.18006f980
mov rdi, rax
mov r8, rsi
mov rdx, r14
mov rcx, rdi
call sub.VCRUNTIME140.dll_memcpy
mov byte [rdi + rsi], 0
test rsi, rsi
sete sil
cmp rbx, 0x10
jb 0x180008ab4
lea rdx, [rbx + 1]
mov rax, rdi
mov ebx, 0x1000
cmp rdx, rbx
jb 0x180008aaa
mov rdi, qword [rdi - 8]
add rdx, 0x27
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180009260
mov rcx, rdi
call fcn.18006f9bc
jmp 0x180008ab9
mov ebx, 0x1000
mov rcx, qword [rsp + 0x50]
xor edi, edi
test sil, sil
je 0x180008bd6
movabs r14, 0x7fffffffffffffff
mov rax, r14
sub rax, rcx
cmp rax, 2
jb 0x180009279
cmp qword [rsp + 0x58], 0x10
lea rax, [0x18015dbf4]
mov qword [rsp + 0x30], 2
lea r9, [rsp + 0x40]
cmovae r9, qword [rsp + 0x40]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rcx
lea rcx, [rbp + 0x10]
call fcn.18000432c
mov rdx, r12
lea rcx, [rbp + 0x10]
call fcn.1800367c4
xor esi, esi
lea r12d, [rdi + 0xf]
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], r12
mov byte [rax], sil
mov rdx, qword [rsp + 0x58]
movups xmmword [rbp - 0x40], xmm0
movups xmmword [rbp - 0x68], xmm1
cmp rdx, 0x10
jb 0x180008b84
mov rcx, qword [rsp + 0x40]
inc rdx
mov rax, rcx
cmp rdx, rbx
jb 0x180008b77
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800091a2
call fcn.18006f9bc
movups xmm0, xmmword [rbp - 0x40]
movups xmm1, xmmword [rbp - 0x68]
mov rdx, qword [rbp + 0x28]
movups xmmword [rsp + 0x40], xmm0
movups xmmword [rsp + 0x50], xmm1
cmp rdx, 0x10
jb 0x180008bc5
mov rcx, qword [rbp + 0x10]
inc rdx
mov rax, rcx
cmp rdx, rbx
jb 0x180008bc0
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800091a2
call fcn.18006f9bc
mov qword [rbp + 0x20], rsi
mov qword [rbp + 0x28], r12
mov byte [rbp + 0x10], sil
jmp 0x180008edb
movabs rax, 0x7fffffffffffffff
mov ebx, 2
sub rax, rcx
cmp rax, rbx
jb 0x18000928b
cmp qword [rsp + 0x58], 0x10
lea rax, [0x18015dbf4]
mov qword [rsp + 0x30], rbx
lea r9, [rsp + 0x40]
cmovae r9, qword [rsp + 0x40]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rcx
lea rcx, [rbp + 0x30]
call fcn.18000432c
mov rdx, r14
lea rcx, [rbp + 0x30]
call fcn.1800367c4
movups xmm1, xmmword [rax + 0x10]
movups xmm0, xmmword [rax]
mov qword [rax + 0x10], rdi
movq rsi, xmm1
mov qword [rax + 0x18], 0xf
mov byte [rax], dil
movups xmmword [rsp + 0x70], xmm1
psrldq xmm1, 8
movq r14, xmm1
mov rax, r14
sub rax, rsi
movups xmmword [rsp + 0x60], xmm0
cmp rax, rbx
jb 0x180008c92
lea rax, [rsi + 2]
cmp r14, 0x10
mov qword [rsp + 0x70], rax
mov ecx, 0x3a3a
lea rax, [rsp + 0x60]
cmovae rax, qword [rsp + 0x60]
mov word [rax + rsi], cx
mov byte [rax + rsi + 2], dil
jmp 0x180008dbc
movabs rdx, 0x7fffffffffffffff
mov rax, rdx
sub rax, rsi
cmp rax, rbx
jb 0x18000928b
lea r15, [rsi + 2]
mov rbx, r15
or rbx, 0xf
cmp rbx, rdx
ja 0x180008ccc
mov rcx, r14
mov rax, rdx
shr rcx, 1
sub rax, rcx
cmp r14, rax
jbe 0x180008cdb
mov rbx, rdx
movabs rax, 0x8000000000000027
jmp 0x180008d00
lea rax, [rcx + r14]
cmp rbx, rax
cmovb rbx, rax
lea rcx, [rbx + 1]
cmp rcx, 0x1000
jb 0x180008d1f
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x18000927f
mov rcx, rax
call fcn.18006f980
test rax, rax
je 0x1800091a9
lea rdi, [rax + 0x27]
and rdi, 0xffffffffffffffe0
mov qword [rdi - 8], rax
jmp 0x180008d2c
test rcx, rcx
je 0x180008d2c
call fcn.18006f980
mov rdi, rax
mov qword [rsp + 0x70], r15
mov r8, rsi
mov qword [rsp + 0x78], rbx
mov rcx, rdi
cmp r14, 0x10
jb 0x180008d9b
mov rbx, qword [rsp + 0x60]
mov rdx, rbx
call sub.VCRUNTIME140.dll_memcpy
lea rdx, [r14 + 1]
mov eax, 0x3a3a
mov word [rdi + rsi], ax
mov r14d, 0x1000
mov byte [rdi + rsi + 2], 0
mov rax, rbx
cmp rdx, r14
jb 0x180008d88
mov rbx, qword [rbx - 8]
add rdx, 0x27
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800091a9
mov rcx, rbx
call fcn.18006f9bc
mov r15, qword [rbp - 0x80]
mov qword [rsp + 0x60], rdi
jmp 0x180008dc2
lea rdx, [rsp + 0x60]
call sub.VCRUNTIME140.dll_memcpy
mov r15, qword [rbp - 0x80]
mov eax, 0x3a3a
mov word [rdi + rsi], ax
mov byte [rdi + rsi + 2], 0
mov qword [rsp + 0x60], rdi
mov r14d, 0x1000
movups xmm0, xmmword [rsp + 0x60]
mov rdx, r12
lea rcx, [rbp - 0x10]
movups xmm1, xmmword [rsp + 0x70]
movups xmmword [rbp - 0x10], xmm0
movups xmmword [rbp], xmm1
call fcn.1800367c4
xor esi, esi
movups xmm0, xmmword [rax]
lea r12d, [rsi + 0xf]
movups xmm1, xmmword [rax + 0x10]
mov qword [rax + 0x18], r12
mov qword [rax + 0x10], rsi
mov byte [rax], sil
mov rdx, qword [rsp + 0x58]
movups xmmword [rbp - 0x68], xmm0
movups xmmword [rbp - 0x40], xmm1
cmp rdx, 0x10
jb 0x180008e41
mov rcx, qword [rsp + 0x40]
inc rdx
mov rax, rcx
cmp rdx, r14
jb 0x180008e34
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800091a9
call fcn.18006f9bc
movups xmm0, xmmword [rbp - 0x68]
movups xmm1, xmmword [rbp - 0x40]
mov rdx, qword [rbp + 8]
movups xmmword [rsp + 0x40], xmm0
movups xmmword [rsp + 0x50], xmm1
cmp rdx, 0x10
jb 0x180008e82
mov rcx, qword [rbp - 0x10]
inc rdx
mov rax, rcx
cmp rdx, r14
jb 0x180008e7d
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800091a9
call fcn.18006f9bc
mov rdx, qword [rbp + 0x48]
mov qword [rbp], rsi
mov qword [rbp + 8], r12
mov byte [rbp - 0x10], sil
cmp rdx, 0x10
jb 0x180008ec5
mov rcx, qword [rbp + 0x30]
inc rdx
mov rax, rcx
cmp rdx, r14
jb 0x180008ec0
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800091a9
call fcn.18006f9bc
mov qword [rbp + 0x40], rsi
movabs r14, 0x7fffffffffffffff
mov qword [rbp + 0x48], r12
mov byte [rbp + 0x30], sil
mov rcx, qword [0x1801b5bb0]
lea rdx, str.il2cpp_class_get_fields
mov qword [rbp - 0x78], rsi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [rbp - 0x78]
mov rcx, r13
call rax
jmp 0x18000909b
mov rcx, qword [0x1801b5bb0]
lea rdx, str.il2cpp_field_get_name
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, rbx
call rax
mov rdx, qword [rsp + 0x50]
mov rdi, rax
sub r14, rdx
cmp r14, 2
jb 0x180009285
cmp qword [rsp + 0x58], 0x10
lea rax, [0x18015dbf4]
mov qword [rsp + 0x30], 2
lea r9, [rsp + 0x40]
cmovae r9, qword [rsp + 0x40]
lea rcx, [rbp + 0x50]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rdx
call fcn.18000432c
mov rdx, rdi
lea rcx, [rbp + 0x50]
call fcn.1800367c4
mov r14d, 0x1000
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], r12
mov byte [rax], sil
mov rdx, qword [rbp + 0x68]
movups xmmword [rbp + 0x70], xmm0
movups xmmword [rbp + 0x80], xmm1
cmp rdx, 0x10
jb 0x180008fc9
mov rcx, qword [rbp + 0x50]
inc rdx
mov rax, rcx
cmp rdx, r14
jb 0x180008fc4
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800091b0
call fcn.18006f9bc
mov rdi, qword [rbp + 0x70]
lea rcx, [rbp + 0x70]
mov qword [rbp + 0x60], rsi
mov byte [rbp + 0x50], sil
mov rsi, qword [rbp + 0x88]
cmp rsi, 0x10
mov qword [rbp + 0x68], r12
cmovae rcx, rdi
or rax, 0xffffffffffffffff
inc rax
cmp byte [rcx + rax], 0
jne 0x180008ff0
cmp rsi, 0x10
lea r8, [rbp + 0x70]
cmovae r8, rdi
or edx, 0xffffffff
test eax, eax
je 0x180009031
mov r9d, eax
movsx ecx, byte [r8]
mov eax, edx
xor rcx, rax
shr edx, 8
movzx eax, cl
inc r8
lea rcx, [0x180158d00]
xor edx, dword [rcx + rax*4]
sub r9, 1
jne 0x18000900f
not edx
cmp edx, dword [rbp + 0xe0]
je 0x1800091b7
cmp rsi, 0x10
jb 0x180009072
lea rdx, [rsi + 1]
mov rax, rdi
cmp rdx, r14
jb 0x18000906a
mov rdi, qword [rdi - 8]
add rdx, 0x27
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180009260
mov rcx, rdi
call fcn.18006f9bc
mov rcx, qword [0x1801b5bb0]
lea rdx, str.il2cpp_class_get_fields
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [rbp - 0x78]
mov rcx, r13
call rax
xor esi, esi
movabs r14, 0x7fffffffffffffff
mov rbx, rax
test rax, rax
jne 0x180008f01
mov rdx, qword [rsp + 0x58]
cmp rdx, 0x10
jb 0x1800090e4
mov rcx, qword [rsp + 0x40]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800090df
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180009260
call fcn.18006f9bc
mov rcx, qword [0x1801b5bb0]
lea rdx, str.il2cpp_image_get_class_count
mov qword [rsp + 0x58], r12
mov r12d, dword [rbp + 0xe8]
inc r12d
mov qword [rsp + 0x50], rsi
mov dword [rbp + 0xe8], r12d
mov byte [rsp + 0x40], sil
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, r15
call rax
movsxd rcx, r12d
movabs r13, 0x7fffffffffffffff
cmp rcx, rax
jb 0x1800087e2
mov rbx, qword [rbp - 0x50]
mov rdi, qword [rbp - 0x70]
mov esi, dword [rbp + 0xf0]
mov r14, qword [rbp - 0x48]
mov rcx, qword [0x1801b5bb0]
lea rdx, str.il2cpp_domain_get_assemblies
and qword [rbp + 0xf8], 0
inc esi
inc rdi
mov dword [rbp + 0xf0], esi
mov qword [rbp - 0x70], rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [rbp + 0xf8]
mov rcx, rbx
call rax
movsxd rax, esi
cmp rax, qword [rbp + 0xf8]
jb 0x1800087a9
xor eax, eax
add rsp, 0x198
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, qword [0x1801b5bb0]
lea rdx, str.il2cpp_field_get_offset
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, rbx
call rax
mov ecx, dword [rbp + 0xe0]
lea r8, [rbp + 0xe8]
mov ebx, eax
lea rdx, [rbp - 0x68]
mov dword [rbp + 0xec], ebx
mov dword [rbp + 0xe8], ecx
call fcn.180037328
cmp rsi, 0x10
jb 0x180009223
lea rdx, [rsi + 1]
mov rax, rdi
cmp rdx, r14
jb 0x18000921b
mov rdi, qword [rdi - 8]
add rdx, 0x27
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180009260
mov rcx, rdi
call fcn.18006f9bc
mov rdx, qword [rsp + 0x58]
cmp rdx, 0x10
jb 0x180009258
mov rcx, qword [rsp + 0x40]
inc rdx
mov r8, rcx
cmp rdx, r14
jb 0x180009253
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub r8, rcx
add r8, 0xfffffffffffffff8
cmp r8, 0x1f
ja 0x180009260
call fcn.18006f9bc
mov rax, rbx
jmp 0x18000918e
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.180001f8c
int3
call fcn.180001c44
int3
call fcn.180001ba4
int3
call fcn.180001c44
int3
call fcn.180001ba4
int3
call fcn.180001c44
int3
call fcn.180001c44
int3