Function at 0x14000edc0
Capabilities:
Write file on windows

Disassembly:
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x40
mov esi, ecx
mov byte [rsp + 0x30], 0x27
mov ecx, 0xfffffff4
call fcn.14005f988
mov rdi, rax
mov rcx, rax
mov edx, 1
xor r8d, r8d
call sub.KERNEL32.dll_SetHandleInformation
mov dword [rsp + 0x2c], 0
mov qword [rsp + 0x20], 0
lea rdx, [rsp + 0x30]
lea r9, [rsp + 0x2c]
mov rcx, rdi
mov r8d, 1
call sub.KERNEL32.dll_WriteFile
cmp dword [rsp + 0x2c], 0
je 0x14000ee22
test eax, eax
jne 0x14000ee27
call sub.KERNEL32.dll_GetLastError
lea eax, [rsi - 7]
cmp eax, 0x14
ja case.0x14000ee41.14
lea rcx, [0x14007f690]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
jmp rax
lea rcx, [0x14008ca60]
call fcn.14000ec70
jmp 0x14000efd0
lea rcx, [0x14008ca70]
call fcn.14000ec70
jmp 0x14000efd0
lea rcx, [0x14008cac0]
call fcn.14000ec70
jmp 0x14000efd0
lea rcx, [0x14008caa0]
call fcn.14000ec70
jmp 0x14000efd0
lea rcx, [0x14008cad0]
call fcn.14000ec70
jmp 0x14000efd0
lea rcx, [0x14008ca90]
call fcn.14000ec70
jmp 0x14000efd0
lea rcx, [0x14008cab0]
call fcn.14000ec70
jmp 0x14000efd0
test esi, esi
jle 0x14000ef5e
cmp esi, 0x1f
ja 0x14000ef6c
movzx edi, sil
shr edi, 4
and esi, 0xf
lea rcx, [0x14008ca38]
call fcn.14000ec70
lea rbx, str.0123456789abcdefghijklmnopqrstuvwxyz
movzx eax, byte [rdi + rbx]
mov byte [rsp + 0x30], al
mov ecx, 0xfffffff4
call fcn.14005f988
mov rdi, rax
mov rcx, rax
mov edx, 1
xor r8d, r8d
call sub.KERNEL32.dll_SetHandleInformation
mov dword [rsp + 0x2c], 0
mov qword [rsp + 0x20], 0
lea rdx, [rsp + 0x30]
lea r9, [rsp + 0x2c]
mov rcx, rdi
mov r8d, 1
call sub.KERNEL32.dll_WriteFile
cmp dword [rsp + 0x2c], 0
je 0x14000ef41
test eax, eax
jne 0x14000ef46
call sub.KERNEL32.dll_GetLastError
movzx eax, byte [rsi + rbx]
mov byte [rsp + 0x30], al
jmp 0x14000ef7a
lea rcx, [0x14008ca80]
call fcn.14000ec70
jmp 0x14000efd0
lea rcx, str.x00
call fcn.14000ec70
jmp 0x14000efd0
cmp esi, 0x7f
ja 0x14000f037
mov byte [rsp + 0x30], sil
mov ecx, 0xfffffff4
call fcn.14005f988
mov rsi, rax
mov rcx, rax
mov edx, 1
xor r8d, r8d
call sub.KERNEL32.dll_SetHandleInformation
mov dword [rsp + 0x2c], 0
mov qword [rsp + 0x20], 0
lea rdx, [rsp + 0x30]
lea r9, [rsp + 0x2c]
mov rcx, rsi
mov r8d, 1
call sub.KERNEL32.dll_WriteFile
cmp dword [rsp + 0x2c], 0
je 0x14000efcb
test eax, eax
jne 0x14000efd0
call sub.KERNEL32.dll_GetLastError
mov byte [rsp + 0x30], 0x27
mov ecx, 0xfffffff4
call fcn.14005f988
mov rsi, rax
mov rcx, rax
mov edx, 1
xor r8d, r8d
call sub.KERNEL32.dll_SetHandleInformation
mov dword [rsp + 0x2c], 0
mov qword [rsp + 0x20], 0
lea rdx, [rsp + 0x30]
lea r9, [rsp + 0x2c]
mov rcx, rsi
mov r8d, 1
call sub.KERNEL32.dll_WriteFile
cmp dword [rsp + 0x2c], 0
je 0x14000f026
test eax, eax
jne 0x14000f02b
call sub.KERNEL32.dll_GetLastError
nop
add rsp, 0x40
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
ret
cmp esi, 0x7ff
ja 0x14000f052
mov ecx, esi
shr ecx, 6
or cl, 0xc0
mov ebx, 2
xor eax, eax
xor edx, edx
jmp 0x14000f0bc
mov eax, esi
and eax, 0xfffff800
cmp eax, 0xd800
mov ecx, 0xfffd
mov eax, esi
cmove eax, ecx
cmp esi, 0x110000
cmovae eax, ecx
mov ecx, eax
cmp esi, 0xffff
ja 0x14000f093
shr ecx, 0xc
or cl, 0xe0
mov esi, eax
shr esi, 6
and al, 0x3f
or al, 0x80
mov ebx, 3
xor edx, edx
jmp 0x14000f0bc
shr ecx, 0x12
or cl, 0xf0
mov esi, eax
shr esi, 0xc
mov r8d, eax
shr r8d, 6
and r8b, 0x3f
or r8b, 0x80
and al, 0x3f
mov edx, eax
or dl, 0x80
mov ebx, 4
mov eax, r8d
and sil, 0x3f
or sil, 0x80
mov byte [rsp + 0x30], cl
mov byte [rsp + 0x31], sil
mov byte [rsp + 0x32], al
mov byte [rsp + 0x33], dl
mov ecx, 0xfffffff4
call fcn.14005f988
mov rsi, rax
xor r14d, r14d
mov rcx, rax
mov edx, 1
xor r8d, r8d
call sub.KERNEL32.dll_SetHandleInformation
mov dword [rsp + 0x2c], 0
mov ebp, 0x40000000
lea rdi, [rsp + 0x2c]
nop word [rax + rax]
mov r8d, ebx
sub r8d, r14d
cmp r8d, 0x40000000
cmovge r8d, ebp
lea rdx, [rsp + r14]
add rdx, 0x30
mov qword [rsp + 0x20], 0
mov rcx, rsi
mov r9, rdi
call sub.KERNEL32.dll_WriteFile
mov ecx, dword [rsp + 0x2c]
test rcx, rcx
je 0x14000efcb
test eax, eax
je 0x14000efcb
add r14, rcx
cmp r14, rbx
jl 0x14000f110
jmp 0x14000efd0