Function at 0x528c50
Capabilities:
Read file on windows

Disassembly:
push ebp
push edi
mov edi, 0x800013
push esi
push ebx
mov esi, ecx
sub esp, 0x1c
mov ebx, dword [esp + 0x30]
mov edx, dword [ebx + 0x10]
movzx ecx, byte [edx]
nop
lea esi, [esi]
lea eax, [ecx - 9]
cmp al, 0x17
jbe 0x528d30
mov edi, 0x800013
cmp cl, 0x2f
jne 0x528dc3
cmp dword [ebx + 0xc], edx
ja 0x528dd0
cmp byte [ebx + 0x1c], 0
je 0x528e10
cmp byte [ebx + 0x1c], 0
mov ebp, 0x2f
jne 0x528cc8
jmp 0x528fbb
lea eax, [edx + 1]
mov dword [ebx + 0x10], eax
movzx ecx, byte [edx + 1]
mov edx, eax
mov eax, ebp
cmp al, 0xa
je 0x528f2d
mov ebp, ecx
mov eax, ebp
test al, al
je 0x528dc3
cmp edx, dword [ebx + 0xc]
jb 0x528cb0
cmp byte [ebx + 0x1c], 0
mov ecx, ebp
jne 0x528cbc
mov eax, dword [ebx + 0x14]
add dword [ebx + 0x18], eax
mov eax, dword [ebx]
mov dword [esp + 0xc], eax
mov eax, dword [ebx + 8]
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov eax, dword [ebx + 4]
mov dword [esp], eax
call sub.msvcrt.dll_fread
mov edx, dword [ebx + 4]
cmp eax, dword [ebx + 8]
mov dword [ebx + 0x14], eax
lea ecx, [edx + eax - 1]
mov dword [ebx + 0x10], edx
mov dword [ebx + 0xc], ecx
jae 0x528d29
mov byte [edx + eax], 0
add dword [ebx + 0xc], 1
mov edx, dword [ebx + 0x10]
mov byte [ebx + 0x1c], 1
movzx ecx, byte [edx]
jmp 0x528cbc
bt edi, eax
jae 0x528dc3
cmp dword [ebx + 0xc], edx
ja 0x528da0
cmp byte [ebx + 0x1c], 0
jne 0x528c70
mov eax, dword [ebx + 0x14]
add dword [ebx + 0x18], eax
mov eax, dword [ebx]
mov dword [esp + 0xc], eax
mov eax, dword [ebx + 8]
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov eax, dword [ebx + 4]
mov dword [esp], eax
call sub.msvcrt.dll_fread
mov edx, dword [ebx + 4]
cmp eax, dword [ebx + 8]
mov dword [ebx + 0x14], eax
lea ecx, [edx + eax - 1]
mov dword [ebx + 0x10], edx
mov dword [ebx + 0xc], ecx
jae 0x528d92
mov byte [edx + eax], 0
add dword [ebx + 0xc], 1
mov edx, dword [ebx + 0x10]
mov byte [ebx + 0x1c], 1
movzx ecx, byte [edx]
jmp 0x528c70
lea eax, [edx + 1]
mov dword [ebx + 0x10], eax
movzx ecx, byte [edx + 1]
mov edx, eax
jmp 0x528c70
mov eax, ecx
sub eax, dword [ebx + 4]
add eax, dword [ebx + 0x18]
mov dword [esi + 0x18], 0x11
mov dword [esi + 0x1c], eax
add esp, 0x1c
pop ebx
pop esi
pop edi
pop ebp
ret 4
lea ecx, [edx + 1]
mov dword [ebx + 0x10], ecx
movzx eax, byte [ecx]
cmp al, 0x2a
jne 0x52900d
cmp dword [ebx + 0xc], ecx
ja 0x528e63
cmp byte [ebx + 0x1c], 0
je 0x528f5e
test al, al
je 0x528db1
mov edx, dword [ebx + 0xc]
cmp al, 0x2a
mov ebp, edx
jne 0x528e5f
cmp edx, ecx
ja 0x528fb0
cmp byte [ebx + 0x1c], 0
je 0x528e74
mov ebp, edx
jmp 0x528dfd
mov eax, dword [ebx + 0x14]
add dword [ebx + 0x18], eax
mov eax, dword [ebx]
mov dword [esp + 0xc], eax
mov eax, dword [ebx + 8]
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov eax, dword [ebx + 4]
mov dword [esp], eax
call sub.msvcrt.dll_fread
mov ecx, dword [ebx + 4]
cmp eax, dword [ebx + 8]
mov dword [ebx + 0x14], eax
lea edx, [ecx + eax - 1]
mov dword [ebx + 0x10], ecx
mov dword [ebx + 0xc], edx
jae 0x528dd6
mov byte [ecx + eax], 0
mov byte [ebx + 0x1c], 1
add dword [ebx + 0xc], 1
mov ecx, dword [ebx + 0x10]
jmp 0x528dd6
cmp ecx, edx
jae 0x528de6
lea edx, [ecx + 1]
mov dword [ebx + 0x10], edx
movzx eax, byte [ecx + 1]
mov ecx, edx
jmp 0x528df0
mov eax, dword [ebx + 0x14]
add dword [ebx + 0x18], eax
mov eax, dword [ebx]
mov dword [esp + 0xc], eax
mov eax, dword [ebx + 8]
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov eax, dword [ebx + 4]
mov dword [esp], eax
call sub.msvcrt.dll_fread
mov edx, dword [ebx + 4]
cmp eax, dword [ebx + 8]
mov dword [ebx + 0x14], eax
lea ebp, [edx + eax - 1]
mov dword [ebx + 0x10], edx
mov dword [ebx + 0xc], ebp
jae 0x528ec3
mov byte [edx + eax], 0
mov eax, dword [ebx + 0xc]
mov edx, dword [ebx + 0x10]
mov byte [ebx + 0x1c], 1
lea ebp, [eax + 1]
mov dword [ebx + 0xc], ebp
movzx eax, byte [edx]
cmp al, 0x2f
jne 0x528e6d
cmp edx, ebp
jb 0x528f50
cmp byte [ebx + 0x1c], 0
jne 0x528c89
lea esi, [esi]
mov eax, dword [ebx + 0x14]
add dword [ebx + 0x18], eax
mov eax, dword [ebx]
mov dword [esp + 0xc], eax
mov eax, dword [ebx + 8]
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov eax, dword [ebx + 4]
mov dword [esp], eax
call sub.msvcrt.dll_fread
mov edx, dword [ebx + 4]
cmp eax, dword [ebx + 8]
mov dword [ebx + 0x14], eax
lea ecx, [edx + eax - 1]
mov dword [ebx + 0x10], edx
mov dword [ebx + 0xc], ecx
jae 0x528f2a
mov byte [edx + eax], 0
add dword [ebx + 0xc], 1
mov edx, dword [ebx + 0x10]
mov byte [ebx + 0x1c], 1
movzx ecx, byte [edx]
lea eax, [ecx - 9]
cmp al, 0x17
ja 0x528c80
bt edi, eax
jae 0x528c80
cmp dword [ebx + 0xc], edx
ja 0x528f50
cmp byte [ebx + 0x1c], 0
jne 0x528f2d
jmp 0x528ee0
lea eax, [edx + 1]
mov dword [ebx + 0x10], eax
movzx ecx, byte [edx + 1]
mov edx, eax
jmp 0x528f2d
mov eax, dword [ebx + 0x14]
add dword [ebx + 0x18], eax
mov eax, dword [ebx]
mov dword [esp + 0xc], eax
mov eax, dword [ebx + 8]
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov eax, dword [ebx + 4]
mov dword [esp], eax
call sub.msvcrt.dll_fread
mov ecx, dword [ebx + 4]
cmp eax, dword [ebx + 8]
mov dword [ebx + 0x14], eax
lea edx, [ecx + eax - 1]
mov dword [ebx + 0x10], ecx
mov dword [ebx + 0xc], edx
jae 0x528fa8
mov byte [ecx + eax], 0
add dword [ebx + 0xc], 1
mov ecx, dword [ebx + 0x10]
mov byte [ebx + 0x1c], 1
movzx eax, byte [ecx]
jmp 0x528df0
lea edx, [ecx + 1]
mov dword [ebx + 0x10], edx
jmp 0x528ec3
mov eax, dword [ebx + 0x14]
add dword [ebx + 0x18], eax
mov eax, dword [ebx]
mov dword [esp + 0xc], eax
mov eax, dword [ebx + 8]
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov eax, dword [ebx + 4]
mov dword [esp], eax
call sub.msvcrt.dll_fread
mov edx, dword [ebx + 4]
cmp eax, dword [ebx + 8]
mov dword [ebx + 0x14], eax
lea ecx, [edx + eax - 1]
mov dword [ebx + 0x10], edx
mov dword [ebx + 0xc], ecx
jae 0x529005
mov byte [edx + eax], 0
add dword [ebx + 0xc], 1
mov edx, dword [ebx + 0x10]
mov byte [ebx + 0x1c], 1
movzx ebp, byte [edx]
jmp 0x528cc8
cmp al, 0x2f
jne 0x528db1
cmp dword [ebx + 0xc], ecx
jbe 0x529029
lea edx, [ecx + 1]
mov dword [ebx + 0x10], edx
movzx ebp, byte [ecx + 1]
jmp 0x528cc8
mov edx, ecx
jmp 0x528c9c