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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x64
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
xor esi, esi
mov edi, dword [0x41d5f0]
xor edi, ebp
mov dword [ebp - 0x10], edi
mov edi, dword [ebp + 8]
mov dword [esp], edi
mov dword [esp + 4], 0x80000000
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 3
mov dword [esp + 0x14], 0x80
mov dword [esp + 0x18], 0
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x40], esi
call dword [sym.imp.KERNEL32.dll_CreateFileA]
sub esp, 0x1c
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x30], 0x16496587
mov eax, dword [ebp - 0x30]
mov ecx, eax
sub ecx, 0x850096d9
mov dword [ebp - 0x44], eax
je 0x4023ba
jmp 0x402183
mov eax, dword [ebp - 0x44]
sub eax, 0x85dddfa8
je 0x4023d4
jmp 0x402196
mov eax, dword [ebp - 0x44]
sub eax, 0x9e248cf7
je 0x40244e
jmp 0x4021a9
mov eax, dword [ebp - 0x44]
sub eax, 0xb701fe15
je 0x4025b4
jmp 0x4021bc
mov eax, dword [ebp - 0x44]
sub eax, 0xc7e8f405
je 0x4022c4
jmp 0x4021cf
mov eax, dword [ebp - 0x44]
sub eax, 0xcd247fd9
je 0x402575
jmp 0x4021e2
mov eax, dword [ebp - 0x44]
sub eax, 0xe01c260c
je 0x402340
jmp 0x4021f5
mov eax, dword [ebp - 0x44]
sub eax, 0xe357a698
je 0x40249b
jmp 0x402208
mov eax, dword [ebp - 0x44]
sub eax, 0xed8a138e
je 0x402525
jmp 0x40221b
mov eax, dword [ebp - 0x44]
sub eax, 0xf4d7a924
je 0x402594
jmp 0x40222e
mov eax, dword [ebp - 0x44]
sub eax, 0x8f51b8a
je 0x40253f
jmp 0x402241
mov eax, dword [ebp - 0x44]
sub eax, 0xa77be2a
je 0x4025df
jmp 0x402254
mov eax, dword [ebp - 0x44]
sub eax, 0x16420f08
je 0x402556
jmp 0x402267
mov eax, dword [ebp - 0x44]
sub eax, 0x16496587
je 0x4022a5
jmp 0x40227a
mov eax, dword [ebp - 0x44]
sub eax, 0x5991e1c4
je 0x4023f3
jmp 0x40228d
mov eax, dword [ebp - 0x44]
sub eax, 0x633a4eb1
je 0x4022d4
jmp 0x4022a0
jmp 0x4025e6
mov eax, dword [ebp - 0x20]
mov ecx, 0xffffffff
cmp eax, ecx
mov eax, 0xc7e8f405
mov ecx, 0x633a4eb1
cmove ecx, eax
mov dword [ebp - 0x30], ecx
jmp 0x4025e6
mov byte [ebp - 0x21], 0
mov dword [ebp - 0x30], 0xf4d7a924
jmp 0x4025e6
xor eax, eax
mov ecx, dword [0x41dfc4]
mov edx, dword [0x41dfc8]
sub eax, 1
mov esi, ecx
add esi, eax
imul ecx, esi
and ecx, 1
cmp ecx, 0
sete bl
cmp edx, 0xa
setl bh
mov al, bl
xor al, 0xff
mov ah, bh
xor ah, 0xff
mov cl, 1
xor cl, 1
mov ch, al
and ch, 0xff
and bl, cl
mov dl, ah
and dl, 0xff
and bh, cl
or ch, bl
or dl, bh
xor ch, dl
or al, ah
xor al, 0xff
or cl, 1
and al, cl
or ch, al
test ch, 1
mov esi, 0xe01c260c
mov edi, 0xb701fe15
cmovne edi, esi
mov dword [ebp - 0x30], edi
jmp 0x4025e6
xor eax, eax
mov ecx, dword [ebp - 0x28]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [ebp - 0x48], eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
sub esp, 8
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0xffffffff
sete dl
and dl, 1
mov byte [ebp - 0x19], dl
mov eax, dword [0x41dfc4]
mov ecx, dword [0x41dfc8]
mov esi, eax
sub esi, 0xa5da69a2
sub esi, 1
add esi, 0xa5da69a2
imul eax, esi
and eax, 1
cmp eax, 0
sete dl
cmp ecx, 0xa
setl dh
mov bl, dl
and bl, dh
xor dl, dh
or bl, dl
test bl, 1
mov eax, 0x850096d9
mov ecx, 0xb701fe15
cmovne ecx, eax
mov dword [ebp - 0x30], ecx
jmp 0x4025e6
mov al, byte [ebp - 0x19]
test al, 1
mov ecx, 0x85dddfa8
mov edx, 0x5991e1c4
cmovne edx, ecx
mov dword [ebp - 0x30], edx
jmp 0x4025e6
mov eax, dword [ebp - 0x28]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
sub esp, 4
mov byte [ebp - 0x21], 0
mov dword [ebp - 0x30], 0xf4d7a924
jmp 0x4025e6
mov eax, dword [ebp - 0x2c]
mov dword [esp], eax
call fcn.004065d3
xor ecx, ecx
mov edx, dword [ebp + 0xc]
mov dword [edx], eax
mov eax, dword [ebp + 0x10]
mov edx, dword [ebp - 0x2c]
mov esi, dword [ebp + 0xc]
mov esi, dword [esi]
mov edi, dword [ebp - 0x28]
mov dword [esp], edi
mov dword [esp + 4], esi
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
mov dword [ebp - 0x4c], ecx
call dword [sym.imp.KERNEL32.dll_ReadFile]
sub esp, 0x14
cmp eax, 0
mov eax, 0xcd247fd9
mov ecx, 0x9e248cf7
cmovne ecx, eax
mov dword [ebp - 0x30], ecx
jmp 0x4025e6
mov eax, dword [0x41dfc4]
mov ecx, dword [0x41dfc8]
mov edx, eax
add edx, 0xd0d844b7
sub edx, 1
sub edx, 0xd0d844b7
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
mov al, bl
and al, bh
xor bl, bh
or al, bl
test al, 1
mov ecx, 0xe357a698
mov edx, 0xa77be2a
cmovne edx, ecx
mov dword [ebp - 0x30], edx
jmp 0x4025e6
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
cmp eax, 0
sete cl
and cl, 1
mov byte [ebp - 0x11], cl
mov eax, dword [0x41dfc4]
mov edx, dword [0x41dfc8]
mov esi, eax
add esi, 0xc22f270
sub esi, 1
sub esi, 0xc22f270
imul eax, esi
and eax, 1
cmp eax, 0
sete cl
cmp edx, 0xa
setl ch
mov bl, cl
xor bl, 0xff
mov bh, ch
xor bh, 0xff
mov al, 1
xor al, 0
mov ah, bl
and ah, 0
and cl, al
mov dl, bh
and dl, 0
and ch, al
or ah, cl
or dl, ch
xor ah, dl
or bl, bh
xor bl, 0xff
or al, 0
and bl, al
or ah, bl
test ah, 1
mov esi, 0xed8a138e
mov edi, 0xa77be2a
cmovne edi, esi
mov dword [ebp - 0x30], edi
jmp 0x4025e6
mov al, byte [ebp - 0x11]
test al, 1
mov ecx, 0x16420f08
mov edx, 0x8f51b8a
cmovne edx, ecx
mov dword [ebp - 0x30], edx
jmp 0x4025e6
mov eax, dword [ebp - 0x18]
mov dword [esp], eax
call fcn.004065dc
mov dword [ebp - 0x30], 0x16420f08
jmp 0x4025e6
mov eax, dword [ebp - 0x28]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
sub esp, 4
mov byte [ebp - 0x21], 0
mov dword [ebp - 0x30], 0xf4d7a924
jmp 0x4025e6
mov eax, dword [ebp - 0x28]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
sub esp, 4
mov byte [ebp - 0x21], 1
mov dword [ebp - 0x30], 0xf4d7a924
jmp 0x4025e6
mov al, byte [ebp - 0x21]
and al, 1
movzx eax, al
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
mov dword [ebp - 0x50], eax
call fcn.004065e1
mov eax, dword [ebp - 0x50]
add esp, 0x64
pop esi
pop edi
pop ebx
pop ebp
ret
xor eax, eax
mov ecx, dword [ebp - 0x28]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [ebp - 0x54], eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
sub esp, 8
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x30], 0xe01c260c
jmp 0x4025e6
mov dword [ebp - 0x30], 0xe357a698
jmp 0x40216a