Function at 0x406190
Capabilities:
Read file on windows

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x2c
mov eax, dword [esp + 0x40]
mov dword [esp + 0x20], eax
mov ebx, dword [esp + 0x44]
mov ebp, dword [esp + 0x48]
mov edx, 0x44ee94
mov ecx, 5
cld
mov esi, ebx
mov edi, edx
repe cmpsb byte [esi], byte es:[edi]
seta dl
setb al
cmp dl, al
jne 0x406482
mov eax, dword [esp + 0x4c]
cdq
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x20]
mov ecx, dword [edx + 0x60]
mov ebx, dword [edx + 0x64]
cmp dword [esp + 0x1c], ebx
jl 0x4061f1
jg 0x4061e9
cmp eax, ecx
jbe 0x4061f1
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x18]
mov ecx, 0
test ebx, ebx
je 0x406595
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + 4]
mov ecx, dword [eax]
mov esi, dword [esp + 0x20]
mov eax, dword [esi + 0x400c0]
mov edx, dword [esi + 0x400c4]
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov eax, dword [esi + 4]
mov dword [esp], eax
call dword [ecx + 0x18]
test al, al
jne 0x406252
mov dword [esp + 8], 0x44eaac
mov dword [esp + 4], 0xfffffff6
mov dword [esp], esi
call fcn.00409f16
mov ecx, 0xfffffff6
jmp 0x406595
mov edi, dword [esp + 0x20]
mov eax, dword [edi + 0x58]
mov dword [esp + 8], ebx
mov dword [esp + 4], ebp
mov eax, dword [eax + 8]
mov dword [esp], eax
call sub.msvcrt.dll__read
test eax, eax
jns 0x40645c
cmp dword [0x7184d0], 0
je 0x406291
mov dword [esp + 4], 1
mov dword [esp], 0x7184f0
call sub.msvcrt.dll_longjmp
mov dword [esp], 0x40000
call sub.msvcrt.dll_malloc
test eax, eax
jne 0x406336
cmp dword [0x7184d0], 0
je 0x4062c2
mov dword [esp + 4], 1
mov dword [esp], 0x7184f0
call sub.msvcrt.dll_longjmp
mov dword [esp], 0x40000
call fcn.004019f2
mov ebx, eax
mov dword [esp], 0x40000
call fcn.004019f2
mov esi, eax
mov dword [esp + 8], 0x40000
mov dword [esp + 4], 0x44e828
mov dword [esp], ebx
call sub.msvcrt.dll_sprintf
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.0040ee32
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], str.Error_encountered
mov dword [esp + 4], esi
mov dword [esp], 0
call sub.USER32.dll_MessageBoxW
sub esp, 0x10
call fcn.0040a376
mov dword [esp], 2
call sub.msvcrt.dll_exit
mov ebx, eax
mov dword [esp], 0x40000
call sub.msvcrt.dll_malloc
mov esi, eax
test eax, eax
jne 0x4063df
cmp dword [0x7184d0], 0
je 0x40636b
mov dword [esp + 4], 1
mov dword [esp], 0x7184f0
call sub.msvcrt.dll_longjmp
mov dword [esp], 0x40000
call fcn.004019f2
mov ebx, eax
mov dword [esp], 0x40000
call fcn.004019f2
mov esi, eax
mov dword [esp + 8], 0x40000
mov dword [esp + 4], 0x44e828
mov dword [esp], ebx
call sub.msvcrt.dll_sprintf
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.0040ee32
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], str.Error_encountered
mov dword [esp + 4], esi
mov dword [esp], 0
call sub.USER32.dll_MessageBoxW
sub esp, 0x10
call fcn.0040a376
mov dword [esp], 2
call sub.msvcrt.dll_exit
mov dword [ebx], 0x4f525245
mov dword [ebx + 4], 0x66203a52
mov dword [ebx + 8], 0x20656c69
mov dword [ebx + 0xc], 0x64616572
mov dword [ebx + 0x10], 0x65706f20
mov dword [ebx + 0x14], 0x69746172
mov dword [ebx + 0x18], 0x66206e6f
mov dword [ebx + 0x1c], 0x656c6961
mov word [ebx + 0x20], 0x64
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.0040ee32
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], str.Error_encountered
mov dword [esp + 4], esi
mov dword [esp], 0
call sub.USER32.dll_MessageBoxW
sub esp, 0x10
call fcn.0040a376
mov dword [esp], 2
call sub.msvcrt.dll_exit
mov ecx, eax
test eax, eax
jle 0x406595
cdq
mov ebx, dword [esp + 0x20]
sub dword [ebx + 0x60], eax
sbb dword [ebx + 0x64], edx
add dword [ebx + 0x400c0], eax
adc dword [ebx + 0x400c4], edx
jmp 0x406595
mov edx, 0x44ee99
mov ecx, 6
cld
mov esi, ebx
mov edi, edx
repe cmpsb byte [esi], byte es:[edi]
seta dl
setb al
mov ecx, 0xfffffff8
cmp dl, al
jne 0x406595
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x24], eax
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 0x6c]
mov ecx, 0xfffffff7
cmp eax, dword [edx + 0x74]
jg 0x406595
cmp dword [esp + 0x4c], 0
jle 0x406575
mov eax, dword [esp + 0x4c]
cdq
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x20]
mov ecx, dword [edx + 0x400b0]
mov ebx, dword [edx + 0x400b4]
cmp dword [esp + 0x1c], ebx
jl 0x4064ff
jg 0x4064f7
cmp eax, ecx
jbe 0x4064ff
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x18]
mov dword [esp + 8], ebx
mov dword [esp + 4], ebp
mov esi, dword [esp + 0x20]
mov dword [esp], esi
call fcn.00405ac2
test al, al
je 0x40657b
mov eax, ebx
cdq
sub dword [esi + 0x400b0], ebx
sbb dword [esi + 0x400b4], edx
mov eax, dword [esi + 0x400b4]
or eax, dword [esi + 0x400b0]
jne 0x406564
mov dword [esp], esi
call fcn.00405db2
test al, al
je 0x406582
mov eax, dword [esi + 0x6c]
inc eax
mov dword [esi + 0x6c], eax
cmp eax, dword [esi + 0x74]
jg 0x406589
mov dword [esp + 4], 1
mov dword [esp], esi
call fcn.0040541c
test al, al
je 0x406590
add ebp, ebx
sub dword [esp + 0x4c], ebx
cmp dword [esp + 0x4c], 0
jg 0x4064ce
mov ecx, dword [esp + 0x24]
jmp 0x406595
mov ecx, 0xfffffff6
jmp 0x406595
mov ecx, 0xfffffff6
jmp 0x406595
mov ecx, 0xfffffff7
jmp 0x406595
mov ecx, 0xfffffff6
mov eax, ecx
add esp, 0x2c
pop ebx
pop esi
pop edi
pop ebp
ret