Function at 0x140004020
Capabilities:
Hash data with crc32
Parse pe header
Resolve function by parsing pe exports

Disassembly:
push rsi
push r12
push r15
sub rsp, 0x180
mov rax, qword [0x14002d010]
xor rax, rsp
mov qword [rsp + 0x160], rax
mov r12d, edx
mov rsi, rcx
test rcx, rcx
je 0x1400043b4
xor ecx, ecx
lea r9, [0x1400be760]
mov r8d, ecx
mov rax, r9
nop dword [rax]
cmp dword [rax + 8], r12d
jne 0x14000406f
cmp qword [rax], rsi
je 0x140004136
inc r8d
add rax, 0x18
cmp r8d, 5
jb 0x140004060
mov eax, 0x5a4d
cmp word [rsi], ax
jne 0x1400043b4
movsxd rax, dword [rsi + 0x3c]
add rax, rsi
mov qword [rsp + 0x38], rax
cmp dword [rax], 0x4550
jne 0x1400043b4
mov eax, dword [rax + 0x88]
mov r15, rcx
mov qword [rsp + 0x20], rax
add rax, rsi
mov qword [rsp + 0x1b0], rbp
mov ebp, ecx
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x1b8], rdi
mov edi, ecx
mov r11d, dword [rax + 0x20]
mov eax, dword [rax + 0x18]
add r11, rsi
mov dword [rsp + 0x28], eax
test eax, eax
je 0x140004347
mov qword [rsp + 0x1a8], rbx
mov qword [rsp + 0x178], r13
mov r13d, 0xffffffff
mov qword [rsp + 0x170], r14
mov r14, 0xffffffffffffffff
nop word [rax + rax]
mov ebx, dword [r11]
mov r10, r14
add rbx, rsi
nop dword [rax]
inc r10
cmp byte [rbx + r10], r15b
jne 0x140004120
dec r10
cmp r10, r14
jne 0x140004147
mov edi, r13d
jmp 0x140004189
mov eax, r8d
lea rax, [rax + rax*2]
mov rax, qword [r9 + rax*8 + 0x10]
jmp 0x1400043b6
lea rcx, [r10 - 1]
mov rdx, rbx
call fcn.1400037c0
movsx edx, byte [r10 + rbx]
xor r8d, r8d
mov edi, eax
mov eax, 0x20
lea ecx, [rdx - 0x41]
cmp cl, 0x19
mov ecx, edx
cmovbe r8d, eax
lea rax, [0x140029720]
or r8, rcx
xor r8, rdi
shr edi, 8
movzx ecx, r8b
xor edi, dword [rax + rcx*4]
mov eax, dword [rsp + 0x28]
not edi
cmp edi, r12d
je 0x1400041a3
inc ebp
add r11, 4
cmp ebp, eax
jb 0x140004110
jmp 0x140004328
mov r8, qword [rsp + 0x30]
mov ecx, ebp
mov eax, dword [r8 + 0x24]
add rax, rsi
movzx edx, word [rax + rcx*2]
mov ecx, dword [r8 + 0x1c]
add rcx, rsi
mov r8d, dword [rcx + rdx*4]
mov rcx, qword [rsp + 0x20]
lea r15, [rsi + r8]
cmp r8d, ecx
jbe 0x140004328
mov rax, qword [rsp + 0x38]
add ecx, dword [rax + 0x8c]
cmp r8d, ecx
jae 0x140004328
mov r9d, 0x103
lea rcx, [rsp + 0x50]
mov r8, r15
lea edx, [r9 + 1]
call fcn.14000edf8
xor ebp, ebp
lea r8, [rsp + 0x28]
lea rdx, [0x140029fd4]
mov qword [rsp + 0x28], rbp
lea rcx, [rsp + 0x50]
call fcn.14000edc0
test rax, rax
je 0x1400042b9
cmp qword [rsp + 0x28], rbp
je 0x1400042b9
mov rcx, rax
call fcn.140003bf0
mov r11, rax
test rax, rax
je 0x1400042b9
cmp rax, rsi
je 0x1400042b9
mov r10, qword [rsp + 0x28]
nop dword [rax + rax]
inc r14
cmp byte [r10 + r14], bpl
jne 0x140004250
dec r14
cmp r14, 0xffffffffffffffff
je 0x1400042a3
lea rcx, [r14 - 1]
mov rdx, r10
call fcn.1400037c0
movsx edx, byte [r14 + r10]
mov r13d, eax
mov eax, 0x20
mov r8, rbp
lea ecx, [rdx - 0x41]
cmp cl, 0x19
mov ecx, edx
cmovbe r8, rax
lea rax, [0x140029720]
or r8, rcx
xor r8, r13
shr r13d, 8
movzx ecx, r8b
xor r13d, dword [rax + rcx*4]
not r13d
mov rcx, r11
mov edx, r13d
call fcn.140004020
mov r15, rax
test rax, rax
jne 0x140004328
cmp qword [0x1400be7e0], rbp
jne 0x1400042e2
mov edx, 0xc0d5b5d8
mov ecx, 0x84c05e40
call fcn.1400043e0
mov qword [0x1400be7e0], rax
test rax, rax
jne 0x1400042e2
mov r15, rbp
jmp 0x140004328
mov edx, 0x104
mov qword [rsp + 0x30], rbp
mov rcx, rbx
mov qword [rsp + 0x40], rbx
call fcn.14000ea68
mov word [rsp + 0x38], ax
lea r9, [rsp + 0x30]
inc ax
lea rdx, [rsp + 0x38]
xor r8d, r8d
mov word [rsp + 0x3a], ax
mov rcx, rsi
call qword [0x1400be7e0]
mov r15, qword [rsp + 0x30]
cmp r15, rsi
cmove r15, rbp
mov r13, qword [rsp + 0x178]
lea r9, [0x1400be760]
mov rbx, qword [rsp + 0x1a8]
mov r14, qword [rsp + 0x170]
mov rbp, qword [rsp + 0x1b0]
cmp r12d, edi
mov rdi, qword [rsp + 0x1b8]
jne 0x1400043b4
movzx edx, word [0x1400be750]
movabs rax, 0xcccccccccccccccd
mov qword [rsp + 0x38], rsi
mov dword [rsp + 0x40], r12d
movups xmm0, xmmword [rsp + 0x38]
lea rcx, [rdx + rdx*2]
mov qword [rsp + 0x48], r15
movsd xmm1, qword [rsp + 0x48]
movups xmmword [r9 + rcx*8], xmm0
movsd qword [r9 + rcx*8 + 0x10], xmm1
lea ecx, [rdx + 1]
mul rcx
shr rdx, 2
lea rax, [rdx + rdx*4]
sub rcx, rax
mov rax, r15
mov word [0x1400be750], cx
jmp 0x1400043b6
xor eax, eax
mov rcx, qword [rsp + 0x160]
xor rcx, rsp
call fcn.140004e40
add rsp, 0x180
pop r15
pop r12
pop rsi
ret