Function at 0x479310
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov ecx, dword [edi + 0xc]
imul ecx, dword [ebp + 0x10]
mov edx, dword [edi + 0x18]
mov eax, dword [edi + 0x2c]
add ecx, dword [ebp + 0xc]
imul edx, ecx
lea ecx, [ecx + ecx*4]
lea ebx, [eax + ecx*8]
mov eax, dword [ebp + 0x14]
imul edx, dword [edi + 8]
imul edx, dword [edi + 8]
add edx, dword [edi + 0x14]
sub eax, 1
je 0x47945e
sub eax, 1
jne 0x479456
mov esi, dword [edi + 0xc0]
mov eax, 1
test esi, esi
je 0x479370
cmp dword [edi + 0xc4], 0
jne 0x479370
mov word [ebx + 4], ax
jmp 0x479373
mov esi, dword [edi + 0x38]
push 0
push edx
push esi
call fcn.004c3c02
add esp, 0xc
cmp dword [ebx + 0xc], 0
jne 0x479392
push str.Writing_from_unallocated_tile
call fcn.004158e0
add esp, 4
mov ecx, dword [ebx + 0xc]
test ecx, ecx
je 0x4793ac
mov eax, dword [edi + 8]
imul eax, eax
push esi
push 1
push eax
push ecx
call fcn.004c3f01
add esp, 0x10
mov ecx, dword [ebx + 0x10]
test ecx, ecx
je 0x4793c6
mov eax, dword [edi + 8]
imul eax, eax
push esi
push 1
push eax
push ecx
call fcn.004c3f01
add esp, 0x10
mov ecx, dword [ebx + 0x14]
test ecx, ecx
je 0x4793e0
mov eax, dword [edi + 8]
imul eax, eax
push esi
push 1
push eax
push ecx
call fcn.004c3f01
add esp, 0x10
mov ecx, dword [ebx + 0x18]
test ecx, ecx
je 0x4793fa
mov eax, dword [edi + 8]
imul eax, eax
push esi
push 1
push eax
push ecx
call fcn.004c3f01
add esp, 0x10
mov ecx, dword [ebx + 0x1c]
test ecx, ecx
je 0x479414
mov eax, dword [edi + 8]
imul eax, eax
push esi
push 1
push eax
push ecx
call fcn.004c3f01
add esp, 0x10
mov ecx, dword [ebx + 0x20]
test ecx, ecx
je 0x47942e
mov eax, dword [edi + 8]
imul eax, eax
push esi
push 1
push eax
push ecx
call fcn.004c3f01
add esp, 0x10
mov ecx, dword [ebx + 0x24]
test ecx, ecx
je 0x479448
mov eax, dword [edi + 8]
imul eax, eax
push esi
push 1
push eax
push ecx
call fcn.004c3f01
add esp, 0x10
mov eax, 1
mov word [ebx + 2], ax
jmp 0x479556
mov esi, dword [ebp + 0x14]
jmp 0x479556
mov esi, dword [edi + 0xc0]
test esi, esi
je 0x479478
cmp dword [edi + 0xc4], 0
jne 0x47947b
cmp word [ebx + 4], 0
jne 0x47947b
mov esi, dword [edi + 0x38]
push 0
push edx
push esi
call fcn.004c3c02
add esp, 0xc
cmp dword [ebx + 0xc], 0
jne 0x47949a
push str.Reading_into_unallocated_tile
call fcn.004158e0
add esp, 4
mov ecx, dword [ebx + 0xc]
test ecx, ecx
je 0x4794b4
mov eax, dword [edi + 8]
imul eax, eax
push esi
push 1
push eax
push ecx
call fcn.004c37de
add esp, 0x10
mov ecx, dword [ebx + 0x10]
test ecx, ecx
je 0x4794ce
mov eax, dword [edi + 8]
imul eax, eax
push esi
push 1
push eax
push ecx
call fcn.004c37de
add esp, 0x10
mov ecx, dword [ebx + 0x14]
test ecx, ecx
je 0x4794e8
mov eax, dword [edi + 8]
imul eax, eax
push esi
push 1
push eax
push ecx
call fcn.004c37de
add esp, 0x10
mov ecx, dword [ebx + 0x18]
test ecx, ecx
je 0x479502
mov eax, dword [edi + 8]
imul eax, eax
push esi
push 1
push eax
push ecx
call fcn.004c37de
add esp, 0x10
mov ecx, dword [ebx + 0x1c]
test ecx, ecx
je 0x47951c
mov eax, dword [edi + 8]
imul eax, eax
push esi
push 1
push eax
push ecx
call fcn.004c37de
add esp, 0x10
mov ecx, dword [ebx + 0x20]
test ecx, ecx
je 0x479536
mov eax, dword [edi + 8]
imul eax, eax
push esi
push 1
push eax
push ecx
call fcn.004c37de
add esp, 0x10
mov ecx, dword [ebx + 0x24]
test ecx, ecx
je 0x479550
mov eax, dword [edi + 8]
imul eax, eax
push esi
push 1
push eax
push ecx
call fcn.004c37de
add esp, 0x10
mov dword [ebx], 0x10001
push esi
call fcn.004d245c
mov eax, dword [ebp + 0x14]
push esi
mov dword [edi + 0x24], eax
call fcn.004d330f
add esp, 8
mov dword [edi + 0x20], eax
pop edi
pop esi
pop ebx
pop ebp
ret