Function at 0x1000556c
Capabilities:
Get file size
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x444
mov eax, dword [ebp + 8]
push eax
call fcn.1000ef40
add esp, 4
test eax, eax
ja 0x1000558f
mov eax, 0x3ea
jmp 0x10005962
cmp dword [ebp + 0xc], 0
je 0x100055a5
cmp dword [ebp + 0xc], 1
je 0x100055a5
mov eax, 0x3ea
jmp 0x10005962
cmp dword [ebp + 0x20], 0xb0
jl 0x100055b7
cmp dword [ebp + 0x20], 0xf7
jle 0x100055c1
mov eax, 0x3ea
jmp 0x10005962
cmp dword [ebp + 0xc], 0
jne 0x100055e5
cmp dword [ebp + 0x24], 0xa1
jl 0x100055d9
cmp dword [ebp + 0x24], 0xfe
jle 0x100055e3
mov eax, 0x3ea
jmp 0x10005962
jmp 0x10005607
cmp dword [ebp + 0xc], 1
jne 0x10005607
cmp dword [ebp + 0x24], 0xa1
jl 0x100055fd
cmp dword [ebp + 0x24], 0xfe
jle 0x10005607
mov eax, 0x3ea
jmp 0x10005962
cmp dword [ebp + 0x10], 0
je 0x1000561d
cmp dword [ebp + 0x10], 1
je 0x1000561d
mov eax, 0x3ea
jmp 0x10005962
cmp dword [ebp + 0x14], 0
jl 0x10005629
cmp dword [ebp + 0x14], 0x63
jle 0x10005633
mov eax, 0x3ea
jmp 0x10005962
cmp dword [ebp + 0x18], 0
jle 0x10005642
cmp dword [ebp + 0x18], 0x270f
jle 0x1000564c
mov eax, 0x3ea
jmp 0x10005962
cmp dword [ebp + 0x1c], 0
jle 0x1000565b
cmp dword [ebp + 0x1c], 0x270f
jle 0x10005665
mov eax, 0x3ea
jmp 0x10005962
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 0x444], ecx
cmp dword [ebp - 0x444], 0
je 0x10005682
cmp dword [ebp - 0x444], 1
je 0x100056ad
jmp 0x100056e5
cmp dword [ebp + 0x20], 0
je 0x10005692
mov eax, 0x3ea
jmp 0x10005962
cmp dword [ebp + 0x24], 0
jl 0x100056a1
cmp dword [ebp + 0x24], 0xff
jle 0x100056ab
mov eax, 0x3ea
jmp 0x10005962
jmp 0x100056e5
cmp dword [ebp + 0x20], 0xb0
jl 0x100056bf
cmp dword [ebp + 0x20], 0xf7
jle 0x100056c9
mov eax, 0x3ea
jmp 0x10005962
cmp dword [ebp + 0x24], 0xa1
jl 0x100056db
cmp dword [ebp + 0x24], 0xfe
jle 0x100056e5
mov eax, 0x3ea
jmp 0x10005962
cmp dword [ebp + 0x28], 0
jge 0x100056f5
mov eax, 0x3ea
jmp 0x10005962
mov edx, dword [ebp + 0x2c]
push edx
call fcn.1000ef40
add esp, 4
test eax, eax
ja 0x1000570f
mov eax, 0x3ea
jmp 0x10005962
push 0
push 0
push 3
push 0
push 0
push bind
mov eax, dword [ebp + 0x2c]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0xffffffff
jne 0x1000573b
mov eax, 0x3eb
jmp 0x10005962
lea ecx, [ebp - 0x3c]
push ecx
mov edx, dword [ebp - 0x40]
push edx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp + 0x18]
add eax, 7
cdq
and edx, 7
add eax, edx
sar eax, 3
imul eax, dword [ebp + 0x1c]
imul eax, dword [ebp + 0x28]
cmp dword [ebp - 0xc], eax
jae 0x1000577c
mov eax, dword [ebp - 0x40]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 0x3ee
jmp 0x10005962
mov dword [0x10024b1c], 1
mov dword [0x10029b24], 1
push 0x22
push 0
lea ecx, [ebp - 0x30]
push ecx
call fcn.1000f350
add esp, 0xc
cmp dword [ebp + 0xc], 0
setne dl
add edx, 0x41
mov byte [ebp - 8], dl
mov eax, dword [ebp + 0x28]
push eax
mov ecx, dword [ebp + 0x24]
push ecx
mov edx, dword [ebp + 0x20]
push edx
mov eax, dword [ebp + 0x1c]
push eax
mov ecx, dword [ebp + 0x18]
push ecx
push 0xd
mov edx, dword [ebp + 8]
push edx
mov eax, dword [ebp + 0x14]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
movsx edx, byte [ebp - 8]
push edx
push 2
push 1
push str._cD_cb_c_d_02d_s_c_04d_04d_02x_02x_04d
lea eax, [ebp - 0x30]
push eax
call fcn.1000f2f5
add esp, 0x38
mov ecx, dword [0x1001fb18]
push ecx
lea edx, [ebp - 0x30]
push edx
call fcn.1000ef40
add esp, 4
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.100021c0
add esp, 0xc
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0x3e8
je 0x1000581d
mov eax, dword [ebp - 0x34]
jmp 0x10005962
mov dword [ebp - 0x38], 0
jmp 0x1000582f
mov ecx, dword [ebp - 0x38]
add ecx, 1
mov dword [ebp - 0x38], ecx
mov edx, dword [ebp - 0xc]
shr edx, 0xa
cmp dword [ebp - 0x38], edx
jae 0x100058b1
push 0
lea eax, [ebp - 4]
push eax
push 0x400
lea ecx, [ebp - 0x440]
push ecx
mov edx, dword [ebp - 0x40]
push edx
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp dword [ebp - 4], 0x400
je 0x10005873
mov eax, dword [ebp - 0x40]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 0x3ec
jmp 0x10005962
mov ecx, dword [0x1001fb18]
push ecx
push 0x400
lea edx, [ebp - 0x440]
push edx
call fcn.100021c0
add esp, 0xc
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0x3e8
je 0x100058ac
mov eax, dword [ebp - 0x40]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x34]
jmp 0x10005962
jmp 0x10005826
push 0
lea ecx, [ebp - 4]
push ecx
mov eax, dword [ebp - 0xc]
xor edx, edx
mov ecx, 0x400
div ecx
push edx
lea edx, [ebp - 0x440]
push edx
mov eax, dword [ebp - 0x40]
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [ebp - 0xc]
xor edx, edx
mov ecx, 0x400
div ecx
cmp dword [ebp - 4], edx
je 0x100058f7
mov edx, dword [ebp - 0x40]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 0x3ec
jmp 0x10005962
mov eax, dword [0x1001fb18]
push eax
mov ecx, dword [ebp - 4]
push ecx
lea edx, [ebp - 0x440]
push edx
call fcn.100021c0
add esp, 0xc
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0x3e8
je 0x1000592b
mov eax, dword [ebp - 0x40]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x34]
jmp 0x10005962
mov ecx, dword [ebp - 0x40]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 2
push 0x1001c374
lea edx, [ebp - 0x30]
push edx
call fcn.1000f2f5
add esp, 0xc
mov eax, dword [0x1001fb18]
push eax
push 2
lea ecx, [ebp - 0x30]
push ecx
call fcn.100021c0
add esp, 0xc
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
mov esp, ebp
pop ebp
ret 0x28