Function at 0x470dc0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov esi, dword [0x542710]
push edi
mov edi, dword [0x542714]
cmp esi, edi
jb 0x470e0c
push 0xf
push 0x542700
push 0
mov dword [0x542710], 0x542700
call fcn.004e3c87
add esp, 0xc
test eax, eax
je 0x470efd
mov esi, dword [0x542710]
lea edi, [esi + eax]
mov byte [edi], 0
mov dword [0x542714], edi
movsx ebx, byte [esi]
add ebx, 0xffffffd0
cmp ebx, 9
ja 0x470eed
lea ecx, [esi + 1]
mov dword [0x52338c], 1
mov dword [0x541178], 0
mov dword [0x542644], 0
movsx edx, byte [ecx]
cmp edx, 0x30
jl 0x470e5f
cmp edx, 0x39
ja 0x470eed
lea ebx, [ebx + ebx*4]
inc ecx
lea ebx, [ebx - 0x18]
lea ebx, [edx + ebx*2]
movsx edx, byte [ecx]
cmp edx, 0x30
jge 0x470e44
cmp ecx, edi
jne 0x470ec3
push 0xf
push 0x542700
push 0
mov dword [0x542710], 0x542700
call fcn.004e3c87
add esp, 0xc
test eax, eax
jle 0x470f0d
lea edi, [eax + 0x542700]
mov ecx, 0x542700
mov byte [edi], 0
movsx edx, byte [0x542700]
mov dword [0x542714], edi
cmp edx, 0x30
jl 0x470ebd
cmp edx, 0x39
ja 0x470ee7
inc ecx
lea ebx, [ebx + ebx*4]
lea ebx, [ebx - 0x18]
lea ebx, [edx + ebx*2]
movsx edx, byte [ecx]
cmp edx, 0x30
jge 0x470ea6
mov esi, dword [0x542710]
cmp edx, 0x20
jg 0x470eed
test ebx, ebx
jg 0x470f06
jns 0x470efd
push ebx
push str.Input_block_size___ld
push 0
call fcn.0044c950
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [0x542710]
push esi
push str.Bad_input_block___s_
push 0
call fcn.0044c950
add esp, 0xc
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, ecx
inc ecx
cmp eax, edi
jne 0x470f25
push str.EOF_reading_block_size
push 0
call fcn.0044c950
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [ebp + 8]
mov edx, esi
mov dword [ebp - 4], edx
cmp ecx, edi
jae 0x470f40
mov al, byte [ecx]
inc ecx
mov byte [esi], al
inc esi
sub ebx, 1
je 0x470f96
cmp ecx, edi
jb 0x470f31
mov eax, dword [ebp + 0xc]
sub edx, esi
add eax, edx
mov dword [0x542710], ecx
cmp eax, ebx
mov edi, ebx
cmovle edi, eax
push edi
push esi
push 0
sub ebx, edi
call fcn.004e3c87
add esp, 0xc
test eax, eax
jle 0x470f7e
sub edi, eax
add esi, eax
test edi, edi
jle 0x470fa7
push edi
push esi
push 0
call fcn.004e3c87
add esp, 0xc
test eax, eax
jg 0x470f66
push str.EOF_reading_block
push 0
call fcn.0044c950
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [0x542710], ecx
sub esi, edx
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
sub esi, dword [ebp - 4]
mov dword [ebp + 8], esi
test ebx, ebx
je 0x470f9e
mov esi, 0x5426f0
mov edi, 0xfbf4
nop dword [eax + eax]
mov eax, dword [esi]
test eax, eax
jne 0x470fdb
push 0xfbf8
call fcn.004538c0
mov dword [esi], eax
add esp, 4
mov dword [eax], 0
cmp ebx, 0xfbf4
mov dword [ebp - 4], eax
mov esi, edi
lea edi, [eax + 4]
cmovl esi, ebx
sub ebx, esi
nop
push esi
push edi
push 0
call fcn.004e3c87
mov ecx, dword [0x540f20]
add esp, 0xc
test eax, eax
jle 0x471022
add ecx, eax
mov dword [0x540f20], ecx
sub esi, eax
je 0x471016
add edi, eax
jmp 0x470ff0
mov esi, dword [ebp - 4]
mov edi, 0xfbf4
test ebx, ebx
jne 0x470fc0
mov eax, dword [0x5426f0]
cmp ecx, 0xfbf4
mov dword [0x5426f4], eax
mov eax, 0xfbf4
pop edi
cmovl eax, ecx
mov dword [0x5426f8], 0
pop esi
mov dword [0x5426fc], eax
mov eax, dword [ebp + 8]
pop ebx
mov esp, ebp
pop ebp
ret