Function at 0x1001c0f0
Capabilities:
Get file size
Read file on windows
Write file on windows

Disassembly:
sub esp, 0x138
mov eax, dword [0x10139d00]
xor eax, esp
mov dword [esp + 0x134], eax
mov eax, dword [esp + 0x13c]
push ebx
push ebp
push esi
xor ebx, ebx
push edi
mov dword [esp + 0x24], eax
mov esi, edx
mov dword [esp + 0x1c], ecx
cmp byte [eax + 0xc9], bl
je 0x1001c3d7
cmp esi, ebx
je 0x1001c3d7
mov ebp, dword [sym.imp.KERNEL32.dll_CreateFileW]
push ebx
push 0x80
push 3
push ebx
push 1
push SysReAllocString
push esi
call ebp
mov dword [esp + 0x20], eax
cmp eax, 0xffffffff
je 0x1001c3d7
lea edx, [esp + 0x10]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSizeEx]
mov ecx, esi
call fcn.1001beb0
cmp eax, ebx
jne 0x1001c178
mov edx, dword [esp + 0x10]
add edx, 0xfffffa93
jmp 0x1001c1a1
cmp eax, 1
je 0x1001c197
cmp eax, 3
je 0x1001c197
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
cmp eax, 2
jne 0x1001c1b0
add edx, 0xfffffdff
jmp 0x1001c1a5
mov edx, dword [esp + 0x10]
add edx, 0xfffffe00
mov ecx, dword [esp + 0x14]
adc ecx, 0xffffffff
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
cmp ecx, ebx
jg 0x1001c1dc
jl 0x1001c1be
cmp edx, 0x989680
ja 0x1001c1ce
mov esi, edx
mov edi, ecx
cmp eax, 3
jne 0x1001c212
and edx, 0xfffffff0
mov esi, edx
jmp 0x1001c212
cmp ecx, ebx
jl 0x1001c1fa
jg 0x1001c1dc
cmp edx, 0x1dcd64ff
jbe 0x1001c1e4
push ebx
push 0x500
jmp 0x1001c1fd
cmp ecx, ebx
jl 0x1001c1fa
jg 0x1001c1f2
cmp edx, 0x5f5e0ff
jbe 0x1001c1fa
push ebx
push 0x1e0
jmp 0x1001c1fd
push ebx
push 0x50
push ecx
push edx
call fcn.100e67b0
push ebx
push 0x10
push edx
push eax
call fcn.100d53f0
mov esi, eax
mov edi, edx
mov eax, dword [esp + 0x1c]
push ebx
push 0x80
push 2
push ebx
push 1
push 0x40000000
push eax
call ebp
mov dword [esp + 0x1c], eax
cmp eax, 0xffffffff
je 0x1001c3cc
mov ecx, dword [esp + 0x14]
xor eax, eax
cmp ecx, ebx
mov dword [esp + 0x18], ebx
mov byte [esp + 0x134], bl
mov dword [esp + 0x135], eax
mov dword [esp + 0x139], eax
mov dword [esp + 0x13d], eax
mov word [esp + 0x141], ax
mov byte [esp + 0x143], al
mov byte [esp + 0x124], bl
mov dword [esp + 0x125], eax
mov dword [esp + 0x129], eax
mov dword [esp + 0x12d], eax
mov word [esp + 0x131], ax
mov byte [esp + 0x133], al
jl 0x1001c3c1
mov eax, dword [esp + 0x10]
jg 0x1001c2ac
cmp eax, ebx
jbe 0x1001c3c1
cmp ecx, ebx
jl 0x1001c2bc
jg 0x1001c2b7
cmp eax, 0x10
jbe 0x1001c2bc
mov eax, 0x10
push ebx
lea ecx, [esp + 0x1c]
push ecx
push eax
mov eax, dword [esp + 0x2c]
lea edx, [esp + 0x140]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x1001c3c1
mov ebp, dword [esp + 0x18]
cmp ebp, ebx
jbe 0x1001c3c1
cmp ebp, 0x10
jne 0x1001c362
push ebx
push ebp
push edi
push esi
call fcn.100e67b0
cmp edx, ebx
jl 0x1001c362
jg 0x1001c302
cmp eax, ebx
jbe 0x1001c362
push 0xec
lea ecx, [esp + 0x30]
push ebx
push ecx
mov dword [esp + 0x34], ebx
call fcn.100d4cc0
mov eax, dword [esp + 0x30]
add esp, 0xc
lea edx, [esp + 0x28]
push edx
add eax, 0xca
push 0x100
push eax
mov dword [esp + 0x124], ebx
call fcn.1006c040
add esp, 0xc
push ebx
lea ecx, [esp + 0x2c]
push ecx
lea edx, [esp + 0x12c]
push edx
lea eax, [esp + 0x140]
push eax
call fcn.100723d0
add esp, 0x10
sub esi, dword [esp + 0x18]
sbb edi, ebx
jmp 0x1001c37b
push ebp
lea ecx, [esp + 0x138]
push ecx
lea edx, [esp + 0x12c]
push edx
call fcn.100d0e10
add esp, 0xc
mov ecx, dword [esp + 0x18]
push ebx
lea eax, [esp + 0x1c]
push eax
mov eax, dword [esp + 0x24]
push ecx
lea edx, [esp + 0x130]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov eax, dword [esp + 0x10]
sub eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
sbb ecx, ebx
cmp ecx, ebx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
jg 0x1001c2b7
jl 0x1001c3c1
cmp eax, ebx
ja 0x1001c2ac
mov ecx, dword [esp + 0x1c]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [esp + 0x20]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [esp + 0x144]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
mov al, 1
call fcn.100d0738
add esp, 0x138
ret 4