Function at 0x41c170
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x410
mov eax, dword [0x47e00c]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0x408], ecx
push 0
push 1
call dword [sym.imp.binkw32.dll__BinkControlPlatformFeatures_8]
mov eax, dword [ebp - 0x408]
cmp dword [eax + 0x1ac], 0
je 0x41c1f1
push 0x4000
mov ecx, dword [ebp - 0x408]
mov edx, dword [ecx + 0x1d8]
push edx
mov eax, dword [ebp - 0x408]
mov ecx, dword [eax + 0x1ac]
push ecx
call dword [sym.imp.KERNEL32.dll_VirtualFree]
push 0x8000
push 0
mov edx, dword [ebp - 0x408]
mov eax, dword [edx + 0x1ac]
push eax
call dword [sym.imp.KERNEL32.dll_VirtualFree]
mov ecx, dword [ebp - 0x408]
mov dword [ecx + 0x1ac], 0
movzx edx, byte [ebp + 0x10]
cmp edx, 1
jne 0x41c3a8
push 0x47077c
mov eax, dword [ebp + 8]
push eax
call fcn.0044f249
add esp, 8
mov dword [ebp - 0x40c], eax
cmp dword [ebp - 0x40c], 0
je 0x41c325
mov cl, byte [0x46daca]
mov byte [ebp - 0x204], cl
push 0x1ff
push 0
lea edx, [ebp - 0x203]
push edx
call fcn.0044c410
add esp, 0xc
mov eax, dword [ebp - 0x40c]
push eax
call fcn.00419630
add esp, 4
mov ecx, dword [ebp - 0x408]
mov dword [ecx + 0x1d8], eax
push 4
push 0x103000
mov edx, dword [ebp - 0x408]
mov eax, dword [edx + 0x1d8]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov ecx, dword [ebp - 0x408]
mov dword [ecx + 0x1ac], eax
mov edx, dword [ebp - 0x408]
cmp dword [edx + 0x1ac], 0
jne 0x41c2d2
mov eax, dword [ebp + 8]
push eax
push 0x47076c
lea ecx, [ebp - 0x204]
push ecx
call fcn.00403de0
add esp, 0xc
call fcn.00423340
lea edx, [ebp - 0x204]
push edx
push 0xfffff449
mov eax, dword [0x4805dc]
push eax
call fcn.00423680
add esp, 0xc
jmp 0x41c488
mov ecx, dword [ebp - 0x40c]
push ecx
mov edx, dword [ebp - 0x408]
mov eax, dword [edx + 0x1d8]
push eax
push 1
mov ecx, dword [ebp - 0x408]
mov edx, dword [ecx + 0x1ac]
push edx
call fcn.0044f999
add esp, 0x10
push 0x14
mov eax, dword [ebp - 0x408]
mov ecx, dword [eax + 0x1ac]
push ecx
call fcn.00419510
add esp, 8
mov edx, dword [ebp - 0x40c]
push edx
call fcn.0044f4bd
add esp, 4
jmp 0x41c383
mov al, byte [0x46dacb]
mov byte [ebp - 0x404], al
push 0x1ff
push 0
lea ecx, [ebp - 0x403]
push ecx
call fcn.0044c410
add esp, 0xc
mov edx, dword [ebp + 8]
push edx
push 0x470780
lea eax, [ebp - 0x404]
push eax
call fcn.00403de0
add esp, 0xc
call fcn.00423340
lea ecx, [ebp - 0x404]
push ecx
push 0xfffff449
mov edx, dword [0x4805dc]
push edx
call fcn.00423680
add esp, 0xc
jmp 0x41c488
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp - 0x408]
mov edx, dword [ecx + 0x1ac]
push edx
call dword [sym.imp.binkw32.dll__BinkOpen_8]
mov ecx, dword [ebp - 0x408]
mov dword [ecx + 0xd0], eax
jmp 0x41c3c2
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.binkw32.dll__BinkOpen_8]
mov ecx, dword [ebp - 0x408]
mov dword [ecx + 0xd0], eax
mov edx, dword [ebp - 0x408]
cmp dword [edx + 0xd0], 0
jne 0x41c3d6
jmp 0x41c488
mov eax, dword [ebp - 0x408]
mov ecx, dword [eax + 0xd0]
mov edx, dword [ebp - 0x408]
mov eax, dword [ecx + 0x14]
mov dword [edx + 0x1d0], eax
mov ecx, dword [ebp - 0x408]
mov edx, dword [ecx + 0xd0]
mov dword [edx + 0xf8], 0
call fcn.00436fa0
mov ecx, eax
call fcn.00436f70
mov dword [ebp - 0x410], eax
movzx eax, byte [0x4805db]
test eax, eax
jne 0x41c446
call fcn.00436fa0
mov ecx, eax
call fcn.00436f70
push eax
call fcn.00437460
add esp, 4
test eax, eax
jne 0x41c446
mov byte [0x4805db], 1
jmp 0x41c488
mov ecx, dword [ebp - 0x408]
add ecx, 0xd4
push ecx
mov edx, dword [ebp - 0x408]
mov eax, dword [edx + 0xd0]
push eax
call dword [sym.imp.binkw32.dll__BinkGetFrameBuffersInfo_8]
mov ecx, dword [ebp - 0x408]
add ecx, 0xd4
push ecx
call fcn.00436fa0
mov ecx, eax
call fcn.00436f70
push eax
call fcn.004377b0
add esp, 8
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00449aef
mov esp, ebp
pop ebp
ret 0xc