Function at 0x42ec70
Capabilities:
Get file size

Disassembly:
sub esp, 0x34
push ebx
push ebp
push esi
mov ebx, dword [0x56f180]
push edi
xor edx, edx
mov ecx, 7
xor eax, eax
lea edi, [esp + 0x28]
mov dword [esp + 0x24], edx
rep stosd dword es:[edi], eax
mov eax, dword [0x56f160]
mov ecx, dword [esp + 0x4c]
cmp eax, edx
mov dword [esp + 0x1c], edx
mov esi, ecx
lea ebp, [eax - 1]
je 0x42ecce
lea edi, [ebx + 8]
push edi
push ecx
call fcn.0043d780
add esp, 8
test eax, eax
je 0x42f15e
mov ecx, dword [esp + 0x4c]
add ebx, 0x2c
add edi, 0x2c
mov eax, ebp
dec ebp
test eax, eax
jne 0x42eca9
xor edx, edx
cmp byte [ecx], 0x2a
jne 0x42ecde
mov dword [esp + 0x1c], 1
lea esi, [ecx + 1]
cmp word [0x8ff9aa], 2
jae 0x42ecec
mov dword [esp + 0x1c], edx
mov edi, dword [esp + 0x48]
push str..gfx
push esi
push edi
call fcn.00433750
mov ebp, eax
add esp, 0xc
cmp ebp, 0xffffffff
je 0x42ef66
lea ecx, [esp + 0x18]
push ecx
push ebp
call fcn.00433820
add esp, 8
test eax, eax
je 0x42ef18
mov eax, dword [esp + 0x18]
cmp eax, 0x507854
jne 0x42ed32
mov byte [esp + 0x13], 0
jmp 0x42ed42
cmp eax, 0x1507854
jne 0x42eeff
mov byte [esp + 0x13], 1
mov esi, 0x519741
mov edi, 0x100
lea edx, [esi - 1]
push edx
push ebp
call fcn.004337f0
push esi
push ebp
call fcn.004337f0
lea eax, [esi + 1]
add esi, 4
push eax
push ebp
call fcn.004337f0
add esp, 0x18
dec edi
jne 0x42ed4c
mov al, byte [esp + 0x13]
mov edi, 0x519b50
test al, al
je 0x42edf4
lea eax, [esp + 0x18]
mov byte [esp + 0x14], 0
push eax
push ebp
call fcn.00433820
add esp, 8
test eax, eax
je 0x42ee36
mov eax, dword [esp + 0x18]
cmp eax, 0x646e45
je 0x42ee36
mov cl, byte [esp + 0x14]
shr eax, 0x18
test cl, cl
mov dword [esp + 0x20], eax
jne 0x42edba
mov byte [esp + 0x14], al
push edi
cmp eax, 5
push eax
push ebp
jbe 0x42edc9
call fcn.0042f170
jmp 0x42edce
call fcn.0042f220
mov ecx, dword [esp + 0x2c]
mov edx, 1
add ecx, ecx
add esp, 0xc
shl edx, cl
lea eax, [esp + 0x18]
push eax
push ebp
add edi, edx
call fcn.00433820
add esp, 8
test eax, eax
jne 0x42ed98
jmp 0x42ee36
mov byte [esp + 0x14], 8
mov esi, 8
lea ecx, [esp + 0x18]
push ecx
push ebp
call fcn.00433820
add esp, 8
cmp esi, 5
push edi
push esi
push ebp
jbe 0x42ee1b
call fcn.0042f170
jmp 0x42ee20
call fcn.0042f220
lea ecx, [esi + esi]
mov edx, 1
shl edx, cl
add esp, 0xc
mov eax, esi
add edi, edx
dec esi
test eax, eax
jne 0x42edfe
mov edi, dword [esp + 0x1c]
mov al, byte [esp + 0x14]
xor ecx, ecx
mov edx, 1
test edi, edi
setne cl
inc ecx
mov dword [esp + 0x24], 0x519b50
mov dword [esp + 0x30], ecx
mov cl, al
shl edx, cl
mov cl, byte [0x482084]
mov dword [esp + 0x28], 0x519740
cmp al, cl
mov dword [esp + 0x2c], reloc.DSOUND.dll_DirectSoundCreate
mov dword [esp + 0x34], edx
jbe 0x42ee7d
mov byte [esp + 0x14], cl
mov esi, dword [esp + 0x14]
lea eax, [esp + 0x24]
and esi, 0xff
push edi
push eax
mov dword [esp + 0x40], esi
mov byte [esp + 0x48], 0x80
mov dword [esp + 0x44], 0
call fcn.00431a50
and eax, 0xffff
mov edi, dword [esp + 0x54]
mov edx, 1
add esp, 8
lea eax, [eax + eax*4]
lea eax, [eax*4 + 0x67d360]
mov dword [ebx], eax
mov ecx, dword [eax + 8]
xor eax, eax
mov dword [ebx + 4], ecx
mov ecx, esi
shl edx, cl
or ecx, 0xffffffff
mov word [ebx + 0x28], dx
lea edx, [ebx + 8]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [0x56f160]
mov edi, dword [esp + 0x48]
inc eax
mov dword [0x56f160], eax
jmp 0x42ef31
push 0x1b3
push str.visuals
push str.__Not_valid_file.
call fcn.0042f250
add esp, 0xc
jmp 0x42ef31
push 0x1ed
push str.visuals
push str.__empty_file
call fcn.0042f250
add esp, 0xc
xor ebx, ebx
push ebp
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [esp + 0x4c]
push edi
push ecx
push 0x1f2
push str.visuals
push str.released__s__in__s
call fcn.0042f290
add esp, 0x14
mov eax, ebx
mov byte [0x482084], 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret
push str..MIP
push esi
push edi
call fcn.00433750
mov ebp, eax
add esp, 0xc
cmp ebp, 0xffffffff
je 0x42f155
xor esi, esi
push esi
push ebp
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov ecx, 0x80
cmp eax, 0x5554
mov dword [esp + 0x24], 0x519b50
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], 3
mov dword [esp + 0x30], 2
mov byte [esp + 0x40], cl
mov dword [esp + 0x3c], esi
ja 0x42f059
je 0x42f037
cmp eax, 0xfff
ja 0x42effd
je 0x42f022
cmp eax, 0x3ff
mov ecx, 0x10
je 0x42efec
cmp eax, 0x554
jne 0x42f095
mov dword [esp + 0x2c], 4
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], 4
jmp 0x42f0b9
cmp eax, 0x1554
je 0x42f012
cmp eax, 0x3fff
je 0x42f047
xor ebx, ebx
jmp 0x42f0b9
mov dword [esp + 0x2c], 4
mov dword [esp + 0x30], 0x10
mov dword [esp + 0x34], 0x20
mov dword [esp + 0x38], 5
jmp 0x42f0b9
mov dword [esp + 0x2c], 4
mov dword [esp + 0x30], 0x10
mov dword [esp + 0x34], 0x40
mov dword [esp + 0x38], 6
jmp 0x42f0b9
cmp eax, 0x3ffff
ja 0x42f08e
je 0x42f0a9
cmp eax, 0xffff
je 0x42f080
cmp eax, 0x15554
jne 0x42f095
mov dword [esp + 0x2c], 4
mov dword [esp + 0x30], 0x10
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], 7
jmp 0x42f0b9
cmp eax, 0x55554
je 0x42f099
xor ebx, ebx
jmp 0x42f0b9
mov dword [esp + 0x2c], 4
mov dword [esp + 0x30], 0x10
mov dword [esp + 0x34], 0x100
mov dword [esp + 0x38], 8
mov ecx, dword [0x482084]
mov edx, dword [esp + 0x38]
and ecx, 0xff
cmp edx, ecx
jbe 0x42f0d1
mov dword [esp + 0x38], ecx
cmp ebx, esi
je 0x42f13d
push eax
push 0x519b50
push ebp
call fcn.00433850
mov edx, dword [esp + 0x28]
lea eax, [esp + 0x30]
push edx
push eax
call fcn.00431a50
and eax, 0xffff
mov edi, dword [esp + 0x60]
add esp, 0x14
lea eax, [eax + eax*4]
lea eax, [eax*4 + 0x67d360]
mov dword [ebx], eax
mov ecx, dword [eax + 8]
xor eax, eax
mov dword [ebx + 4], ecx
mov dx, word [esp + 0x34]
or ecx, 0xffffffff
mov word [ebx + 0x28], dx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [ebx + 8]
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
inc dword [0x56f160]
push ebp
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
pop esi
mov eax, ebx
pop ebp
mov byte [0x482084], 8
pop ebx
add esp, 0x34
ret
xor ebx, ebx
mov byte [0x482084], 8
pop edi
pop esi
mov eax, ebx
pop ebp
pop ebx
add esp, 0x34
ret