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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x58
mov eax, dword [0x101dc354]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov dword [ebp - 0x18], eax
lea edi, [ebp - 0x48]
xor eax, eax
mov dword [ebp - 0x20], edx
stosd dword es:[edi], eax
xor ebx, ebx
mov dword [ebp - 0x30], ecx
mov esi, ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x10], ebx
stosd dword es:[edi], eax
mov dword [ebp - 8], ebx
mov byte [ebp - 0x11], bl
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x24], ebx
stosd dword es:[edi], eax
mov dword [ebp - 0xc], ebx
call fcn.101b85f6
lea ecx, [ebp - 0x11]
call fcn.101b8728
cmp byte [ebp - 0x11], bl
jne 0x10114528
mov ebx, 0x80004001
push 0x100496e8
push 1
push ebx
push 0x4000000
call fcn.100ab973
add esp, 0x10
jmp 0x10114808
mov edi, dword [ebp - 0x20]
push ebx
push ebx
push ebx
push edi
call dword [sym.imp.api_ms_win_core_file_l1_1_0.dll_SetFilePointer]
push ebx
push edi
call dword [sym.imp.api_ms_win_core_file_l1_1_0.dll_GetFileSize]
mov edi, eax
cmp edi, 0xffffffff
je 0x101147bc
cmp edi, 0xc
jb 0x101147bc
push edi
call fcn.100b84fe
mov dword [ebp - 0x1c], eax
pop ecx
test eax, eax
jne 0x1011456b
mov ebx, 0x8007000e
push 0x10049718
jmp 0x10114513
push ebx
lea ecx, [ebp - 8]
push ecx
push edi
push eax
push dword [ebp - 0x20]
call dword [sym.imp.api_ms_win_core_file_l1_1_0.dll_ReadFile]
test eax, eax
jne 0x101145a7
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
mov ebx, eax
test ebx, ebx
jle 0x10114596
movzx ebx, bx
or ebx, 0x80070000
test ebx, ebx
js 0x1011459d
mov ebx, 0x80004005
push 0x1004974c
jmp 0x101147df
mov ecx, dword [ebp - 0x18]
test ecx, ecx
je 0x10114640
push ebx
push ecx
call dword [sym.imp.api_ms_win_core_file_l1_1_0.dll_GetFileSize]
mov esi, eax
cmp esi, 0xffffffff
jne 0x101145f9
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
mov ebx, eax
test ebx, ebx
jle 0x101145d8
movzx ebx, bx
or ebx, 0x80070000
test ebx, ebx
js 0x101145df
mov ebx, 0x80004005
push 0x10049768
push 1
push ebx
push 0x4000000
call fcn.100ab973
mov esi, dword [ebp - 0x10]
jmp 0x101147ec
push esi
call fcn.100b84fe
pop ecx
push ebx
lea ecx, [ebp - 8]
mov dword [ebp - 0x10], eax
push ecx
push esi
push eax
mov eax, dword [ebp - 0x18]
push eax
call dword [sym.imp.api_ms_win_core_file_l1_1_0.dll_ReadFile]
test eax, eax
jne 0x1011463d
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
mov ebx, eax
test ebx, ebx
jle 0x1011462f
movzx ebx, bx
or ebx, 0x80070000
test ebx, ebx
js 0x10114636
mov ebx, 0x80004005
push 0x10049784
jmp 0x101145e4
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x30]
cmp eax, 3
jne 0x10114650
mov eax, dword [ebp - 0x10]
jmp 0x10114705
cmp eax, 5
jne 0x101146b8
call fcn.101b483e
test eax, eax
jns 0x10114688
push 0x100497a4
mov ebx, eax
push 1
or ebx, 0x10000000
push ebx
push 0x4000000
call fcn.100ab973
add esp, 0x10
call fcn.101b4806
mov esi, dword [ebp - 0x10]
jmp 0x101147ef
mov eax, dword [ebp - 0x1c]
lea edx, [ebp - 0x3c]
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x48]
push eax
mov dword [ebp - 0x3c], edi
call fcn.101b4946
test eax, eax
jns 0x101146a8
push 0x100497c4
jmp 0x10114663
mov eax, dword [ebp - 0x40]
mov esi, dword [ebp - 0x48]
mov dword [ebp - 0x18], eax
call fcn.101b4806
jmp 0x10114708
mov eax, dword [ebp - 0x1c]
lea edx, [ebp - 0x54]
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x3c]
mov dword [ebp - 0x54], esi
mov esi, dword [ebp - 0x10]
push eax
xor eax, eax
mov dword [ebp - 0x4c], esi
test ecx, ecx
mov dword [ebp - 0x3c], edi
setne al
lea eax, [eax*8 + 4]
push eax
call fcn.101b8457
test eax, eax
jns 0x101146ff
mov ebx, eax
or ebx, 0x10000000
push 0x100497f4
jmp 0x101147df
mov eax, dword [ebp - 0x24]
mov esi, dword [ebp - 0x2c]
mov dword [ebp - 0x18], eax
mov edi, dword [ebp - 0x20]
push ebx
push ebx
push ebx
push edi
call dword [sym.imp.api_ms_win_core_file_l1_1_0.dll_SetFilePointer]
cmp eax, 0xffffffff
jne 0x10114742
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
mov ebx, eax
test ebx, ebx
jle 0x10114731
movzx ebx, bx
or ebx, 0x80070000
test ebx, ebx
js 0x10114738
mov ebx, 0x80004005
push 0x1004981c
jmp 0x101145e4
push ebx
lea eax, [ebp - 0xc]
push eax
push esi
push dword [ebp - 0x18]
push edi
call dword [sym.imp.api_ms_win_core_file_l1_1_0.dll_WriteFile]
test eax, eax
jne 0x1011477e
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
mov ebx, eax
test ebx, ebx
jle 0x1011476d
movzx ebx, bx
or ebx, 0x80070000
test ebx, ebx
js 0x10114774
mov ebx, 0x80004005
push 0x10049834
jmp 0x101145e4
push edi
call dword [sym.imp.api_ms_win_core_file_l1_1_0.dll_SetEndOfFile]
test eax, eax
jne 0x101147b1
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
mov ebx, eax
test ebx, ebx
jle 0x101147a0
movzx ebx, bx
or ebx, 0x80070000
test ebx, ebx
js 0x101147a7
mov ebx, 0x80004005
push 0x1004984c
jmp 0x101145e4
push 0x10049860
push ebx
jmp 0x101145e6
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
mov ebx, eax
test ebx, ebx
jle 0x101147d3
movzx ebx, bx
or ebx, 0x80070000
test ebx, ebx
js 0x101147da
mov ebx, 0x80004005
push 0x10049704
push 1
push ebx
push 0x4000000
call fcn.100ab973
add esp, 0x10
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x101147fd
push eax
call fcn.100b84f9
pop ecx
test esi, esi
je 0x10114808
push esi
call fcn.100b84f9
pop ecx
lea ecx, [ebp - 0x48]
call fcn.10095000
lea ecx, [ebp - 0x2c]
call fcn.101b836e
mov ecx, dword [ebp - 4]
mov eax, ebx
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.100b88c0
leave
ret 4