Function at 0x14000ce00
Capabilities:
Generate random numbers via winapi
Get common file path
Read file on windows
Write file on windows

Disassembly:
sub rsp, 0x58
mov dword [0x140016de8], 0
mov dword [0x140016dec], 0
mov dword [0x140016df0], 0
mov dword [0x140016df4], 0
mov dword [0x140016df8], 0
mov dword [0x140016e08], 0
mov dword [0x140016dfc], 0
mov dword [0x140016e00], 0
mov dword [0x140016e04], 0
mov dword [0x140016e0c], 0
mov dword [0x140016e10], 0
mov dword [0x140016e14], 0
mov dword [0x140016e18], 0
mov dword [0x140016e1c], 0
mov dword [0x140016e20], 0
mov dword [0x140016e24], 0
mov dword [0x140016e28], 0
mov dword [0x140016e2c], 0
mov dword [0x140016e30], 0
mov dword [0x140016e34], 0
mov dword [0x140016e38], 0
mov dword [0x140016e3c], 0
mov dword [0x140016e40], 0
mov dword [0x140016e44], 0
mov dword [0x140016e48], 0
mov dword [0x140016e4c], 0
mov dword [rsp + 0x44], 0
mov qword [rsp + 0x48], 0
lea rax, [rsp + 0x48]
mov qword [rsp + 0x20], rax
mov r9d, 0x20019
xor r8d, r8d
mov rdx, qword [0x140013848]
mov rcx, 0xffffffff80000001
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [rsp + 0x44], eax
cmp dword [rsp + 0x44], 0
jne 0x14000c6a3
cmp qword [rsp + 0x48], 0
jne 0x14000c6aa
xor eax, eax
jmp 0x14000d201
mov dword [rsp + 0x3c], 0
mov dword [rsp + 0x38], 0
mov dword [rsp + 0x30], 0
mov eax, dword [rsp + 0x30]
mov dword [rsp + 0x34], eax
mov dword [rsp + 0x40], 4
lea rax, [rsp + 0x40]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x34]
xor r8d, r8d
lea rdx, [0x1400135a0]
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov dword [rsp + 0x3c], eax
cmp dword [rsp + 0x3c], 0
jne 0x14000c71e
cmp dword [rsp + 0x34], 4
jne 0x14000c71e
mov eax, dword [rsp + 0x30]
mov dword [0x140016de8], eax
jmp 0x14000c728
mov eax, dword [rsp + 0x38]
inc eax
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x30], 0
mov eax, dword [rsp + 0x30]
mov dword [rsp + 0x34], eax
mov dword [rsp + 0x40], 4
lea rax, [rsp + 0x40]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x34]
xor r8d, r8d
lea rdx, [0x1400135b0]
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov dword [rsp + 0x3c], eax
cmp dword [rsp + 0x3c], 0
jne 0x14000c78c
cmp dword [rsp + 0x34], 4
jne 0x14000c78c
mov eax, dword [rsp + 0x30]
mov dword [0x140016dec], eax
jmp 0x14000c796
mov eax, dword [rsp + 0x38]
inc eax
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x30], 0
mov eax, dword [rsp + 0x30]
mov dword [rsp + 0x34], eax
mov dword [rsp + 0x40], 4
lea rax, [rsp + 0x40]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x34]
xor r8d, r8d
lea rdx, [0x1400135c8]
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov dword [rsp + 0x3c], eax
cmp dword [rsp + 0x3c], 0
jne 0x14000c7fa
cmp dword [rsp + 0x34], 4
jne 0x14000c7fa
mov eax, dword [rsp + 0x30]
mov dword [0x140016df0], eax
jmp 0x14000c804
mov eax, dword [rsp + 0x38]
inc eax
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x30], 0
mov eax, dword [rsp + 0x30]
mov dword [rsp + 0x34], eax
mov dword [rsp + 0x40], 4
lea rax, [rsp + 0x40]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x34]
xor r8d, r8d
lea rdx, [0x1400135e0]
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov dword [rsp + 0x3c], eax
cmp dword [rsp + 0x3c], 0
jne 0x14000c868
cmp dword [rsp + 0x34], 4
jne 0x14000c868
mov eax, dword [rsp + 0x30]
mov dword [0x140016df4], eax
jmp 0x14000c872
mov eax, dword [rsp + 0x38]
inc eax
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x30], 0
mov eax, dword [rsp + 0x30]
mov dword [rsp + 0x34], eax
mov dword [rsp + 0x40], 4
lea rax, [rsp + 0x40]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x34]
xor r8d, r8d
lea rdx, [0x1400135f8]
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov dword [rsp + 0x3c], eax
cmp dword [rsp + 0x3c], 0
jne 0x14000c8d6
cmp dword [rsp + 0x34], 4
jne 0x14000c8d6
mov eax, dword [rsp + 0x30]
mov dword [0x140016df8], eax
jmp 0x14000c8e0
mov eax, dword [rsp + 0x38]
inc eax
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x30], 0
mov eax, dword [rsp + 0x30]
mov dword [rsp + 0x34], eax
mov dword [rsp + 0x40], 4
lea rax, [rsp + 0x40]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x34]
xor r8d, r8d
lea rdx, [0x140013610]
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov dword [rsp + 0x3c], eax
cmp dword [rsp + 0x3c], 0
jne 0x14000c944
cmp dword [rsp + 0x34], 4
jne 0x14000c944
mov eax, dword [rsp + 0x30]
mov dword [0x140016e08], eax
jmp 0x14000c94e
mov eax, dword [rsp + 0x38]
inc eax
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x30], 0
mov eax, dword [rsp + 0x30]
mov dword [rsp + 0x34], eax
mov dword [rsp + 0x40], 4
lea rax, [rsp + 0x40]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x34]
xor r8d, r8d
lea rdx, [0x140013620]
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov dword [rsp + 0x3c], eax
cmp dword [rsp + 0x3c], 0
jne 0x14000c9b2
cmp dword [rsp + 0x34], 4
jne 0x14000c9b2
mov eax, dword [rsp + 0x30]
mov dword [0x140016dfc], eax
jmp 0x14000c9bc
mov eax, dword [rsp + 0x38]
inc eax
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x30], 0
mov eax, dword [rsp + 0x30]
mov dword [rsp + 0x34], eax
mov dword [rsp + 0x40], 4
lea rax, [rsp + 0x40]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x34]
xor r8d, r8d
lea rdx, [0x140013630]
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov dword [rsp + 0x3c], eax
cmp dword [rsp + 0x3c], 0
jne 0x14000ca20
cmp dword [rsp + 0x34], 4
jne 0x14000ca20
mov eax, dword [rsp + 0x30]
mov dword [0x140016e00], eax
jmp 0x14000ca2a
mov eax, dword [rsp + 0x38]
inc eax
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x30], 0
mov eax, dword [rsp + 0x30]
mov dword [rsp + 0x34], eax
mov dword [rsp + 0x40], 4
lea rax, [rsp + 0x40]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x34]
xor r8d, r8d
lea rdx, [0x140013640]
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov dword [rsp + 0x3c], eax
cmp dword [rsp + 0x3c], 0
jne 0x14000ca8e
cmp dword [rsp + 0x34], 4
jne 0x14000ca8e
mov eax, dword [rsp + 0x30]
mov dword [0x140016e04], eax
jmp 0x14000ca98
mov eax, dword [rsp + 0x38]
inc eax
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x30], 0
mov eax, dword [rsp + 0x30]
mov dword [rsp + 0x34], eax
mov dword [rsp + 0x40], 4
lea rax, [rsp + 0x40]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x34]
xor r8d, r8d
lea rdx, [0x140013650]
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov dword [rsp + 0x3c], eax
cmp dword [rsp + 0x3c], 0
jne 0x14000cafc
cmp dword [rsp + 0x34], 4
jne 0x14000cafc
mov eax, dword [rsp + 0x30]
mov dword [0x140016e0c], eax
jmp 0x14000cb06
mov eax, dword [rsp + 0x38]
inc eax
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x30], 0
mov eax, dword [rsp + 0x30]
mov dword [rsp + 0x34], eax
mov dword [rsp + 0x40], 4
lea rax, [rsp + 0x40]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x34]
xor r8d, r8d
lea rdx, [0x140013668]
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov dword [rsp + 0x3c], eax
cmp dword [rsp + 0x3c], 0
jne 0x14000cb6a
cmp dword [rsp + 0x34], 4
jne 0x14000cb6a
mov eax, dword [rsp + 0x30]
mov dword [0x140016e10], eax
jmp 0x14000cb74
mov eax, dword [rsp + 0x38]
inc eax
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x30], 0
mov eax, dword [rsp + 0x30]
mov dword [rsp + 0x34], eax
mov dword [rsp + 0x40], 4
lea rax, [rsp + 0x40]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x34]
xor r8d, r8d
lea rdx, [0x140013680]
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov dword [rsp + 0x3c], eax
cmp dword [rsp + 0x3c], 0
jne 0x14000cbd8
cmp dword [rsp + 0x34], 4
jne 0x14000cbd8
mov eax, dword [rsp + 0x30]
mov dword [0x140016e14], eax
jmp 0x14000cbe2
mov eax, dword [rsp + 0x38]
inc eax
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x30], 0
mov eax, dword [rsp + 0x30]
mov dword [rsp + 0x34], eax
mov dword [rsp + 0x40], 4
lea rax, [rsp + 0x40]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x34]
xor r8d, r8d
lea rdx, [0x140013698]
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov dword [rsp + 0x3c], eax
cmp dword [rsp + 0x3c], 0
jne 0x14000cc46
cmp dword [rsp + 0x34], 4
jne 0x14000cc46
mov eax, dword [rsp + 0x30]
mov dword [0x140016e18], eax
jmp 0x14000cc50
mov eax, dword [rsp + 0x38]
inc eax
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x30], 0
mov eax, dword [rsp + 0x30]
mov dword [rsp + 0x34], eax
mov dword [rsp + 0x40], 4
lea rax, [rsp + 0x40]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x34]
xor r8d, r8d
lea rdx, [0x1400136b0]
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov dword [rsp + 0x3c], eax
cmp dword [rsp + 0x3c], 0
jne 0x14000ccb4
cmp dword [rsp + 0x34], 4
jne 0x14000ccb4
mov eax, dword [rsp + 0x30]
mov dword [0x140016e1c], eax
jmp 0x14000ccbe
mov eax, dword [rsp + 0x38]
inc eax
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x30], 0
mov eax, dword [rsp + 0x30]
mov dword [rsp + 0x34], eax
mov dword [rsp + 0x40], 4
lea rax, [rsp + 0x40]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x34]
xor r8d, r8d
lea rdx, [0x1400136c8]
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov dword [rsp + 0x3c], eax
cmp dword [rsp + 0x3c], 0
jne 0x14000cd22
cmp dword [rsp + 0x34], 4
jne 0x14000cd22
mov eax, dword [rsp + 0x30]
mov dword [0x140016e20], eax
jmp 0x14000cd2c
mov eax, dword [rsp + 0x38]
inc eax
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x30], 0
mov eax, dword [rsp + 0x30]
mov dword [rsp + 0x34], eax
mov dword [rsp + 0x40], 4
lea rax, [rsp + 0x40]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x34]
xor r8d, r8d
lea rdx, [0x1400136e0]
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov dword [rsp + 0x3c], eax
cmp dword [rsp + 0x3c], 0
jne 0x14000cd90
cmp dword [rsp + 0x34], 4
jne 0x14000cd90
mov eax, dword [rsp + 0x30]
mov dword [0x140016e24], eax
jmp 0x14000cd9a
mov eax, dword [rsp + 0x38]
inc eax
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x30], 0
mov eax, dword [rsp + 0x30]
mov dword [rsp + 0x34], eax
mov dword [rsp + 0x40], 4
lea rax, [rsp + 0x40]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x34]
xor r8d, r8d
lea rdx, [0x1400136f8]
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov dword [rsp + 0x3c], eax
cmp dword [rsp + 0x3c], 0
jne 0x14000cdfe
cmp dword [rsp + 0x34], 4
jne 0x14000cdfe
mov eax, dword [rsp + 0x30]
mov dword [0x140016e28], eax
jmp 0x14000ce08
mov eax, dword [rax + rcx*2 - 0x75]
invalid
add eax, dword [rax]
add byte [rbx], dh
div byte [rbx]
sal byte [rbx], cl
leave
mov dword [rax + 0x10], esi
mov dword [rax + 8], esi
lea r9d, [rsi + 2]
lea r8d, [rsi + 8]
call sub.bcrypt.dll_BCryptGenRandom
lea rdx, [rsp + 0x40]
mov ecx, 0x104
call qword [sym.imp.KERNEL32.dll_GetTempPathA]
test eax, eax
je 0x14000cfd5
mov eax, esi
nop
movzx ecx, byte [rsp + rax + 0x40]
mov byte [rsp + rax + 0x150], cl
lea rax, [rax + 1]
test cl, cl
jne 0x14000ce40
lea rdx, [rsp + 0x150]
dec rdx
nop
cmp byte [rdx + 1], sil
lea rdx, [rdx + 1]
jne 0x14000ce60
movsd xmm0, qword [str.results.tmp]
mov ecx, 0x104
mov eax, dword [0x140011148]
movsd qword [rdx], xmm0
mov dword [rdx + 8], eax
lea rdx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_GetTempPathA]
test eax, eax
je 0x14000cfd5
mov qword [rsp + 0x30], rsi
lea rcx, [rsp + 0x150]
mov dword [rsp + 0x28], 0x100
xor r9d, r9d
xor r8d, r8d
mov dword [rsp + 0x20], 2
mov edx, 0x40000000
mov qword [rsp + 0x380], rbx
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov rbx, rax
cmp rax, 0xffffffffffffffff
je 0x14000cfcd
mov qword [rsp + 0x388], rdi
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
xor r8d, r8d
mov rcx, rax
lea edx, [r8 + 8]
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov r9d, 2
xor r8d, r8d
mov rdx, rax
xor ecx, ecx
mov rdi, rax
call sub.bcrypt.dll_BCryptGenRandom
lea r9, [rsp + 0x370]
mov qword [rsp + 0x20], rsi
xor r8d, r8d
mov rdx, rdi
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x14000cfc5
cmp dword [rsp + 0x370], esi
jne 0x14000cfc5
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rsp + 0x30], rsi
lea rcx, [rsp + 0x150]
mov dword [rsp + 0x28], 0x4000100
xor r9d, r9d
xor r8d, r8d
mov dword [rsp + 0x20], 3
mov edx, 0x80000000
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov rbx, rax
cmp rax, 0xffffffffffffffff
je 0x14000cfc5
lea r9, [rsp + 0x378]
mov qword [rsp + 0x20], rsi
xor r8d, r8d
mov rdx, rdi
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x14000cfc5
cmp dword [rsp + 0x378], esi
jne 0x14000cfc5
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rdi
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rdi, qword [rsp + 0x388]
mov rbx, qword [rsp + 0x380]
add rsp, 0x360
pop rsi
ret
invalid