Function at 0x100bfebf
Capabilities:
Read file on windows
Write file on windows

Disassembly:
push 0x8c
mov eax, 0x10123183
call fcn.10003d4a
mov eax, dword [ebp + 8]
push eax
mov dword [ebp - 0x28], eax
call fcn.1003a42b
mov ebx, dword [ebp + 0x18]
mov edi, eax
mov esi, dword [ebp + 0x1c]
mov ecx, ebx
and ecx, esi
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x2c], esi
cmp ecx, 0xffffffff
jne 0x100bff01
mov ebx, edi
mov esi, edx
sub ebx, dword [ebp + 0x10]
mov dword [ebp - 0x34], ebx
sbb esi, dword [ebp + 0x14]
mov dword [ebp - 0x2c], esi
mov ecx, ebx
mov eax, esi
add ecx, dword [ebp + 0x10]
adc eax, dword [ebp + 0x14]
cmp eax, edx
jb 0x100bff24
ja 0x100bff15
cmp ecx, edi
jbe 0x100bff24
push 0x80070057
push 0x1e61a7a1
call fcn.100ba828
mov eax, ebx
or eax, esi
je 0x100c0350
cmp dword [ebp + 0xc], 1
jne 0x100bff41
lea eax, [ebp - 0x3c]
push eax
push esi
push ebx
call fcn.1003a42b
jmp 0x100bff89
test esi, esi
jne 0x100bff7a
cmp ebx, 0xc0000
ja 0x100bff7a
test esi, esi
jne 0x100bff73
cmp ebx, 0x30000
ja 0x100bff73
test esi, esi
jne 0x100bff6c
cmp ebx, 0x6000
ja 0x100bff6c
mov eax, 0x180
jmp 0x100bff7f
mov eax, 0xc00
jmp 0x100bff7f
mov eax, 0x6000
jmp 0x100bff7f
mov eax, 0x30000
lea ecx, [ebp - 0x3c]
push ecx
push eax
call fcn.1003a42b
mov esi, dword [ebp - 0x3c]
lea ecx, [ebp - 0x14]
and dword [ebp - 0x14], 0
mov edi, esi
push 0
push esi
push 0x11
mov dword [ebp - 0x24], esi
call fcn.1003a42b
mov eax, dword [ebp + 0xc]
and dword [ebp - 4], 0
sub eax, 0
je 0x100c0341
sub eax, 1
je 0x100c00b2
sub eax, 1
je 0x100bffdd
sub eax, 1
je 0x100c00de
push 0x80070057
push 0x1e61a79e
call fcn.100ba828
jmp 0x100c00de
push dword [ebp - 0x14]
lea eax, [ebp - 0x60]
push eax
call fcn.1003a42b
mov cl, byte [ebp + 0x28]
mov eax, dword [ebp - 0x5c]
mov byte [eax], cl
lea ecx, [ebp - 0x60]
call fcn.100bf938
push dword [ebp - 0x14]
lea eax, [ebp - 0x68]
push eax
call fcn.1003a42b
mov cl, byte [ebp + 0x2c]
mov eax, dword [ebp - 0x64]
mov byte [eax + 1], cl
lea ecx, [ebp - 0x68]
call fcn.100bf938
push dword [ebp - 0x14]
lea eax, [ebp - 0x70]
push eax
call fcn.1003a42b
mov cl, byte [ebp + 0x30]
mov eax, dword [ebp - 0x6c]
mov byte [eax + 2], cl
lea ecx, [ebp - 0x70]
call fcn.100bf938
push 3
pop edi
cmp dword [ebp - 0x24], edi
jbe 0x100c00a0
push dword [ebp - 0x14]
lea eax, [ebp - 0x4c]
push eax
call fcn.1003a42b
mov esi, dword [ebp - 0x48]
lea eax, [ebp - 0x30]
and dword [ebp - 0x30], 0
push eax
lea eax, [ebp - 0x58]
mov byte [ebp - 4], 2
push eax
lea eax, [ebp - 0x24]
mov dword [ebp - 0x58], edi
push eax
call fcn.1003a42b
push dword [ebp - 0x14]
lea eax, [ebp - 0x78]
push eax
call fcn.1003a42b
mov eax, dword [ebp - 0x74]
push edi
push esi
push dword [ebp - 0x30]
add eax, edi
push eax
call fcn.1003a42b
add esp, 0x10
lea ecx, [ebp - 0x78]
call fcn.100bf938
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 0
call fcn.100bf938
add edi, edi
cmp dword [ebp - 0x24], edi
ja 0x100c003b
mov byte [ebp + 0x30], 0
mov al, byte [ebp + 0x30]
mov byte [ebp + 0x2c], al
mov al, byte [ebp + 0x2c]
mov byte [ebp + 0x28], al
jmp 0x100c00db
push dword [ebp - 0x14]
lea eax, [ebp - 0x40]
push eax
call fcn.1003a42b
movzx eax, byte [ebp + 0x28]
push edi
push eax
push dword [ebp - 0x3c]
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea ecx, [ebp - 0x40]
call fcn.100bf938
mov byte [ebp + 0x28], 0
mov esi, dword [ebp - 0x24]
xor edi, edi
mov dword [ebp - 0x38], edi
cmp byte [ebp + 0x20], 0
mov byte [ebp - 4], 3
je 0x100c00fc
push edi
push esi
push 0x11
lea ecx, [ebp - 0x38]
call fcn.1003a42b
mov edi, dword [ebp - 0x38]
push 0
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp - 0x28]
call fcn.1003a42b
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x50], eax
push esi
push eax
push ebx
call fcn.1003a42b
test al, al
je 0x100c0126
mov dword [ebp - 0x24], esi
jmp 0x100c0139
lea eax, [ebp - 0x44]
push eax
push dword [ebp - 0x2c]
push ebx
call fcn.1003a42b
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x24], eax
cmp dword [ebp + 0xc], 3
jne 0x100c014a
push 0
lea eax, [ebp - 0x14]
push eax
call fcn.100ad174
cmp byte [ebp + 0x20], 0
xorps xmm0, xmm0
movlpd qword [ebp - 0x4c], xmm0
je 0x100c016b
push 1
push 0
push 0
push dword [ebp - 0x28]
call fcn.1003a42b
mov dword [ebp - 0x30], edx
jmp 0x100c0174
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x4c]
push dword [ebp - 0x14]
mov dword [ebp - 0x3c], eax
lea eax, [ebp - 0x80]
push eax
call fcn.1003a42b
push 0
lea eax, [ebp - 0x18]
push eax
push dword [ebp - 0x24]
push dword [ebp - 0x7c]
push dword [ebp - 0x28]
call dword [sym.imp.kernel32.dll_WriteFile]
test eax, eax
je 0x100c01a8
mov eax, dword [ebp - 0x24]
mov byte [ebp - 0x1d], 0
cmp eax, dword [ebp - 0x18]
je 0x100c01ac
mov byte [ebp - 0x1d], 1
lea ecx, [ebp - 0x80]
call fcn.100bf938
cmp byte [ebp - 0x1d], 0
je 0x100c01d9
call dword [sym.imp.kernel32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
cmovle ecx, eax
push ecx
push 0x1e61a79d
call fcn.100ba828
cmp byte [ebp + 0x20], 0
je 0x100c02c4
push 0
push dword [ebp - 0x30]
push dword [ebp - 0x3c]
push dword [ebp - 0x28]
call fcn.1003a42b
push edi
lea eax, [ebp - 0x88]
push eax
call fcn.1003a42b
mov ebx, dword [ebp - 0x24]
lea eax, [ebp - 0x1c]
push 0
push eax
push ebx
push dword [ebp - 0x84]
push dword [ebp - 0x28]
call dword [sym.imp.kernel32.dll_ReadFile]
test eax, eax
je 0x100c0226
mov byte [ebp - 0x1d], 0
cmp ebx, dword [ebp - 0x1c]
je 0x100c022a
mov byte [ebp - 0x1d], 1
lea ecx, [ebp - 0x88]
call fcn.100bf938
cmp byte [ebp - 0x1d], 0
je 0x100c025a
call dword [sym.imp.kernel32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
cmovle ecx, eax
push ecx
push 0x1e61a79c
call fcn.100ba828
push edi
lea eax, [ebp - 0x98]
push eax
call fcn.1003a42b
push dword [ebp - 0x14]
lea eax, [ebp - 0x90]
mov byte [ebp - 4], 4
push eax
call fcn.1003a42b
push ebx
push dword [ebp - 0x94]
push dword [ebp - 0x8c]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
lea ecx, [ebp - 0x90]
test eax, eax
sete bl
call fcn.100bf938
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 3
call fcn.100bf938
test bl, bl
jne 0x100c02c1
push 0x80004005
push 0x1e61a79b
call fcn.100ba828
mov ebx, dword [ebp - 0x34]
push esi
push dword [ebp - 0x2c]
push ebx
call fcn.1003a42b
test al, al
jne 0x100c02ed
push esi
lea eax, [ebp - 0x54]
push eax
call fcn.1003a42b
mov eax, dword [ebp - 0x50]
mov ebx, dword [ebp - 0x54]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x34], ebx
jmp 0x100c0115
cmp byte [ebp + 0x20], 0
je 0x100c02fb
lea ecx, [ebp - 0x38]
call fcn.1003a42b
lea ecx, [ebp - 0x14]
call fcn.1003a42b
cmp byte [ebp + 0x24], 0
je 0x100c0335
push dword [ebp - 0x28]
call dword [sym.imp.kernel32.dll_FlushFileBuffers]
test eax, eax
jne 0x100c0335
call dword [sym.imp.kernel32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
cmovle ecx, eax
push ecx
push 0x1e61a79a
call fcn.100ba828
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 5
call fcn.100b67f9
lea ecx, [ebp - 0x14]
mov dword [ebp - 4], 6
call fcn.100b67f9
call fcn.1000401a
ret 0x2c