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

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov dword [rax + 8], ecx
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x68]
sub rsp, 0x140
mov rax, qword [0x180293020]
xor rax, rsp
mov qword [rbp + 0x38], rax
mov ebx, ecx
lea rcx, [rbp - 0x68]
call fcn.180038d18
mov edx, ebx
mov rcx, rax
call fcn.18003a6d0
test al, al
je 0x180004e66
lea rdx, [rbp + 0x70]
call fcn.180038c44
mov rax, qword [rax]
jmp 0x1800054ce
mov rcx, qword [0x18029fbd0]
lea rdx, str.il2cpp_domain_get
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rax
mov rcx, qword [0x18029fbd0]
lea rdx, str.il2cpp_domain_get_assemblies
and qword [rsp + 0x58], 0
mov r13, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [rsp + 0x58]
mov rcx, r13
call rax
mov rcx, qword [0x18029fbd0]
lea rdx, str.il2cpp_domain_get_assemblies
xor edi, edi
mov qword [rsp + 0x50], rax
and qword [rsp + 0x48], rdi
mov rbx, rax
mov dword [rsp + 0x40], edi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [rsp + 0x48]
mov rcx, r13
call rax
cmp qword [rsp + 0x48], rdi
jbe 0x1800054cc
or r14, 0xffffffffffffffff
mov rax, qword [rbx]
lea rdx, str.il2cpp_image_get_class_count
mov rcx, qword [0x18029fbd0]
xor r12d, r12d
mov r15, qword [rax]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, r15
call rax
test rax, rax
je 0x18000548b
xor edi, edi
mov rdx, qword [r15]
mov r8, r14
mov qword [rsp + 0x78], rdi
mov qword [rbp - 0x78], rdi
mov qword [rbp - 0x70], rdi
inc r8
cmp byte [rdx + r8], dil
jne 0x180004f23
lea rcx, [rsp + 0x78]
call fcn.18003bf44
cmp qword [rbp - 0x70], 0x10
lea rbx, [rsp + 0x78]
mov rdi, qword [rbp - 0x78]
cmovae rbx, qword [rsp + 0x78]
cmp rdi, 4
jb 0x180004f8c
lea rsi, [rdi + rbx]
mov rcx, rbx
lea r8, [rsi - 3]
sub r8, rbx
jmp 0x180004f7a
cmp dword [r9], 0x6c6c642e
je 0x180005192
inc r9
lea r8, [rsi - 3]
sub r8, r9
mov rcx, r9
mov edx, 0x2e
call fcn.1800e31c0
mov r9, rax
test rax, rax
jne 0x180004f60
mov r9, r14
cmp rdi, r9
jb 0x180005558
mov rax, rdi
lea rcx, [rsp + 0x78]
sub rax, r9
mov edx, 4
cmp rax, rdx
cmovb rdx, rax
cmp qword [rbp - 0x70], 0x10
cmovae rcx, qword [rsp + 0x78]
sub rdi, rdx
add rcx, r9
mov r8, rdi
sub r8, r9
add rdx, rcx
inc r8
call fcn.1800e2610
mov rcx, qword [0x18029fbd0]
lea rdx, str.il2cpp_image_get_class
mov qword [rbp - 0x78], rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
movsxd rdx, r12d
mov rcx, r15
call rax
xor edi, edi
mov r14, rax
mov qword [rbp - 0x68], rdi
or r8, 0xffffffffffffffff
mov qword [rbp - 0x58], rdi
mov rsi, qword [rax + 0x10]
mov rbx, qword [rax + 0x18]
mov qword [rbp - 0x50], rdi
inc r8
cmp byte [rbx + r8], dil
jne 0x18000500e
mov rdx, rbx
lea rcx, [rbp - 0x68]
call fcn.18003bf44
cmp qword [rbp - 0x58], rdi
mov rdx, qword [rbp - 0x50]
sete dil
cmp rdx, 0x10
jb 0x180005066
mov rcx, qword [rbp - 0x68]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x180005061
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180005570
call fcn.1800df7a4
mov rcx, qword [rbp - 0x78]
movabs rax, 0x7fffffffffffffff
sub rax, rcx
test dil, dil
je 0x18000519a
cmp rax, 2
jb 0x180005564
cmp qword [rbp - 0x70], 0x10
lea rax, [0x18027b04c]
mov qword [rsp + 0x30], 2
lea r9, [rsp + 0x78]
cmovae r9, qword [rsp + 0x78]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rcx
lea rcx, [rbp - 8]
call fcn.18003cb64
or r8, 0xffffffffffffffff
xor edi, edi
inc r8
cmp byte [rsi + r8], dil
jne 0x1800050c3
mov rdx, rsi
lea rcx, [rbp - 8]
call fcn.180038fb8
mov esi, 0xf
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
mov qword [rax + 0x10], rdi
mov qword [rax + 0x18], rsi
mov byte [rax], dil
mov rdx, qword [rbp - 0x70]
movups xmmword [rsp + 0x68], xmm0
movups xmmword [rbp - 0x68], xmm1
cmp rdx, 0x10
jb 0x18000513d
mov rcx, qword [rsp + 0x78]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x18000512f
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18000555e
call fcn.1800df7a4
movups xmm0, xmmword [rsp + 0x68]
movups xmm1, xmmword [rbp - 0x68]
mov rdx, qword [rbp + 0x10]
movups xmmword [rsp + 0x78], xmm0
movups xmmword [rbp - 0x78], xmm1
cmp rdx, 0x10
jb 0x180005181
mov rcx, qword [rbp - 8]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x18000517c
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18000555e
call fcn.1800df7a4
mov qword [rbp + 8], rdi
mov qword [rbp + 0x10], rsi
mov byte [rbp - 8], dil
jmp 0x1800053a6
sub r9, rbx
jmp 0x180004f8f
cmp rax, 2
jb 0x180005552
cmp qword [rbp - 0x70], 0x10
lea rax, [0x18027b04c]
mov qword [rsp + 0x30], 2
lea r9, [rsp + 0x78]
cmovae r9, qword [rsp + 0x78]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rcx
lea rcx, [rbp + 0x18]
call fcn.18003cb64
or r8, 0xffffffffffffffff
xor edi, edi
inc r8
cmp byte [rbx + r8], dil
jne 0x1800051dd
mov rdx, rbx
lea rcx, [rbp + 0x18]
call fcn.180038fb8
mov qword [rbp - 0x28], rdi
lea rdx, [0x18027b04c]
mov qword [rbp - 0x18], rdi
lea rcx, [rbp - 0x28]
mov qword [rbp - 0x10], rdi
mov ebx, 0xf
movups xmm0, xmmword [rax]
movups xmmword [rbp - 0x28], xmm0
lea r8d, [rbx - 0xd]
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp - 0x18], xmm1
mov qword [rax + 0x10], rdi
mov qword [rax + 0x18], rbx
mov byte [rax], dil
call fcn.180038fb8
mov qword [rbp - 0x48], rdi
or r8, 0xffffffffffffffff
mov qword [rbp - 0x38], rdi
mov qword [rbp - 0x30], rdi
movups xmm0, xmmword [rax]
movups xmmword [rbp - 0x48], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp - 0x38], xmm1
mov qword [rax + 0x10], rdi
mov qword [rax + 0x18], rbx
mov byte [rax], dil
inc r8
cmp byte [rsi + r8], dil
jne 0x18000525b
mov rdx, rsi
lea rcx, [rbp - 0x48]
call fcn.180038fb8
mov rsi, rbx
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
mov qword [rax + 0x18], rbx
mov ebx, 0x1000
mov qword [rax + 0x10], rdi
mov byte [rax], dil
mov rdx, qword [rbp - 0x70]
movups xmmword [rbp - 0x68], xmm0
movups xmmword [rsp + 0x68], xmm1
cmp rdx, 0x10
jb 0x1800052d4
mov rcx, qword [rsp + 0x78]
inc rdx
mov rax, rcx
cmp rdx, rbx
jb 0x1800052c6
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18000556a
call fcn.1800df7a4
movups xmm0, xmmword [rbp - 0x68]
movups xmm1, xmmword [rsp + 0x68]
mov rdx, qword [rbp - 0x30]
movups xmmword [rsp + 0x78], xmm0
movups xmmword [rbp - 0x78], xmm1
cmp rdx, 0x10
jb 0x180005314
mov rcx, qword [rbp - 0x48]
inc rdx
mov rax, rcx
cmp rdx, rbx
jb 0x18000530f
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18000556a
call fcn.1800df7a4
mov rdx, qword [rbp - 0x10]
mov qword [rbp - 0x38], rdi
mov qword [rbp - 0x30], rsi
mov byte [rbp - 0x48], dil
cmp rdx, 0x10
jb 0x180005357
mov rcx, qword [rbp - 0x28]
inc rdx
mov rax, rcx
cmp rdx, rbx
jb 0x180005352
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18000556a
call fcn.1800df7a4
mov rdx, qword [rbp + 0x30]
mov qword [rbp - 0x18], rdi
mov qword [rbp - 0x10], rsi
mov byte [rbp - 0x28], dil
cmp rdx, 0x10
jb 0x18000539a
mov rcx, qword [rbp + 0x18]
inc rdx
mov rax, rcx
cmp rdx, rbx
jb 0x180005395
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18000556a
call fcn.1800df7a4
mov qword [rbp + 0x28], rdi
mov qword [rbp + 0x30], rsi
mov byte [rbp + 0x18], dil
mov r10, qword [rbp - 0x70]
lea rcx, [rsp + 0x78]
mov r8, qword [rsp + 0x78]
cmp r10, 0x10
cmovae rcx, r8
or rax, 0xffffffffffffffff
inc rax
cmp byte [rcx + rax], dil
jne 0x1800053c0
cmp r10, 0x10
lea r9, [rsp + 0x78]
cmovae r9, r8
or edx, 0xffffffff
test eax, eax
je 0x180005402
mov r11d, eax
movsx ecx, byte [r9]
mov eax, edx
xor rcx, rax
shr edx, 8
movzx eax, cl
inc r9
lea rcx, [0x180219380]
xor edx, dword [rcx + rax*4]
sub r11, 1
jne 0x1800053e0
mov eax, dword [rbp + 0x70]
not edx
cmp eax, edx
je 0x1800054fb
cmp r10, 0x10
jb 0x180005446
lea rdx, [r10 + 1]
mov rax, r8
cmp rdx, 0x1000
jb 0x18000543e
mov r8, qword [r8 - 8]
add rdx, 0x27
sub rax, r8
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180005570
mov rcx, r8
call fcn.1800df7a4
mov rcx, qword [0x18029fbd0]
lea rdx, str.il2cpp_image_get_class_count
mov qword [rbp - 0x78], rdi
inc r12d
mov qword [rbp - 0x70], rsi
mov byte [rsp + 0x78], dil
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, r15
call rax
movsxd rcx, r12d
mov r14, 0xffffffffffffffff
cmp rcx, rax
jb 0x180004f10
mov rbx, qword [rsp + 0x50]
mov edi, dword [rsp + 0x40]
mov rcx, qword [0x18029fbd0]
lea rdx, str.il2cpp_domain_get_assemblies
and qword [rsp + 0x48], 0
inc edi
add rbx, 8
mov dword [rsp + 0x40], edi
mov qword [rsp + 0x50], rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [rsp + 0x48]
mov rcx, r13
call rax
movsxd rax, edi
cmp rax, qword [rsp + 0x48]
jb 0x180004ee3
xor eax, eax
mov rcx, qword [rbp + 0x38]
xor rcx, rsp
call fcn.1800df160
lea r11, [rsp + 0x140]
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
lea r8, [rsp + 0x58]
mov dword [rsp + 0x58], eax
lea rdx, [rbp - 0x68]
mov qword [rsp + 0x60], r14
call fcn.18003a768
mov rdx, qword [rbp - 0x70]
cmp rdx, 0x10
jb 0x18000554a
mov rcx, qword [rsp + 0x78]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x180005545
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180005570
call fcn.1800df7a4
mov rax, r14
jmp 0x1800054ce
call fcn.180002be0
int3
call fcn.18003a3a4
int3
call fcn.1800e7dd4
int3
call fcn.180002be0
int3
call fcn.1800e7dd4
int3
call fcn.1800e7dd4
int3