Function at 0x40f925
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x24
push ebx
push esi
mov esi, dword [ebp + 8]
add esi, 0x4f4
cmp dword [esi + 0x14], 8
push edi
jb 0x40f944
mov eax, dword [esi]
jmp 0x40f946
mov eax, esi
push eax
call dword [0x4a62d4]
test eax, eax
je 0x40fc85
and dword [esp + 0x10], 0
lea edi, [esp + 0x10]
call fcn.0040b013
test eax, eax
js 0x40fc77
mov ebx, dword [esp + 0x10]
test ebx, ebx
je 0x40fc85
cmp dword [esi + 0x14], 8
jb 0x40f97f
mov esi, dword [esi]
push esi
lea esi, [esp + 0x24]
call fcn.0040d5e9
mov edx, eax
call fcn.0040d617
xor ecx, ecx
cmp cx, ax
mov eax, esi
push eax
sete bl
call dword [0x4a628c]
test bl, bl
je 0x40f9b3
lea esi, [esp + 0x10]
call fcn.0040aff9
jmp 0x40fc77
mov esi, dword [esp + 0x10]
test esi, esi
jne 0x40f9c5
push 0x80004003
call fcn.004789b0
lea edi, [esp + 0x18]
call fcn.0040d5bb
mov esi, dword [esp + 0x18]
test esi, esi
je 0x40fc77
push ecx
mov edi, esp
push 0x4b2cbc
call fcn.0040d4e9
lea ebx, [esp + 0x18]
call fcn.0040d44a
mov esi, dword [esp + 0x14]
test esi, esi
je 0x40fc6d
mov eax, dword [ebp + 8]
or dword [eax + 0x498], 0xffffffff
push ecx
mov edi, esp
push str.show
call fcn.0040d4e9
lea ebx, [esp + 0x20]
call fcn.0040d44a
mov ebx, dword [esp + 0x1c]
test ebx, ebx
je 0x40fa5e
lea edi, [esp + 0x1c]
mov eax, ebx
call fcn.0040d3f0
mov eax, dword [eax]
test eax, eax
je 0x40fa39
mov esi, dword [eax]
jmp 0x40fa3b
xor esi, esi
lea edi, [esp + 0x1c]
call fcn.0040d533
test esi, esi
je 0x40fa58
push esi
call fcn.00479f04
pop ecx
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x498], eax
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
mov eax, dword [ebp + 8]
or dword [eax + 0x49c], 0xffffffff
push ecx
mov edi, esp
push str.width
call fcn.0040d4e9
mov esi, dword [esp + 0x18]
lea ebx, [esp + 0x20]
call fcn.0040d44a
mov ebx, dword [esp + 0x1c]
test ebx, ebx
je 0x40fac4
lea edi, [esp + 0x1c]
mov eax, ebx
call fcn.0040d3f0
mov eax, dword [eax]
test eax, eax
je 0x40fa9f
mov esi, dword [eax]
jmp 0x40faa1
xor esi, esi
lea edi, [esp + 0x1c]
call fcn.0040d533
test esi, esi
je 0x40fabe
push esi
call fcn.00479f04
pop ecx
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x49c], eax
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
mov eax, dword [ebp + 8]
or dword [eax + 0x4a0], 0xffffffff
push ecx
mov edi, esp
push str.height
call fcn.0040d4e9
mov esi, dword [esp + 0x18]
lea ebx, [esp + 0x20]
call fcn.0040d44a
mov ebx, dword [esp + 0x1c]
test ebx, ebx
je 0x40fb2a
lea edi, [esp + 0x1c]
mov eax, ebx
call fcn.0040d3f0
mov eax, dword [eax]
test eax, eax
je 0x40fb05
mov esi, dword [eax]
jmp 0x40fb07
xor esi, esi
lea edi, [esp + 0x1c]
call fcn.0040d533
test esi, esi
je 0x40fb24
push esi
call fcn.00479f04
pop ecx
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x4a0], eax
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
push ecx
mov edi, esp
push 0x4b33e4
call fcn.0040d4e9
mov esi, dword [esp + 0x18]
lea ebx, [esp + 0x20]
call fcn.0040d44a
mov esi, dword [esp + 0x1c]
test esi, esi
je 0x40fb81
lea edi, [esp + 0x1c]
mov eax, esi
call fcn.0040d3f0
mov eax, dword [eax]
test eax, eax
je 0x40fb61
mov eax, dword [eax]
jmp 0x40fb63
xor eax, eax
mov ecx, dword [ebp + 8]
add ecx, 0x4a4
push eax
call fcn.004073ca
lea edi, [esp + 0x1c]
call fcn.0040d533
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov eax, dword [ebp + 8]
or dword [eax + 0x4c0], 0xffffffff
push ecx
mov edi, esp
push str.count
call fcn.0040d4e9
mov edi, dword [esp + 0x18]
lea ebx, [esp + 0x20]
mov esi, edi
call fcn.0040d44a
mov esi, dword [esp + 0x1c]
test esi, esi
je 0x40fbf4
lea edi, [esp + 0x1c]
mov eax, esi
call fcn.0040d3f0
mov eax, dword [eax]
test eax, eax
je 0x40fbc4
mov ebx, dword [eax]
jmp 0x40fbc6
xor ebx, ebx
lea edi, [esp + 0x1c]
call fcn.0040d533
test ebx, ebx
je 0x40fbe5
push ebx
call fcn.00479f04
mov ebx, dword [ebp + 8]
pop ecx
mov dword [ebx + 0x4c0], eax
jmp 0x40fbe8
mov ebx, dword [ebp + 8]
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov edi, dword [esp + 0x14]
jmp 0x40fbf7
mov ebx, dword [ebp + 8]
cmp dword [ebx + 0x498], 0
jle 0x40fc67
mov eax, dword [ebx + 0x49c]
test eax, eax
jle 0x40fc67
mov ecx, dword [ebx + 0x4a0]
test ecx, ecx
jle 0x40fc67
add ecx, 0x1d
add eax, 2
push ecx
lea esi, [ebx + 0x428]
push eax
mov dword [ebx + 0x49c], eax
mov dword [ebx + 0x4a0], ecx
call fcn.00401c8f
cmp dword [0x4d1d78], 1
jne 0x40fc67
cmp dword [ebx + 0x4b4], 0
jbe 0x40fc67
add ebx, 0x4a4
cmp dword [ebx + 0x14], 8
jb 0x40fc53
mov ebx, dword [ebx]
push ebx
mov edi, esi
call fcn.00401bd6
xor eax, eax
inc eax
call fcn.00401a57
mov edi, dword [esp + 0x14]
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x10]
test eax, eax
je 0x40fc85
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp + 8]
pop edi
mov byte [eax + 0x4d0], 1
xor eax, eax
pop esi
inc eax
pop ebx
mov esp, ebp
pop ebp
ret 4