Function at 0x471800
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xa8
push ebx
push edi
push esi
lea eax, [ebp - 0xc]
mov dword [eax], 0
lea eax, [ebp - 0x90]
mov edx, eax
xor eax, eax
mov esi, eax
lea eax, [edx + esi]
mov esi, eax
xor eax, eax
mov edx, eax
mov byte [esi], dl
lea eax, [ebp - 0x94]
mov dword [eax], 0
lea eax, [ebp - 0xa8]
mov dword [eax], 0
jmp 0x4720b4
lea eax, [ebp + 8]
mov edx, eax
mov edx, dword [edx]
mov eax, edx
cmp dword [eax], 0
je 0x47200c
jmp 0x471fd9
lea eax, [ebp - 0x9c]
mov dword [eax], 0
lea eax, [ebp + 0x10]
mov edx, eax
mov edx, dword [edx]
mov eax, edx
mov edx, eax
xor eax, eax
mov esi, eax
lea eax, [edx + esi]
mov esi, eax
xor eax, eax
mov edx, eax
mov byte [esi], dl
lea eax, [ebp - 0x90]
mov edx, eax
xor eax, eax
mov esi, eax
lea eax, [edx + esi]
mov esi, eax
xor eax, eax
mov edx, eax
mov byte [esi], dl
xor eax, eax
mov edx, eax
push edx
lea eax, [ebp - 8]
mov edx, eax
push edx
mov eax, 0x80
push eax
lea eax, [ebp - 0x90]
mov edx, eax
push edx
lea eax, [ebp + 8]
mov edx, eax
mov edx, dword [edx]
mov eax, edx
push dword [eax]
call dword [sym.imp.KERNEL32.DLL_ReadFile]
lea eax, [ebp - 0x98]
mov dword [eax], 0
lea eax, [ebp - 0x98]
mov ebx, 1
lea ecx, [ebp - 8]
mov ecx, dword [ecx]
sub ecx, ebx
mov ebx, ecx
cmp dword [eax], ebx
jg 0x471bff
mov eax, 0xd
lea ebx, [ebp - 0x90]
mov edx, ebx
lea ebx, [ebp - 0x98]
mov esi, dword [ebx]
lea ebx, [edx + esi]
movzx esi, byte [ebx]
mov edi, eax
cmp esi, edi
sete dl
and edx, 0xff
mov eax, edx
test eax, eax
je 0x471ae9
mov eax, 1
lea ebx, [ebp - 8]
mov ebx, dword [ebx]
sub ebx, eax
mov eax, ebx
lea ebx, [ebp - 0x98]
cmp dword [ebx], eax
sete dl
movzx eax, dl
test eax, eax
je 0x4719eb
xor eax, eax
mov edx, eax
push edx
lea eax, [ebp - 4]
mov edx, eax
push edx
mov eax, 1
push eax
lea eax, [ebp - 0x10]
mov edx, eax
push edx
lea eax, [ebp + 8]
mov edx, eax
mov edx, dword [edx]
mov eax, edx
push dword [eax]
call dword [sym.imp.KERNEL32.DLL_ReadFile]
mov eax, 0xa
lea ebx, [ebp - 0x10]
movzx esi, byte [ebx]
mov edi, eax
cmp esi, edi
setne dl
and edx, 0xff
mov eax, edx
xor ebx, ebx
lea ecx, [ebp - 4]
mov esi, dword [ecx]
mov edi, ebx
cmp esi, edi
setne dl
and edx, 0xff
mov ebx, edx
mov edx, ebx
mov esi, eax
and edx, esi
mov eax, edx
test eax, eax
je 0x4719e6
lea eax, [ebp - 0x94]
mov dword [eax], 0xffffffff
mov eax, 1
push eax
lea eax, [ebp - 0x94]
mov edx, eax
push edx
mov eax, 1
xor edx, edx
sub edx, eax
mov eax, edx
push eax
lea eax, [ebp + 8]
mov edx, eax
mov edx, dword [edx]
mov eax, edx
push dword [eax]
call dword [sym.imp.KERNEL32.DLL_SetFilePointer]
jmp 0x471ab7
lea eax, [ebp - 0x94]
mov dword [eax], 0xffffffff
mov eax, 0xa
lea ebx, [ebp - 0x90]
push ebx
mov ebx, 1
lea ecx, [ebp - 0x98]
mov ecx, dword [ecx]
add ecx, ebx
mov ebx, ecx
mov esi, ebx
pop ebx
add ebx, esi
movzx esi, byte [ebx]
mov edi, eax
cmp esi, edi
setne dl
and edx, 0xff
mov eax, edx
test eax, eax
je 0x471a6d
mov eax, 1
push eax
mov eax, 0
mov edx, eax
push edx
mov eax, 1
lea ebx, [ebp - 8]
lea ecx, [ebp - 0x98]
mov ecx, dword [ecx]
mov ebx, dword [ebx]
sub ecx, ebx
mov ebx, ecx
add eax, ebx
push eax
lea eax, [ebp + 8]
mov edx, eax
mov edx, dword [edx]
mov eax, edx
push dword [eax]
call dword [sym.imp.KERNEL32.DLL_SetFilePointer]
jmp 0x471aa6
mov eax, 1
push eax
lea eax, [ebp - 0x94]
mov edx, eax
push edx
mov eax, 2
lea ebx, [ebp - 8]
lea ecx, [ebp - 0x98]
mov ecx, dword [ecx]
mov ebx, dword [ebx]
sub ecx, ebx
mov ebx, ecx
add eax, ebx
push eax
lea eax, [ebp + 8]
mov edx, eax
mov edx, dword [edx]
mov eax, edx
push dword [eax]
call dword [sym.imp.KERNEL32.DLL_SetFilePointer]
lea eax, [ebp - 0x98]
push eax
lea eax, [ebp - 8]
mov edx, eax
pop esi
mov edi, dword [edx]
mov dword [esi], edi
lea eax, [ebp - 0x90]
mov edx, eax
xor eax, eax
mov esi, eax
lea eax, [edx + esi]
mov esi, eax
mov eax, 0xd
mov edx, eax
mov byte [esi], dl
lea eax, [ebp - 0xc]
mov esi, eax
mov eax, 1
lea ebx, [ebp - 0xc]
mov ebx, dword [ebx]
add eax, ebx
mov dword [esi], eax
jmp 0x471bf2
mov eax, 0xa
lea ebx, [ebp - 0x90]
mov edx, ebx
lea ebx, [ebp - 0x98]
mov esi, dword [ebx]
lea ebx, [edx + esi]
movzx esi, byte [ebx]
mov edi, eax
cmp esi, edi
sete dl
and edx, 0xff
mov eax, edx
test eax, eax
je 0x471b93
mov eax, 1
push eax
mov eax, 0
mov edx, eax
push edx
mov eax, 1
lea ebx, [ebp - 8]
lea ecx, [ebp - 0x98]
mov ecx, dword [ecx]
mov ebx, dword [ebx]
sub ecx, ebx
mov ebx, ecx
add eax, ebx
push eax
lea eax, [ebp + 8]
mov edx, eax
mov edx, dword [edx]
mov eax, edx
push dword [eax]
call dword [sym.imp.KERNEL32.DLL_SetFilePointer]
lea eax, [ebp - 0x98]
push eax
lea eax, [ebp - 8]
mov edx, eax
pop esi
mov edi, dword [edx]
mov dword [esi], edi
lea eax, [ebp - 0x90]
mov edx, eax
xor eax, eax
mov esi, eax
lea eax, [edx + esi]
mov esi, eax
mov eax, 0xd
mov edx, eax
mov byte [esi], dl
lea eax, [ebp - 0xc]
mov esi, eax
mov eax, 1
lea ebx, [ebp - 0xc]
mov ebx, dword [ebx]
add eax, ebx
mov dword [esi], eax
jmp 0x471bf2
lea eax, [ebp + 0x10]
mov edx, eax
mov edx, dword [edx]
mov eax, edx
mov edx, eax
lea eax, [ebp - 0x9c]
mov esi, dword [eax]
lea eax, [edx + esi]
push eax
lea eax, [ebp - 0x90]
mov edx, eax
lea eax, [ebp - 0x98]
mov esi, dword [eax]
lea eax, [edx + esi]
mov edx, eax
pop esi
push eax
mov al, byte [edx]
mov byte [esi], al
pop eax
lea eax, [ebp - 0x9c]
mov esi, eax
mov eax, 1
lea ebx, [ebp - 0x9c]
mov ebx, dword [ebx]
add eax, ebx
mov dword [esi], eax
lea eax, [ebp - 0xc]
mov esi, eax
mov eax, 1
lea ebx, [ebp - 0xc]
mov ebx, dword [ebx]
add eax, ebx
mov dword [esi], eax
lea eax, [ebp - 0x98]
inc dword [eax]
jmp 0x4718d4
mov eax, 0xd
lea ebx, [ebp - 0x90]
mov edx, ebx
xor ebx, ebx
mov esi, ebx
lea ebx, [edx + esi]
movzx esi, byte [ebx]
mov edi, eax
cmp esi, edi
sete dl
and edx, 0xff
mov eax, edx
xor ebx, ebx
lea ecx, [ebp - 8]
mov esi, dword [ecx]
mov edi, ebx
cmp esi, edi
sete dl
and edx, 0xff
mov ebx, edx
mov edx, ebx
mov esi, eax
or edx, esi
mov eax, edx
cmp eax, 0
je 0x471886
lea eax, [ebp + 0x10]
mov edx, eax
mov edx, dword [edx]
mov eax, edx
mov edx, eax
lea eax, [ebp - 0x9c]
mov esi, dword [eax]
lea eax, [edx + esi]
mov esi, eax
xor eax, eax
mov edx, eax
mov byte [esi], dl
jmp 0x47200c
lea eax, [ebp - 0xa4]
push eax
lea eax, [ebp - 0xa8]
push eax
lea eax, [ebp + 8]
mov edx, eax
mov edx, dword [edx]
mov eax, edx
push dword [eax]
call fcn.00472150
mov ebx, edx
mov edx, eax
mov edi, ebx
pop esi
push edi
push edx
fld qword [esp]
fstp qword [esi]
add esp, 8
xor eax, eax
lea ebx, [ebp - 0xa8]
cmp dword [ebx], eax
sete dl
movzx eax, dl
test eax, eax
je 0x471cbf
lea eax, [ebp - 0xc]
mov dword [eax], 1
jmp 0x471e06
lea eax, [ebp + 0x10]
mov edx, eax
mov edx, dword [edx]
mov eax, edx
push eax
lea eax, [ebp - 0xa4]
mov edx, eax
pop esi
fld qword [edx]
fistp dword [esi]
jmp 0x471fd7
lea eax, [ebp + 0x10]
mov edx, eax
mov edx, dword [edx]
mov eax, edx
push eax
lea eax, [ebp - 0xa4]
mov edx, eax
pop esi
fld qword [edx]
fistp dword [esi]
jmp 0x471fd7
lea eax, [ebp + 0x10]
mov edx, eax
mov edx, dword [edx]
mov eax, edx
push eax
lea eax, [ebp - 0xa4]
mov edx, eax
pop esi
fld qword [edx]
fistp word [esi]
jmp 0x471fd7
lea eax, [ebp + 0x10]
mov edx, eax
mov edx, dword [edx]
mov eax, edx
push eax
lea eax, [ebp - 0xa4]
mov edx, eax
pop esi
fld qword [edx]
fistp word [esi]
jmp 0x471fd7
lea eax, [ebp + 0x10]
mov edx, eax
mov edx, dword [edx]
mov eax, edx
push eax
lea eax, [ebp - 0xa4]
mov edx, eax
pop esi
fld qword [edx]
fistp dword [esp]
pop edx
mov byte [esi], dl
add esp, 4
jmp 0x471fd7
lea eax, [ebp + 0x10]
mov edx, eax
mov edx, dword [edx]
mov eax, edx
push eax
lea eax, [ebp - 0xa4]
mov edx, eax
pop esi
fld qword [edx]
fistp dword [esp]
pop edx
mov byte [esi], dl
add esp, 4
jmp 0x471fd7
lea eax, [ebp + 0x10]
mov edx, eax
mov edx, dword [edx]
mov eax, edx
push eax
lea eax, [ebp - 0xa4]
mov edx, eax
pop esi
fld qword [edx]
fstp dword [esi]
jmp 0x471fd7
lea eax, [ebp + 0x10]
mov edx, eax
mov edx, dword [edx]
mov eax, edx
push eax
lea eax, [ebp - 0xa4]
mov edx, eax
pop esi
fld qword [edx]
fstp qword [esi]
jmp 0x471fd7
lea eax, [ebp + 0x10]
mov edx, eax
mov edx, dword [edx]
mov eax, edx
push eax
lea eax, [ebp - 0xa4]
mov edx, eax
pop esi
fld qword [edx]
fistp qword [esi]
jmp 0x471fd7
lea eax, [ebp + 0x10]
mov edx, eax
mov edx, dword [edx]
mov eax, edx
push eax
lea eax, [ebp - 0xa4]
mov edx, eax
pop esi
fld qword [edx]
fistp qword [esi]
jmp 0x471fd7
lea eax, [ebp + 0x10]
mov edx, eax
mov edx, dword [edx]
mov eax, edx
push eax
lea eax, [ebp - 0xa4]
mov edx, eax
pop esi
fld qword [edx]
fistp dword [esi]
jmp 0x471fd7
mov eax, 2
lea ebx, [ebp + 0x10]
mov edx, ebx
add edx, 4
mov edx, dword [edx]
and edx, 0xffff
mov ebx, edx
mov esi, ebx
mov edi, eax
cmp esi, edi
sete dl
and edx, 0xff
test dl, dl
jne 0x471cc4
mov eax, 0x13
lea ebx, [ebp + 0x10]
mov edx, ebx
add edx, 4
mov edx, dword [edx]
and edx, 0xffff
mov ebx, edx
mov esi, ebx
mov edi, eax
cmp esi, edi
sete dl
and edx, 0xff
test dl, dl
jne 0x471ce0
mov eax, 0xd
lea ebx, [ebp + 0x10]
mov edx, ebx
add edx, 4
mov edx, dword [edx]
and edx, 0xffff
mov ebx, edx
mov esi, ebx
mov edi, eax
cmp esi, edi
sete dl
and edx, 0xff
test dl, dl
jne 0x471cfc
mov eax, 0x1e
lea ebx, [ebp + 0x10]
mov edx, ebx
add edx, 4
mov edx, dword [edx]
and edx, 0xffff
mov ebx, edx
mov esi, ebx
mov edi, eax
cmp esi, edi
sete dl
and edx, 0xff
test dl, dl
jne 0x471d18
mov eax, 1
lea ebx, [ebp + 0x10]
mov edx, ebx
add edx, 4
mov edx, dword [edx]
and edx, 0xffff
mov ebx, edx
mov esi, ebx
mov edi, eax
cmp esi, edi
sete dl
and edx, 0xff
test dl, dl
jne 0x471d34
mov eax, 0x1f
lea ebx, [ebp + 0x10]
mov edx, ebx
add edx, 4
mov edx, dword [edx]
and edx, 0xffff
mov ebx, edx
mov esi, ebx
mov edi, eax
cmp esi, edi
sete dl
and edx, 0xff
test dl, dl
jne 0x471d57
mov eax, 3
lea ebx, [ebp + 0x10]
mov edx, ebx
add edx, 4
mov edx, dword [edx]
and edx, 0xffff
mov ebx, edx
mov esi, ebx
mov edi, eax
cmp esi, edi
sete dl
and edx, 0xff
test dl, dl
jne 0x471d7a
mov eax, 0xe
lea ebx, [ebp + 0x10]
mov edx, ebx
add edx, 4
mov edx, dword [edx]
and edx, 0xffff
mov ebx, edx
mov esi, ebx
mov edi, eax
cmp esi, edi
sete dl
and edx, 0xff
test dl, dl
jne 0x471d96
mov eax, 0x11
lea ebx, [ebp + 0x10]
mov edx, ebx
add edx, 4
mov edx, dword [edx]
and edx, 0xffff
mov ebx, edx
mov esi, ebx
mov edi, eax
cmp esi, edi
sete dl
and edx, 0xff
test dl, dl
jne 0x471db2
mov eax, 0x12
lea ebx, [ebp + 0x10]
mov edx, ebx
add edx, 4
mov edx, dword [edx]
and edx, 0xffff
mov ebx, edx
mov esi, ebx
mov edi, eax
cmp esi, edi
sete dl
and edx, 0xff
test dl, dl
jne 0x471dce
jmp 0x471dea
jmp 0x47200c
mov eax, 0
lea ebx, [ebp + 0x10]
mov edx, ebx
add edx, 4
mov edx, dword [edx]
and edx, 0xffff
mov ebx, edx
mov esi, ebx
mov edi, eax
cmp esi, edi
sete dl
and edx, 0xff
test dl, dl
jne 0x471860
jmp 0x471c6f
jmp 0x472110
lea eax, [ebp + 8]
mov edx, eax
mov edx, dword [edx]
mov eax, edx
cmp dword [eax], 0
je 0x4720b2
jmp 0x472082
xor eax, eax
mov edx, eax
push edx
lea eax, [ebp - 0xc]
mov edx, eax
push edx
lea eax, [ebp + 0x18]
push dword [eax]
lea eax, [ebp + 0x10]
mov edx, eax
mov edx, dword [edx]
mov eax, edx
push dword [eax]
lea eax, [ebp + 8]
mov edx, eax
mov edx, dword [edx]
mov eax, edx
push dword [eax]
call dword [sym.imp.KERNEL32.DLL_ReadFile]
jmp 0x4720b2
xor eax, eax
mov edx, eax
push edx
lea eax, [ebp - 0xc]
mov edx, eax
push edx
lea eax, [ebp + 0x18]
push dword [eax]
lea eax, [ebp + 0x10]
mov edx, eax
mov edx, dword [edx]
mov eax, edx
mov edx, eax
push edx
lea eax, [ebp + 8]
mov edx, eax
mov edx, dword [edx]
mov eax, edx
push dword [eax]
call dword [sym.imp.KERNEL32.DLL_ReadFile]
jmp 0x4720b2
mov eax, 5
lea ebx, [ebp + 0x10]
mov edx, ebx
add edx, 4
mov edx, dword [edx]
and edx, 0xffff
mov ebx, edx
mov esi, ebx
mov edi, eax
cmp esi, edi
sete dl
and edx, 0xff
test dl, dl
jne 0x472025
jmp 0x472053
jmp 0x472110
mov eax, 6
lea ebx, [ebp + 8]
mov edx, ebx
add edx, 4
mov edx, dword [edx]
and edx, 0xffff
mov ebx, edx
mov esi, ebx
mov edi, eax
cmp esi, edi
sete dl
and edx, 0xff
test dl, dl
jne 0x471849
mov eax, 0xb
lea ebx, [ebp + 8]
mov edx, ebx
add edx, 4
mov edx, dword [edx]
and edx, 0xffff
mov ebx, edx
mov esi, ebx
mov edi, eax
cmp esi, edi
sete dl
and edx, 0xff
test dl, dl
jne 0x472011
lea eax, [ebp - 0xc]
cmp dword [eax], 0
je 0x472129
xor eax, eax
pop esi
pop edi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov eax, 1
xor edx, edx
sub edx, eax
mov eax, edx
pop esi
pop edi
pop ebx
mov esp, ebp
pop ebp
ret 0x14