Function at 0x140038870
Capabilities:
Hash data with crc32

Disassembly:
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xb10
mov qword [rsp + 0x60], 0xfffffffffffffffe
mov rax, qword [0x14014dcf0]
xor rax, rsp
mov qword [rsp + 0xb00], rax
mov r15, r9
mov r13, r8
mov qword [rsp + 0x58], rdx
mov rbx, rcx
mov edi, 0x80
lea r12d, [rdi - 0x7f]
mov esi, edi
mov ecx, 0x40
cmp dword [rdx], ecx
cmovbe esi, ecx
mov dword [rsp + 0x30], esi
xor eax, eax
mov dword [0x1401a5f74], eax
test r8, r8
je 0x14003904b
mov edx, edi
lea r14, [0x1401a5f80]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_VirtualLock]
mov r8d, edi
xor edx, edx
mov rcx, r14
call fcn.1400a4ea0
test r13, r13
je 0x140038fe1
mov qword [rsp + 0x100], 7
xor eax, eax
mov qword [rsp + 0xf8], rax
mov word [rsp + 0xe8], ax
or rcx, 0xffffffffffffffff
mov rdi, r13
repne scasw ax, word [rdi]
not rcx
lea r8, [rcx - 1]
mov rdx, r13
lea rcx, [rsp + 0xe8]
call fcn.140006260
nop
lea rcx, [rsp + 0xe8]
call fcn.140041950
movzx edi, al
cmp qword [rsp + 0x100], 8
jb 0x140038966
mov rcx, qword [rsp + 0xe8]
call fcn.1400a58b8
mov qword [rsp + 0x100], 7
xor eax, eax
mov qword [rsp + 0xf8], rax
mov word [rsp + 0xe8], ax
test dil, dil
je 0x140038bfc
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], rax
mov qword [rsp + 0xb0], 7
mov qword [rsp + 0xa8], rax
mov word [rsp + 0x98], ax
or rcx, 0xffffffffffffffff
mov rdi, r13
repne scasw ax, word [rdi]
not rcx
lea r8, [rcx - 1]
mov rdx, r13
lea rcx, [rsp + 0x98]
call fcn.140006260
nop
mov qword [rsp + 0x88], 7
xor edi, edi
mov qword [rsp + 0x80], rdi
mov word [rsp + 0x70], di
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rdx, [rsp + 0x98]
lea rcx, [rsp + 0x70]
call fcn.140006130
nop
cmp qword [rsp + 0xb0], 8
jb 0x140038a27
mov rcx, qword [rsp + 0x98]
call fcn.1400a58b8
mov qword [rsp + 0xb0], 7
mov qword [rsp + 0xa8], rdi
mov word [rsp + 0x98], di
lea rdx, [rsp + 0x70]
lea rcx, [rsp + 0x400]
call fcn.140048ec0
nop
lea rdx, [rsp + 0x38]
mov rcx, rax
call fcn.140047920
nop
lea rcx, [rsp + 0x400]
call fcn.140022690
mov r11, qword [rsp + 0x38]
mov r8, qword [rsp + 0x40]
cmp r11, r8
jne 0x140038afd
mov ecx, 0x26
call qword [sym.imp.KERNEL32.dll_SetLastError]
lea rdx, str.KeyFilesApply:262
mov rcx, rbx
call fcn.140025910
mov rdx, rbx
lea rcx, str.ERR_PROCESS_KEYFILE
call fcn.1400181d0
mov r12d, edi
cmp qword [rsp + 0x88], 8
jb 0x140038ac1
mov rcx, qword [rsp + 0x70]
call fcn.1400a58b8
mov qword [rsp + 0x88], 7
mov qword [rsp + 0x80], rdi
mov word [rsp + 0x70], di
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x140038ae9
call fcn.1400a58b8
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x48], rdi
jmp 0x140038fd1
or esi, 0xffffffff
mov r9d, edi
mov r10, rdi
nop word [rax + rax]
mov rax, r8
sub rax, r11
cmp rdi, rax
jae 0x140038b84
movzx ecx, byte [r11 + rdi]
mov eax, esi
xor rcx, rax
movzx edx, cl
shr eax, 8
lea rcx, [0x140147b20]
mov esi, dword [rcx + rdx*4]
xor esi, eax
mov ecx, r9d
mov eax, esi
shr eax, 0x18
add byte [rcx + r14], al
inc r9d
mov eax, esi
shr eax, 0x10
add byte [r9 + r14], al
inc r9d
mov eax, esi
shr eax, 8
add byte [r9 + r14], al
inc r9d
add byte [r9 + r14], sil
inc r9d
cmp r9d, dword [rsp + 0x30]
mov eax, 0
cmovae r9d, eax
inc r10
cmp r10, 0x100000
jae 0x140038b84
inc rdi
jmp 0x140038b10
sub r8, r11
mov rdi, r11
xor eax, eax
mov rcx, r8
rep stosb byte [rdi], al
mov rax, r8
dec r8
test rax, rax
je 0x140038ba5
mov byte [r11], 0
inc r11
jmp 0x140038b91
cmp qword [rsp + 0x88], 8
jb 0x140038bba
mov rcx, qword [rsp + 0x70]
call fcn.1400a58b8
mov qword [rsp + 0x88], 7
xor edi, edi
mov qword [rsp + 0x80], rdi
mov word [rsp + 0x70], di
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x140038be4
call fcn.1400a58b8
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x48], rdi
mov esi, dword [rsp + 0x30]
jmp 0x140038fd1
lea rdx, [rsp + 0x188]
mov rcx, r13
call fcn.1400a9dc0
test eax, eax
je 0x140038c38
lea rdx, str.KeyFilesApply:301
mov rcx, rbx
call fcn.140025910
mov rdx, rbx
lea rcx, str.ERR_PROCESS_KEYFILE
call fcn.1400181d0
xor eax, eax
mov r12d, eax
jmp 0x140038fd1
mov eax, 0x4000
test word [rsp + 0x18e], ax
je 0x140038fb0
xor eax, eax
mov esi, eax
mov r9, r13
lea r8, str._s.
mov edx, 0x410
lea rcx, [rsp + 0x6f0]
call section..text
lea rdx, [rsp + 0x4c0]
lea rcx, [rsp + 0x6f0]
call fcn.1400a9a98
mov rdi, rax
cmp rax, 0xffffffffffffffff
jne 0x140038cb1
lea rdx, str.KeyFilesApply:315
mov rcx, rbx
call fcn.140025910
mov rdx, rbx
lea rcx, str.ERR_PROCESS_KEYFILE_PATH
call fcn.1400181d0
xor eax, eax
mov r12d, eax
jmp 0x140038fcd
lea rax, [rsp + 0x4e4]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x5c
mov r9, r13
lea r8, str._s_c_s
mov edx, 0x20a
lea rcx, [rsp + 0x1e0]
call section..text
lea rdx, [rsp + 0x188]
lea rcx, [rsp + 0x1e0]
call fcn.1400a9dc0
test eax, eax
je 0x140038d07
lea rdx, str.KeyFilesApply:333
jmp 0x140038d93
mov eax, 0x4000
test word [rsp + 0x18e], ax
jne 0x140038daf
lea r8, [rsp + 0x1b8]
xor edx, edx
lea rcx, [rsp + 0x1e0]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesExW]
test eax, eax
je 0x140038d4c
test byte [rsp + 0x1b8], 2
je 0x140038d4c
mov dword [0x1401a5f74], 1
jmp 0x140038daf
lea rcx, [rsp + 0x1e0]
call fcn.14001a280
test r15, r15
je 0x140038d72
lea rdx, [rsp + 0x1e0]
mov rcx, r15
call fcn.1400a6f40
test eax, eax
je 0x140038daf
inc esi
lea r8, [rsp + 0x1e0]
mov edx, dword [rsp + 0x30]
mov rcx, r14
call fcn.1400382b0
test eax, eax
jne 0x140038daf
lea rdx, str.KeyFilesApply:364
mov rcx, rbx
call fcn.140025910
mov rdx, rbx
lea rcx, str.ERR_PROCESS_KEYFILE
call fcn.1400181d0
xor eax, eax
mov r12d, eax
lea rdx, [rsp + 0x4c0]
mov rcx, rdi
call fcn.1400a9be0
cmp eax, 0xffffffff
jne 0x140038cb1
mov rcx, rdi
call fcn.1400a9a70
lea r11, [rsp + 0x1e0]
mov edx, 0x218
lea rdi, [rsp + 0x1e0]
xor eax, eax
mov ecx, edx
rep stosb byte [rdi], al
nop dword [rax + rax]
mov byte [r11], al
inc r11
dec rdx
jne 0x140038df0
test esi, esi
jne 0x140038fcd
mov qword [rsp + 0x128], 7
xor esi, esi
mov qword [rsp + 0x120], rsi
mov word [rsp + 0x110], si
or rcx, 0xffffffffffffffff
mov rdi, r13
repne scasw ax, word [rdi]
not rcx
lea r8, [rcx - 1]
mov rdx, r13
lea rcx, [rsp + 0x110]
call fcn.140006260
nop
lea rcx, str.ERR_KEYFILE_PATH_EMPTY
call fcn.14003a7b0
mov rdx, rax
mov qword [rsp + 0xd8], 7
mov qword [rsp + 0xd0], rsi
mov word [rsp + 0xc0], si
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
lea r8, [rcx - 1]
lea rcx, [rsp + 0xc0]
call fcn.140006260
nop
lea r8, [0x1400cc778]
lea rdx, [rsp + 0xc0]
lea rcx, [rsp + 0x138]
call fcn.14000f1c0
nop
lea r8, [rsp + 0x110]
mov rdx, rax
lea rcx, [rsp + 0x160]
call fcn.14000f230
cmp qword [rax + 0x18], 8
jb 0x140038ece
mov rax, qword [rax]
mov rdx, rbx
mov rcx, rax
call fcn.14001aad0
cmp qword [rsp + 0x178], 8
jb 0x140038ef1
mov rcx, qword [rsp + 0x160]
call fcn.1400a58b8
mov qword [rsp + 0x178], 7
xor edi, edi
mov qword [rsp + 0x170], rdi
mov word [rsp + 0x160], di
cmp qword [rsp + 0x150], 8
jb 0x140038f27
mov rcx, qword [rsp + 0x138]
call fcn.1400a58b8
mov qword [rsp + 0x150], 7
mov qword [rsp + 0x148], rdi
mov word [rsp + 0x138], di
cmp qword [rsp + 0xd8], 8
jb 0x140038f5b
mov rcx, qword [rsp + 0xc0]
call fcn.1400a58b8
mov qword [rsp + 0xd8], 7
mov qword [rsp + 0xd0], rdi
mov word [rsp + 0xc0], di
cmp qword [rsp + 0x128], 8
jb 0x140038f8f
mov rcx, qword [rsp + 0x110]
call fcn.1400a58b8
mov qword [rsp + 0x128], 7
mov qword [rsp + 0x120], rdi
mov word [rsp + 0x110], di
mov r12d, edi
jmp 0x140038fcd
mov r8, r13
mov edx, esi
mov rcx, r14
call fcn.1400382b0
test eax, eax
jne 0x140038fd1
lea rdx, str.KeyFilesApply:383
jmp 0x140038c17
mov esi, dword [rsp + 0x30]
mov r13, qword [r13 + 0x210]
jmp 0x1400388f5
mov r9d, esi
mov r10, qword [rsp + 0x58]
test esi, esi
je 0x140039024
lea rdx, [r10 + 4]
mov rdi, r14
sub rdi, r10
mov r8, 0xfffffffffffffffc
sub r8, r10
lea rcx, [r8 + rdx]
mov eax, dword [r10]
cmp rcx, rax
movzx eax, byte [rdi + rdx - 4]
jae 0x140039016
add byte [rdx], al
jmp 0x140039018
mov byte [rdx], al
inc rdx
lea rax, [r8 + rdx]
cmp rax, r9
jb 0x140039001
mov eax, dword [r10]
cmp eax, esi
cmovb eax, esi
mov dword [r10], eax
mov rdi, r14
xor eax, eax
mov edx, 0x80
mov ecx, edx
rep stosb byte [rdi], al
nop dword [rax]
mov byte [r14], al
inc r14
dec rdx
jne 0x140039040
mov eax, r12d
mov rcx, qword [rsp + 0xb00]
xor rcx, rsp
call fcn.1400a4e70
add rsp, 0xb10
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret