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

Disassembly:
push rbp
sub rsp, 0x50
mov rbp, rsp
mov qword [rbp + 0x20], 0
mov qword [rbp + 0x28], 0
mov qword [rbp + 0x30], 0
mov qword [rbp + 0x38], 0
mov qword [rbp + 0x40], 0
mov qword [rbp + 0x48], 0
mov rax, qword [0x0044d1e8]
mov byte [rax], 1
nop
lea rcx, [0x004413c0]
call fcn.0040f360
nop
lea rcx, [0x0046b200]
lea rdx, [0x00440b40]
call fcn.0040eb30
mov rax, qword [0x0044d058]
mov qword [rax], 0
mov rax, qword [0x0044cf30]
mov byte [rax], 0
mov rax, qword [0x0044cc58]
mov byte [rax], 1
mov cl, 1
call fcn.00404da0
mov rax, qword [0x0044cf88]
mov rcx, qword [0x0044cfe8]
movzx rcx, word [rcx]
mov qword [rax], rcx
xor rcx, rcx
call sub.kernel32.dll_SetThreadUILanguage
mov rcx, qword [0x0044cdb0]
mov rdx, qword [0x00426960]
mov r8d, 1
xor r9, r9
call fcn.0040c920
mov rcx, qword [0x0044d220]
mov rdx, qword [0x004269a0]
mov r8d, 1
xor r9, r9
call fcn.0040c920
mov rcx, qword [0x00440b70]
mov dl, 1
call fcn.00440ea0
mov qword [0x0046b1d0], rax
mov rcx, qword [0x0046b1d0]
lea rdx, [0x00445aec]
mov r8b, 1
call fcn.00441110
test al, al
je 0x445590
mov rax, qword [0x0046b1d0]
mov rcx, qword [rax + 0x50]
lea rdx, [0x0046b1d8]
mov rax, qword [0x0046b1d0]
movsxd r8, dword [rax + 0x58]
call fcn.00405650
mov rcx, qword [0x0046b1d0]
call fcn.00440f90
mov rcx, qword [0x0046b1d0]
lea rdx, [0x00445b00]
xor r8, r8
call fcn.00441110
test al, al
je 0x4455d4
mov rax, qword [0x0046b1d0]
mov rcx, qword [rax + 0x50]
lea rdx, [0x0046b20c]
mov r8d, 4
call fcn.00405650
mov rcx, qword [0x0046b1d0]
call fcn.00440f90
mov rax, qword [0x0044d278]
mov ecx, dword [0x0046b1e4]
mov dword [rax], ecx
mov rcx, qword [0x0046b1d0]
lea rdx, [0x00445b14]
mov r8b, 1
call fcn.00441110
test al, al
je 0x445a59
mov dword [0x0046b208], 0xffffffff
mov rax, qword [0x0046b1d0]
mov rax, qword [rax + 0x50]
mov rcx, qword [0x0046b1d0]
mov ecx, dword [rcx + 0x58]
lea rcx, [rax + rcx - 1]
xor rax, rax
mov rdx, qword [0x0046b1d0]
mov edx, dword [rdx + 0x58]
sub edx, 1
cmp eax, edx
ja 0x44567c
add edx, 1
mov r8d, dword [0x0046b208]
shr r8d, 8
lea r9, [0x0044c608]
movzx r10, byte [rcx]
mov r11d, dword [0x0046b208]
and r11d, 0xff
xor r10d, r11d
mov r10d, r10d
xor r8d, dword [r9 + r10*4]
mov dword [0x0046b208], r8d
sub rcx, 1
add eax, 1
cmp eax, edx
jne 0x44563c
nop
mov eax, dword [0x0046b208]
cmp eax, dword [0x0046b20c]
je 0x4456bd
lea rcx, [rbp + 0x48]
lea rdx, [0x00440b60]
call fcn.0040eb30
mov rcx, qword [0x0044cdb8]
mov rdx, qword [rbp + 0x48]
call fcn.00407550
mov rcx, rax
call fcn.004076c0
call fcn.004055c0
jmp 0x445a7b
lea rcx, [rbp + 0x40]
call fcn.00426b30
mov rcx, qword [rbp + 0x40]
call fcn.0040b520
mov qword [0x0046b1c8], rax
mov rcx, qword [0x0046b1c8]
mov edx, 0x8000
call fcn.0043f390
mov dword [0x0046b1c4], eax
mov rcx, qword [0x0046b1c8]
call fcn.0040af20
mov dword [0x0046b1bc], eax
mov rax, qword [0x0044cdb0]
mov rcx, qword [rax]
call fcn.0040c580
mov dword [0x0046b1c0], eax
mov rcx, qword [0x0044cdb0]
mov rdx, qword [0x00426960]
mov r8d, 1
mov r9d, dword [0x0046b1c0]
add r9d, 1
movsxd r9, r9d
call fcn.0040c920
mov ecx, dword [0x0046b1bc]
lea rcx, [rcx + rcx*2]
movsxd rcx, ecx
call fcn.00405280
mov rcx, qword [0x0044cdb0]
mov rcx, qword [rcx]
movsxd rdx, dword [0x0046b1c0]
add rdx, rdx
lea rdx, [rdx + rdx*2]
mov qword [rcx + rdx*8], rax
mov rax, qword [0x0044cdb0]
mov rax, qword [rax]
movsxd rcx, dword [0x0046b1c0]
add rcx, rcx
lea rcx, [rcx + rcx*2]
mov rcx, qword [rax + rcx*8]
mov rdx, qword [0x0046b1c8]
call fcn.0041d630
mov rax, qword [0x0044cdb0]
mov rax, qword [rax]
movsxd rcx, dword [0x0046b1c0]
add rcx, rcx
lea rcx, [rcx + rcx*2]
mov edx, dword [0x0046b1c4]
mov dword [rax + rcx*8 + 8], edx
mov ecx, dword [0x0046b1c4]
call sub.msvcrt.dll__get_osfhandle
mov rcx, qword [0x0044cdb0]
mov rcx, qword [rcx]
movsxd rdx, dword [0x0046b1c0]
add rdx, rdx
lea rdx, [rdx + rdx*2]
mov qword [rcx + rdx*8 + 0x10], rax
mov rax, qword [0x0044cdb0]
mov rax, qword [rax]
movsxd rcx, dword [0x0046b1c0]
add rcx, rcx
lea rcx, [rcx + rcx*2]
mov rdx, qword [0x0046b1d0]
mov edx, dword [rdx + 0x58]
mov dword [rax + rcx*8 + 0x18], edx
mov rax, qword [0x0044cdb0]
mov rax, qword [rax]
movsxd rcx, dword [0x0046b1c0]
add rcx, rcx
lea rcx, [rcx + rcx*2]
movsxd rcx, dword [rax + rcx*8 + 0x18]
call fcn.00405280
mov rcx, qword [0x0044cdb0]
mov rcx, qword [rcx]
movsxd rdx, dword [0x0046b1c0]
add rdx, rdx
lea rdx, [rdx + rdx*2]
mov qword [rcx + rdx*8 + 0x20], rax
mov rax, qword [0x0046b1d0]
mov rcx, qword [rax + 0x50]
mov rax, qword [0x0044cdb0]
mov rax, qword [rax]
movsxd rdx, dword [0x0046b1c0]
add rdx, rdx
lea rdx, [rdx + rdx*2]
mov rdx, qword [rax + rdx*8 + 0x20]
mov rax, qword [0x0046b1d0]
movsxd r8, dword [rax + 0x58]
call fcn.00405650
mov rax, qword [0x0044cdb0]
mov rax, qword [rax]
movsxd rcx, dword [0x0046b1c0]
add rcx, rcx
lea rcx, [rcx + rcx*2]
mov rcx, qword [rax + rcx*8 + 0x20]
mov rax, qword [0x0046b1d0]
mov edx, dword [rax + 0x58]
call fcn.00427110
mov rax, qword [0x0044cdb0]
mov rax, qword [rax]
movsxd rcx, dword [0x0046b1c0]
add rcx, rcx
lea rcx, [rcx + rcx*2]
mov dword [rax + rcx*8 + 0x28], 0
mov rcx, qword [0x0046b1d0]
call fcn.00407c00
lea rcx, [rbp + 0x38]
lea rdx, [0x00440b20]
call fcn.0040eb30
mov rcx, qword [0x0044cdb8]
mov rdx, qword [rbp + 0x38]
call fcn.00407550
mov rcx, rax
call fcn.004076c0
call fcn.004055c0
lea rcx, [rbp + 0x30]
lea rdx, [0x00440b50]
call fcn.0040eb30
mov rcx, qword [0x0044cdb8]
mov rdx, qword [rbp + 0x30]
call fcn.00407550
mov rcx, rax
call fcn.004076c0
call fcn.004055c0
lea rcx, [rbp + 0x28]
lea rdx, [0x00440b20]
call fcn.0040eb30
mov rcx, qword [0x0044cdb8]
mov rdx, qword [rbp + 0x28]
call fcn.00407550
mov rcx, rax
call fcn.004076c0
call fcn.004055c0
lea rcx, [rbp + 0x20]
lea rdx, [0x00440b30]
call fcn.0040eb30
mov rcx, qword [0x0044cdb8]
mov rdx, qword [rbp + 0x20]
call fcn.00407550
mov rcx, rax
call fcn.004076c0
call fcn.004055c0
mov rcx, qword [0x0044d038]
call fcn.00406a10
call fcn.004055c0
call fcn.0043c410
mov rcx, qword [0x0044d188]
mov qword [rcx], rax
mov rax, qword [0x0044d188]
cmp qword [rax], 0
je 0x445a65
mov rcx, qword [0x0044d1d0]
call fcn.004266e0
test eax, eax
je 0x4459d2
mov ecx, 0xff
call fcn.0043d490
mov ecx, 1
mov rax, qword [0x0044d188]
mov edx, dword [rax]
mov rax, qword [0x0044ce60]
mov r8d, dword [rax]
call fcn.0042fd80
mov rcx, qword [0x0044d230]
mov qword [rcx], rax
mov rax, qword [0x0044d230]
cmp qword [rax], 1
jne 0x445a12
mov ecx, 1
call fcn.0043d490
mov rax, qword [0x0044d230]
cmp qword [rax], 0xffffffffffffffff
jne 0x445a27
xor rcx, rcx
call fcn.0043d490
xor rcx, rcx
mov rax, qword [0x0044d230]
mov rdx, qword [rax]
call fcn.00432950
mov rcx, qword [0x0044cc68]
mov word [rcx], ax
call fcn.004400a0
mov rax, qword [0x0044cc68]
movzx ecx, word [rax]
call fcn.0043d490
jmp 0x445a65
mov rcx, qword [0x0046b1d0]
call fcn.00407c00
xor rcx, rcx
call fcn.0043d490
mov rax, qword [0x0044cb40]
mov dword [rax], 0
nop
lea rcx, [rbp + 0x20]
mov edx, 6
call fcn.0040a940
call fcn.0040a510
jmp 0x445a99
lea rsp, [rbp + 0x50]
pop rbp
ret