Function at 0x140024210
Capabilities:
Create new key via cryptacquirecontext
Hash data via wincrypt
Hash data with md5
Initialize hashing via wincrypt
Set file attributes
Write file on windows

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x200]
sub rsp, 0x300
mov rax, qword [0x14015a038]
xor rax, rsp
mov qword [rbp + 0x1f0], rax
mov rbx, r8
mov word [rsp + 0x58], dx
mov r13, rcx
mov qword [rbp - 0x38], rcx
xor eax, eax
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x50], rax
lea r8, [rsp + 0x30]
lea edx, [rax + 8]
lea rcx, [rsp + 0x38]
call fcn.140019c40
mov r15, qword [rsp + 0x38]
mov rax, qword [rsp + 0x50]
mov dword [r15 + rax], 2
lea rsi, [rax + 4]
mov qword [rsp + 0x50], rsi
mov r12, rbx
cmp qword [rbx + 0x18], 8
jb 0x14002429f
mov r12, qword [rbx]
mov rax, qword [rbx + 0x10]
lea r14, [rax*2 + 2]
mov rdi, qword [rsp + 0x40]
mov rcx, rdi
sub rcx, r15
lea rax, [rsi + r14]
cmp rax, rcx
jbe 0x14002432b
mov rax, rsi
sub rax, rcx
add rax, r14
lea rdx, [rdi + rax*2]
mov rbx, rdx
sub rbx, r15
cmp rbx, rcx
jae 0x1400242e1
mov rdi, rdx
mov qword [rsp + 0x40], rdx
jmp 0x14002432b
jbe 0x14002432b
mov rax, qword [rsp + 0x48]
sub rax, r15
cmp rbx, rax
jbe 0x140024313
lea r8, [rsp + 0x30]
mov rdx, rbx
lea rcx, [rsp + 0x38]
call fcn.140019c40
mov rsi, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x40]
mov r15, qword [rsp + 0x38]
jmp 0x14002432b
sub rbx, rcx
mov r8, rbx
xor edx, edx
mov rcx, rdi
call fcn.14009e4c0
add rdi, rbx
mov qword [rsp + 0x40], rdi
lea rcx, [r15 + rsi]
mov r8, r14
mov rdx, r12
call fcn.14009de10
add r14, rsi
mov qword [rsp + 0x50], r14
mov esi, dword [r13 + 8]
mov rcx, rdi
sub rcx, r15
lea rax, [r14 + 4]
cmp rax, rcx
jbe 0x1400243c2
mov rdx, r14
sub rdx, rcx
add rdx, 4
lea rdx, [rdi + rdx*2]
mov rbx, rdx
sub rbx, r15
cmp rbx, rcx
jae 0x140024378
mov rdi, rdx
mov qword [rsp + 0x40], rdx
jmp 0x1400243c2
jbe 0x1400243c2
mov rax, qword [rsp + 0x48]
sub rax, r15
cmp rbx, rax
jbe 0x1400243aa
lea r8, [rsp + 0x30]
mov rdx, rbx
lea rcx, [rsp + 0x38]
call fcn.140019c40
mov r14, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x40]
mov r15, qword [rsp + 0x38]
jmp 0x1400243c2
sub rbx, rcx
mov r8, rbx
xor edx, edx
mov rcx, rdi
call fcn.14009e4c0
add rdi, rbx
mov qword [rsp + 0x40], rdi
mov dword [r15 + r14], esi
add r14, 4
mov qword [rsp + 0x50], r14
mov rax, qword [r13]
mov rbx, qword [rax]
cmp rax, rbx
je 0x14002462c
nop
lea r13, [rbx + 0x20]
cmp qword [rbx + 0x38], 8
jb 0x1400243ef
mov r13, qword [rbx + 0x20]
mov rax, qword [rbx + 0x30]
lea r12, [rax*2 + 2]
mov rcx, rdi
sub rcx, r15
lea rax, [r12 + r14]
cmp rax, rcx
jbe 0x140024472
mov rax, r12
sub rax, rcx
add rax, r14
lea rsi, [rax + rax]
sub rsi, r15
add rsi, rdi
cmp rsi, rcx
jae 0x140024428
lea rdi, [rsi + r15]
jmp 0x14002446d
jbe 0x140024472
mov rax, qword [rsp + 0x48]
sub rax, r15
cmp rsi, rax
jbe 0x14002445a
lea r8, [rsp + 0x30]
mov rdx, rsi
lea rcx, [rsp + 0x38]
call fcn.140019c40
mov r14, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x40]
mov r15, qword [rsp + 0x38]
jmp 0x140024472
sub rsi, rcx
mov r8, rsi
xor edx, edx
mov rcx, rdi
call fcn.14009e4c0
add rdi, rsi
mov qword [rsp + 0x40], rdi
lea rcx, [r15 + r14]
mov r8, r12
mov rdx, r13
call fcn.14009de10
add r14, r12
mov qword [rsp + 0x50], r14
mov r13, qword [rbx + 0x48]
sub r13, qword [rbx + 0x40]
mov rcx, rdi
sub rcx, r15
lea rax, [r14 + 4]
cmp rax, rcx
jbe 0x140024509
mov rax, r14
sub rax, rcx
lea rsi, [rax*2 + 8]
sub rsi, r15
add rsi, rdi
cmp rsi, rcx
jae 0x1400244bf
lea rdi, [rsi + r15]
jmp 0x140024504
jbe 0x140024509
mov rax, qword [rsp + 0x48]
sub rax, r15
cmp rsi, rax
jbe 0x1400244f1
lea r8, [rsp + 0x30]
mov rdx, rsi
lea rcx, [rsp + 0x38]
call fcn.140019c40
mov r14, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x40]
mov r15, qword [rsp + 0x38]
jmp 0x140024509
sub rsi, rcx
mov r8, rsi
xor edx, edx
mov rcx, rdi
call fcn.14009e4c0
add rdi, rsi
mov qword [rsp + 0x40], rdi
mov dword [r15 + r14], r13d
add r14, 4
mov qword [rsp + 0x50], r14
test r13d, r13d
je 0x1400245d3
xor r12d, r12d
mov r13d, r13d
nop word [rax + rax]
mov rax, qword [rbx + 0x40]
movzx eax, byte [r12 + rax]
mov byte [rsp + 0x30], al
mov rcx, rdi
sub rcx, r15
lea rax, [r14 + 1]
cmp rax, rcx
jbe 0x1400245b5
mov rax, r14
sub rax, rcx
lea rsi, [rax*2 + 2]
sub rsi, r15
add rsi, rdi
cmp rsi, rcx
jae 0x14002456b
lea rdi, [rsi + r15]
jmp 0x1400245b0
jbe 0x1400245b5
mov rax, qword [rsp + 0x48]
sub rax, r15
cmp rsi, rax
jbe 0x14002459d
lea r8, [rsp + 0x31]
mov rdx, rsi
lea rcx, [rsp + 0x38]
call fcn.140019c40
mov r14, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x40]
mov r15, qword [rsp + 0x38]
jmp 0x1400245b5
sub rsi, rcx
mov r8, rsi
xor edx, edx
mov rcx, rdi
call fcn.14009e4c0
add rdi, rsi
mov qword [rsp + 0x40], rdi
movzx eax, byte [rsp + 0x30]
mov byte [r15 + r14], al
inc r14
mov qword [rsp + 0x50], r14
inc r12
sub r13, 1
jne 0x140024530
mov rax, qword [rbx + 0x10]
cmp byte [rax + 0x19], 0
je 0x1400245ff
mov rax, qword [rbx + 8]
cmp byte [rax + 0x19], 0
jne 0x1400245fa
cmp rbx, qword [rax + 0x10]
jne 0x1400245fa
mov rbx, rax
mov rax, qword [rax + 8]
cmp byte [rax + 0x19], 0
je 0x1400245e7
mov rbx, rax
jmp 0x14002461f
mov rbx, rax
mov rcx, qword [rax]
cmp byte [rcx + 0x19], 0
jne 0x14002461f
nop dword [rax + rax]
mov rbx, rcx
mov rax, qword [rcx]
mov rcx, rax
cmp byte [rax + 0x19], 0
je 0x140024610
mov rax, qword [rbp - 0x38]
cmp qword [rax], rbx
jne 0x1400243e0
mov rcx, rdi
sub rcx, r15
lea rax, [rcx - 4]
and eax, 7
jbe 0x14002469a
mov byte [rsp + 0x30], 0
mov rbx, rcx
sub rbx, rax
add rbx, 8
cmp rbx, rcx
jae 0x140024655
lea rdi, [rbx + r15]
jmp 0x140024695
jbe 0x14002469a
mov rax, qword [rsp + 0x48]
sub rax, r15
cmp rbx, rax
jbe 0x140024682
lea r8, [rsp + 0x30]
mov rdx, rbx
lea rcx, [rsp + 0x38]
call fcn.140025db0
mov rdi, qword [rsp + 0x40]
mov r15, qword [rsp + 0x38]
jmp 0x14002469a
sub rbx, rcx
mov r8, rbx
xor edx, edx
mov rcx, rdi
call fcn.14009e4c0
add rdi, rbx
mov qword [rsp + 0x40], rdi
xor ebx, ebx
mov qword [rbp - 0x58], rbx
movdqa xmm0, xmmword [0x14013a430]
movdqu xmmword [rbp - 0x48], xmm0
mov byte [rbp - 0x58], bl
mov dword [rbp - 0x38], 0x34536b31
mov dword [rbp - 0x34], 0xf3f5537e
mov word [rbp - 0x30], 0xe9
lea rax, [rbp - 0x38]
mov r8, 0xffffffffffffffff
nop
inc r8
cmp byte [rax + r8], 0
jne 0x1400246d0
lea rdx, [rbp - 0x38]
lea rcx, [rbp - 0x58]
call fcn.140011ad0
mov qword [rbp - 0x60], rbx
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x60], xmm0
mov qword [rsp + 0x70], rbx
mov qword [rbp - 0x38], rbx
cmp r15, rdi
je 0x1400248af
mov dword [rsp + 0x20], 0xf0000008
mov r9d, 1
xor r8d, r8d
xor edx, edx
lea rcx, [rbp - 0x60]
call qword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
test eax, eax
jne 0x140024793
mov dword [rsp + 0x20], ebx
lea r9d, [rax + 1]
xor r8d, r8d
lea rdx, str.Spreadsheet_Tools
lea rcx, [rbp - 0x60]
call qword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
test eax, eax
jne 0x140024793
mov dword [rsp + 0x20], 8
lea r9d, [rax + 1]
xor r8d, r8d
lea rdx, str.Spreadsheet_Tools
lea rcx, [rbp - 0x60]
call qword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
test eax, eax
jne 0x140024793
mov dword [rsp + 0x20], 0x20
lea r9d, [rax + 1]
xor r8d, r8d
lea rdx, str.Spreadsheet_Tools
lea rcx, [rbp - 0x60]
call qword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
test eax, eax
je 0x14002482d
lea rax, [rbp - 0x38]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
mov edx, 0x8003
mov rcx, qword [rbp - 0x60]
call qword [sym.imp.ADVAPI32.dll_CryptCreateHash]
test eax, eax
je 0x14002482d
sub rdi, r15
xor r9d, r9d
mov r8d, edi
mov rdx, r15
mov rcx, qword [rbp - 0x38]
call qword [sym.imp.ADVAPI32.dll_CryptHashData]
test eax, eax
je 0x14002481c
mov dword [rbp - 0x68], reloc.WS2_32.dll_recv
lea r8, [rsp + 0x31]
mov edx, reloc.WS2_32.dll_recv
lea rcx, [rsp + 0x60]
call fcn.140019c40
mov dword [rsp + 0x20], ebx
lea r9, [rbp - 0x68]
mov r12, qword [rsp + 0x60]
mov r8, r12
mov edx, 2
mov rcx, qword [rbp - 0x38]
call qword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
test eax, eax
je 0x140024821
mov rcx, qword [rbp - 0x38]
call qword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
jmp 0x1400248b4
mov r12, qword [rsp + 0x60]
mov rcx, qword [rbp - 0x38]
call qword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
jmp 0x140024832
mov r12, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x68]
mov rcx, rdi
sub rcx, r12
cmp rcx, 1
jbe 0x140024854
lea rdi, [r12 + 1]
mov qword [rsp + 0x68], rdi
mov byte [r12], reloc.OLEAUT32.dll_SafeArrayUnaccessData
jmp 0x1400248b9
jae 0x1400248a8
mov rax, qword [rsp + 0x70]
sub rax, r12
cmp rax, 1
jae 0x140024889
lea r8, [rsp + 0x31]
mov edx, 1
lea rcx, [rsp + 0x60]
call fcn.140019c40
mov rdi, qword [rsp + 0x68]
mov r12, qword [rsp + 0x60]
mov byte [r12], reloc.OLEAUT32.dll_SafeArrayUnaccessData
jmp 0x1400248b9
mov ebx, 1
sub rbx, rcx
mov r8, rbx
xor edx, edx
mov rcx, rdi
call fcn.14009e4c0
add rdi, rbx
xor ebx, ebx
mov qword [rsp + 0x68], rdi
mov byte [r12], reloc.OLEAUT32.dll_SafeArrayUnaccessData
jmp 0x1400248b9
mov r12, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x68]
mov qword [rsp + 0x78], rbx
mov qword [rbp - 0x80], rbx
mov qword [rbp - 0x78], rbx
mov qword [rbp - 0x70], rbx
sub rdi, r12
lea r8, [rsp + 0x31]
mov edx, 8
lea rcx, [rsp + 0x78]
call fcn.140019c40
mov rsi, qword [rsp + 0x78]
mov r14, qword [rbp - 0x70]
mov dword [rsi + r14], edi
add r14, 4
mov qword [rbp - 0x70], r14
test edi, edi
je 0x1400249b1
mov r13, r12
mov r15d, edi
mov rdi, qword [rbp - 0x80]
nop dword [rax + rax]
movzx eax, byte [r13]
mov byte [rsp + 0x30], al
mov rcx, rdi
sub rcx, rsi
lea rax, [r14 + 1]
cmp rax, rcx
jbe 0x14002498d
mov rax, r14
sub rax, rcx
lea rbx, [rax*2 + 2]
sub rbx, rsi
add rbx, rdi
cmp rbx, rcx
jae 0x140024947
lea rdi, [rsi + rbx]
jmp 0x140024989
jbe 0x14002498d
mov rax, qword [rbp - 0x78]
sub rax, rsi
cmp rbx, rax
jbe 0x140024976
lea r8, [rsp + 0x31]
mov rdx, rbx
lea rcx, [rsp + 0x78]
call fcn.140019c40
mov r14, qword [rbp - 0x70]
mov rdi, qword [rbp - 0x80]
mov rsi, qword [rsp + 0x78]
jmp 0x14002498d
sub rbx, rcx
mov r8, rbx
xor edx, edx
mov rcx, rdi
call fcn.14009e4c0
add rdi, rbx
mov qword [rbp - 0x80], rdi
movzx eax, byte [rsp + 0x30]
mov byte [rsi + r14], al
inc r14
mov qword [rbp - 0x70], r14
inc r13
sub r15, 1
jne 0x140024910
mov r15, qword [rsp + 0x38]
jmp 0x1400249b5
mov rdi, qword [rbp - 0x80]
movzx eax, byte [rsp + 0x31]
mov byte [rsp + 0x20], al
mov r9, rdi
mov r8, rsi
mov rdx, r15
lea rcx, [rsp + 0x38]
call fcn.1400259d0
nop
test rsi, rsi
je 0x140024a0c
mov rdx, qword [rbp - 0x78]
sub rdx, rsi
mov rax, rsi
cmp rdx, 0x1000
jb 0x140024a03
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140024ba8
mov rcx, rsi
call fcn.14009b510
nop
test r12, r12
je 0x140024a47
mov rdx, qword [rsp + 0x70]
sub rdx, r12
mov rax, r12
cmp rdx, 0x1000
jb 0x140024a3f
add rdx, 0x27
mov r12, qword [r12 - 8]
sub rax, r12
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140024bae
mov rcx, r12
call fcn.14009b510
lea rdx, [rsp + 0x38]
lea rcx, [rbp - 0x60]
call fcn.1400376a0
movzx eax, word [rsp + 0x58]
mov word [rbp - 0x20], ax
movups xmm0, xmmword [str.:lockxls.data]
movups xmmword [rbp - 0x1e], xmm0
movsd xmm1, qword [0x1401361d0]
movsd qword [rbp - 0xe], xmm1
mov eax, dword [0x1401361d8]
mov dword [rbp - 6], eax
movzx eax, word [0x1401361dc]
mov word [rbp - 2], ax
mov edx, 0x80
lea rcx, [rbp - 0x20]
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea rdx, [0x1401361b8]
lea rcx, [rbp - 0x20]
call fcn.1400af750
mov rdi, rax
mov rbx, qword [rsp + 0x38]
test rax, rax
je 0x140024aef
mov r8, qword [rsp + 0x40]
cmp rbx, r8
je 0x140024ad3
sub r8, rbx
mov r9, rax
mov edx, 1
mov rcx, rbx
call fcn.1400d8a9c
mov rcx, rdi
call fcn.1400d8734
mov edx, 0x82
lea rcx, [rbp - 0x20]
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov dil, 1
jmp 0x140024af2
xor dil, dil
mov rdx, qword [rbp - 0x40]
cmp rdx, 0x10
jb 0x140024b2d
inc rdx
mov rcx, qword [rbp - 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140024b28
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140024bb4
call fcn.14009b510
movdqa xmm0, xmmword [0x14013a430]
movdqu xmmword [rbp - 0x48], xmm0
mov byte [rbp - 0x58], 0
test rbx, rbx
je 0x140024b74
mov rdx, qword [rsp + 0x48]
sub rdx, rbx
mov rax, rbx
cmp rdx, 0x1000
jb 0x140024b6c
add rdx, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140024ba2
mov rcx, rbx
call fcn.14009b510
movzx eax, dil
mov rcx, qword [rbp + 0x1f0]
xor rcx, rsp
call fcn.14009b5b0
mov rbx, qword [rsp + 0x348]
add rsp, 0x300
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.1400ac408
nop
call fcn.1400ac408
nop
call fcn.1400ac408
nop
call fcn.1400ac408
int3