Function at 0x40fa70
Capabilities:
Read file on windows

Disassembly:
mov eax, dword [esp + 4]
push ebx
push ebp
push esi
cmp eax, 5
push edi
mov esi, ecx
ja case.default.0x40fa83
jmp dword [eax*4 + 0x410210]
mov eax, dword [esp + 0x18]
lea edi, [esi + 0x2c]
push edi
push eax
mov ecx, esi
call fcn.0040e190
test eax, eax
jne 0x40faa5
pop edi
pop esi
pop ebp
pop ebx
ret 8
mov edi, dword [edi]
mov ebp, dword [sym.imp.KERNEL32.dll_ReadFile]
lea ecx, [esp + 0x18]
push 0
lea ebx, [esi + 0x1c74]
push ecx
push 4
push ebx
push edi
call ebp
test eax, eax
jne 0x40faf2
mov eax, dword [esi + 8]
test eax, eax
jne 0x40facf
xor eax, eax
jmp 0x40fae7
mov ecx, esi
call fcn.004105f0
test eax, eax
je 0x40fae7
lea edx, [esp + 0x18]
push 0
push edx
push 4
push ebx
push edi
call ebp
test eax, eax
jne 0x40faf2
pop edi
pop esi
pop ebp
pop ebx
ret 8
mov eax, dword [esi + 0x1c58]
test eax, eax
jne 0x40fb13
mov ebx, dword [ebx]
lea eax, [ebx + ebx*4]
shl eax, 2
push eax
call fcn.00420660
add esp, 4
mov dword [esi + 0x1c58], eax
mov ebp, dword [esi + 0x1c58]
test ebp, ebp
jne 0x40fb26
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
ret 8
mov eax, dword [esi + 0x1c74]
mov ebx, dword [esi + 0x2c]
lea ecx, [esp + 0x18]
push 0
lea edi, [eax + eax*4]
push ecx
shl edi, 2
push edi
push ebp
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x40fb7a
mov eax, dword [esi + 8]
test eax, eax
jne 0x40fb54
xor eax, eax
jmp 0x40fb6f
mov ecx, esi
call fcn.004105f0
test eax, eax
je 0x40fb6f
lea edx, [esp + 0x18]
push 0
push edx
push edi
push ebp
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x40fb7a
pop edi
pop esi
pop ebp
pop ebx
ret 8
cmp dword [esi + 0x50], 2
jae 0x40fbaf
mov eax, dword [esi + 0x2c]
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
push eax
call edi
test eax, eax
jne 0x40fba8
mov eax, dword [esi + 8]
test eax, eax
je 0x40fbaf
mov ecx, esi
call fcn.004105f0
test eax, eax
je 0x40fbaf
mov ecx, dword [esi + 0x2c]
push ecx
call edi
mov dword [esi + 0x2c], 0
mov edx, dword [esi + 0x1c74]
mov eax, dword [esi + 0x1c58]
push edx
push eax
mov ecx, esi
call fcn.0040e5c0
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
ret 8
mov ecx, dword [esp + 0x18]
lea edi, [esi + 0x30]
push edi
push ecx
mov ecx, esi
call fcn.0040e190
test eax, eax
jne 0x40fbeb
pop edi
pop esi
pop ebp
pop ebx
ret 8
mov edi, dword [edi]
mov ebp, dword [sym.imp.KERNEL32.dll_ReadFile]
lea edx, [esp + 0x18]
push 0
lea ebx, [esi + 0x1c78]
push edx
push 4
push ebx
push edi
call ebp
test eax, eax
jne 0x40fc38
mov eax, dword [esi + 8]
test eax, eax
jne 0x40fc15
xor eax, eax
jmp 0x40fc2d
mov ecx, esi
call fcn.004105f0
test eax, eax
je 0x40fc2d
lea eax, [esp + 0x18]
push 0
push eax
push 4
push ebx
push edi
call ebp
test eax, eax
jne 0x40fc38
pop edi
pop esi
pop ebp
pop ebx
ret 8
mov eax, dword [esi + 0x1c5c]
test eax, eax
jne 0x40fc59
mov ebx, dword [ebx]
lea ecx, [ebx + ebx*4]
shl ecx, 2
push ecx
call fcn.00420660
add esp, 4
mov dword [esi + 0x1c5c], eax
mov ebp, dword [esi + 0x1c5c]
test ebp, ebp
jne 0x40fc6c
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
ret 8
mov eax, dword [esi + 0x1c78]
mov ebx, dword [esi + 0x30]
lea edx, [esp + 0x18]
push 0
lea edi, [eax + eax*4]
push edx
shl edi, 2
push edi
push ebp
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x40fcc0
mov eax, dword [esi + 8]
test eax, eax
jne 0x40fc9a
xor eax, eax
jmp 0x40fcb5
mov ecx, esi
call fcn.004105f0
test eax, eax
je 0x40fcb5
lea eax, [esp + 0x18]
push 0
push eax
push edi
push ebp
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x40fcc0
pop edi
pop esi
pop ebp
pop ebx
ret 8
cmp dword [esi + 0x50], 3
jae 0x40fcf5
mov ecx, dword [esi + 0x30]
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
push ecx
call edi
test eax, eax
jne 0x40fcee
mov eax, dword [esi + 8]
test eax, eax
je 0x40fcf5
mov ecx, esi
call fcn.004105f0
test eax, eax
je 0x40fcf5
mov edx, dword [esi + 0x30]
push edx
call edi
mov dword [esi + 0x30], 0
mov eax, dword [esi + 0x1c78]
mov ecx, dword [esi + 0x1c5c]
push eax
push ecx
mov ecx, esi
call fcn.0040e5c0
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
ret 8
mov edx, dword [esp + 0x18]
lea edi, [esi + 0x4c]
push edi
push edx
mov ecx, esi
call fcn.0040e190
test eax, eax
jne 0x40fd31
pop edi
pop esi
pop ebp
pop ebx
ret 8
mov edi, dword [edi]
mov ebp, dword [sym.imp.KERNEL32.dll_ReadFile]
lea eax, [esp + 0x18]
push 0
lea ebx, [esi + 0x1c88]
push eax
push 4
push ebx
push edi
call ebp
test eax, eax
jne 0x40fd7e
mov eax, dword [esi + 8]
test eax, eax
jne 0x40fd5b
xor eax, eax
jmp 0x40fd73
mov ecx, esi
call fcn.004105f0
test eax, eax
je 0x40fd73
lea ecx, [esp + 0x18]
push 0
push ecx
push 4
push ebx
push edi
call ebp
test eax, eax
jne 0x40fd7e
pop edi
pop esi
pop ebp
pop ebx
ret 8
mov eax, dword [esi + 0x1c6c]
test eax, eax
jne 0x40fd9f
mov ebx, dword [ebx]
lea edx, [ebx + ebx*4]
shl edx, 2
push edx
call fcn.00420660
add esp, 4
mov dword [esi + 0x1c6c], eax
mov ebp, dword [esi + 0x1c6c]
test ebp, ebp
jne 0x40fdb2
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
ret 8
mov eax, dword [esi + 0x1c88]
mov ebx, dword [esi + 0x4c]
push 0
lea edi, [eax + eax*4]
lea eax, [esp + 0x1c]
shl edi, 2
push eax
push edi
push ebp
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x40fe06
mov eax, dword [esi + 8]
test eax, eax
jne 0x40fde0
xor eax, eax
jmp 0x40fdfb
mov ecx, esi
call fcn.004105f0
test eax, eax
je 0x40fdfb
lea ecx, [esp + 0x18]
push 0
push ecx
push edi
push ebp
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x40fe06
pop edi
pop esi
pop ebp
pop ebx
ret 8
cmp dword [esi + 0x50], 4
jae 0x40fe3b
mov edx, dword [esi + 0x4c]
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
push edx
call edi
test eax, eax
jne 0x40fe34
mov eax, dword [esi + 8]
test eax, eax
je 0x40fe3b
mov ecx, esi
call fcn.004105f0
test eax, eax
je 0x40fe3b
mov eax, dword [esi + 0x4c]
push eax
call edi
mov dword [esi + 0x4c], 0
mov ecx, dword [esi + 0x1c88]
mov edx, dword [esi + 0x1c6c]
push ecx
push edx
mov ecx, esi
call fcn.0040e5c0
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
ret 8
mov ebx, dword [esp + 0x18]
lea edi, [esi + 0x34]
push edi
push ebx
mov ecx, esi
call fcn.0040e190
test eax, eax
jne 0x40fe77
pop edi
pop esi
pop ebp
pop ebx
ret 8
lea eax, [esi + 0x38]
mov ecx, esi
push eax
push ebx
call fcn.0040e190
test eax, eax
jne 0x40fe8e
pop edi
pop esi
pop ebp
pop ebx
ret 8
lea ecx, [esi + 0x3c]
push ecx
push ebx
mov ecx, esi
call fcn.0040e190
test eax, eax
jne 0x40fea5
pop edi
pop esi
pop ebp
pop ebx
ret 8
lea edx, [esi + 0x40]
mov ecx, esi
push edx
push ebx
call fcn.0040e190
test eax, eax
jne 0x40febc
pop edi
pop esi
pop ebp
pop ebx
ret 8
mov edi, dword [edi]
mov ebp, dword [sym.imp.KERNEL32.dll_ReadFile]
lea eax, [esp + 0x18]
push 0
lea ebx, [esi + 0x1c7c]
push eax
push 4
push ebx
push edi
call ebp
test eax, eax
jne 0x40ff09
mov eax, dword [esi + 8]
test eax, eax
jne 0x40fee6
xor eax, eax
jmp 0x40fefe
mov ecx, esi
call fcn.004105f0
test eax, eax
je 0x40fefe
lea ecx, [esp + 0x18]
push 0
push ecx
push 4
push ebx
push edi
call ebp
test eax, eax
jne 0x40ff09
pop edi
pop esi
pop ebp
pop ebx
ret 8
mov eax, dword [esi + 0x1c60]
test eax, eax
jne 0x40ff2a
mov ebx, dword [ebx]
lea edx, [ebx + ebx*4]
shl edx, 2
push edx
call fcn.00420660
add esp, 4
mov dword [esi + 0x1c60], eax
mov ebp, dword [esi + 0x1c60]
test ebp, ebp
jne 0x40ff3d
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
ret 8
mov eax, dword [esi + 0x1c7c]
mov ebx, dword [esi + 0x34]
push 0
lea edi, [eax + eax*4]
lea eax, [esp + 0x1c]
shl edi, 2
push eax
push edi
push ebp
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x40ff91
mov eax, dword [esi + 8]
test eax, eax
jne 0x40ff6b
xor eax, eax
jmp 0x40ff86
mov ecx, esi
call fcn.004105f0
test eax, eax
je 0x40ff86
lea ecx, [esp + 0x18]
push 0
push ecx
push edi
push ebp
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x40ff91
pop edi
pop esi
pop ebp
pop ebx
ret 8
cmp dword [esi + 0x50], 5
jae 0x40ffc6
mov edx, dword [esi + 0x34]
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
push edx
call edi
test eax, eax
jne 0x40ffbf
mov eax, dword [esi + 8]
test eax, eax
je 0x40ffc6
mov ecx, esi
call fcn.004105f0
test eax, eax
je 0x40ffc6
mov eax, dword [esi + 0x34]
push eax
call edi
mov dword [esi + 0x34], 0
mov ecx, dword [esi + 0x1c7c]
mov edx, dword [esi + 0x1c60]
push ecx
push edx
mov ecx, esi
call fcn.0040e5c0
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
ret 8
lea eax, [esi + 0x44]
mov ecx, esi
push eax
mov eax, dword [esp + 0x1c]
push eax
call fcn.0040e190
test eax, eax
jne 0x410002
pop edi
pop esi
pop ebp
pop ebx
ret 8
mov edi, dword [esi + 0x44]
mov ebx, dword [sym.imp.KERNEL32.dll_ReadFile]
lea ecx, [esp + 0x18]
push 0
lea ebp, [esi + 0x1c80]
push ecx
push 4
push ebp
push edi
call ebx
test eax, eax
jne 0x410050
mov eax, dword [esi + 8]
test eax, eax
jne 0x41002d
xor eax, eax
jmp 0x410045
mov ecx, esi
call fcn.004105f0
test eax, eax
je 0x410045
lea edx, [esp + 0x18]
push 0
push edx
push 4
push ebp
push edi
call ebx
test eax, eax
jne 0x410050
pop edi
pop esi
pop ebp
pop ebx
ret 8
mov eax, dword [esi + 0x1c64]
test eax, eax
jne 0x410073
mov ebp, dword [ebp]
lea eax, [ebp + ebp*4]
shl eax, 2
push eax
call fcn.00420660
add esp, 4
mov dword [esi + 0x1c64], eax
mov ebp, dword [esi + 0x1c64]
test ebp, ebp
jne 0x410086
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
ret 8
mov eax, dword [esi + 0x1c80]
mov ebx, dword [esi + 0x44]
lea ecx, [esp + 0x18]
push 0
lea edi, [eax + eax*4]
push ecx
shl edi, 2
push edi
push ebp
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x4100da
mov eax, dword [esi + 8]
test eax, eax
jne 0x4100b4
xor eax, eax
jmp 0x4100cf
mov ecx, esi
call fcn.004105f0
test eax, eax
je 0x4100cf
lea edx, [esp + 0x18]
push 0
push edx
push edi
push ebp
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x4100da
pop edi
pop esi
pop ebp
pop ebx
ret 8
mov eax, dword [esi + 0x1c80]
mov ecx, dword [esi + 0x1c64]
push eax
push ecx
mov ecx, esi
call fcn.0040e5c0
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
ret 8
mov edx, dword [esp + 0x18]
lea eax, [esi + 0x48]
push eax
push edx
mov ecx, esi
call fcn.0040e190
test eax, eax
jne 0x410116
pop edi
pop esi
pop ebp
pop ebx
ret 8
mov edi, dword [esi + 0x48]
mov ebx, dword [sym.imp.KERNEL32.dll_ReadFile]
lea eax, [esp + 0x18]
push 0
lea ebp, [esi + 0x1c84]
push eax
push 4
push ebp
push edi
call ebx
test eax, eax
jne 0x410164
mov eax, dword [esi + 8]
test eax, eax
jne 0x410141
xor eax, eax
jmp 0x410159
mov ecx, esi
call fcn.004105f0
test eax, eax
je 0x410159
lea ecx, [esp + 0x18]
push 0
push ecx
push 4
push ebp
push edi
call ebx
test eax, eax
jne 0x410164
pop edi
pop esi
pop ebp
pop ebx
ret 8
mov eax, dword [esi + 0x1c68]
test eax, eax
jne 0x410187
mov ebp, dword [ebp]
lea edx, [ebp + ebp*4]
shl edx, 2
push edx
call fcn.00420660
add esp, 4
mov dword [esi + 0x1c68], eax
mov ebp, dword [esi + 0x1c68]
test ebp, ebp
jne 0x41019a
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
ret 8
mov eax, dword [esi + 0x1c84]
mov ebx, dword [esi + 0x48]
push 0
lea edi, [eax + eax*4]
lea eax, [esp + 0x1c]
shl edi, 2
push eax
push edi
push ebp
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x4101ee
mov eax, dword [esi + 8]
test eax, eax
jne 0x4101c8
xor eax, eax
jmp 0x4101e3
mov ecx, esi
call fcn.004105f0
test eax, eax
je 0x4101e3
lea ecx, [esp + 0x18]
push 0
push ecx
push edi
push ebp
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x4101ee
pop edi
pop esi
pop ebp
pop ebx
ret 8
mov edx, dword [esi + 0x1c84]
mov eax, dword [esi + 0x1c68]
push edx
push eax
mov ecx, esi
call fcn.0040e5c0
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
ret 8