Function at 0x10007390
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xa0
mov eax, dword [0x10049378]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
xor esi, esi
push esi
push 0x80000020
push 3
push esi
push 1
push 0x80000000
push 0x10702270
mov dword [ebp - 0x98], 0
mov dword [ebp - 0x94], 0
mov dword [ebp - 0x8c], esi
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov edi, dword [sym.imp.KERNEL32.dll_ReadFile]
push esi
push 0x1004aa38
mov ebx, eax
push 4
lea eax, [ebp - 0x84]
push eax
push ebx
mov dword [ebp - 0x88], ebx
call edi
mov byte [ebp - 0x80], 0
mov ecx, str.IWAD
lea eax, [ebp - 0x84]
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10007430
test dl, dl
je 0x1000742c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10007430
add eax, 2
add ecx, 2
test dl, dl
jne 0x10007410
xor eax, eax
jmp 0x10007435
sbb eax, eax
or eax, 1
test eax, eax
je 0x10007478
mov ecx, str.PWAD
lea eax, [ebp - 0x84]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10007464
test dl, dl
je 0x10007460
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10007464
add eax, 2
add ecx, 2
test dl, dl
jne 0x10007444
xor eax, eax
jmp 0x10007469
sbb eax, eax
or eax, 1
test eax, eax
je 0x10007478
mov dword [0x1004af1c], esi
jmp 0x10007dd8
push 0
push 0x1004aa38
push 4
lea eax, [ebp - 0xa0]
push eax
push ebx
call edi
mov eax, dword [ebp - 0xa0]
push dword [0x1004afe0]
mov dword [0x1004aa4c], eax
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push dword [0x1004afe0]
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov eax, dword [0x1004aa4c]
lea eax, [eax + eax*2]
shl eax, 3
push eax
push 2
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
push eax
mov dword [0x1004afe0], eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
push 0
push 0x1004aa38
mov dword [0x10442f48], eax
push 4
lea eax, [ebp - 0x9c]
push eax
push ebx
call edi
mov edi, dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 0
push 0
push dword [ebp - 0x9c]
push ebx
call edi
mov dword [ebp - 0x90], esi
cmp dword [0x1004aa4c], esi
jle 0x10007c51
xor edi, edi
lea ecx, [ecx]
mov eax, dword [0x10442f48]
push 0
push 0x1004aa38
push 0x10
add eax, edi
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [0x10442f48]
mov byte [edi + eax + 0x10], 0
mov eax, dword [0x10442f48]
cmp dword [edi + eax + 4], 0
jle 0x1000757b
cmp dword [ebp - 0x98], 0
je 0x10007554
mov dword [edi + eax + 0x14], 0xc
jmp 0x10007c2f
cmp dword [ebp - 0x94], 0
je 0x1000756a
mov dword [edi + eax + 0x14], 0xd
jmp 0x10007c2f
test esi, esi
je 0x1000757b
mov dword [edi + eax + 0x14], 0xe
jmp 0x10007c2f
push 2
add eax, 8
add eax, edi
push 0x1003e018
push eax
call fcn.1000ee40
add esp, 0xc
test eax, eax
mov eax, dword [0x10442f48]
jne 0x100075a6
mov dword [edi + eax + 0x14], 0x10
jmp 0x10007c2f
push 2
add eax, 8
add eax, edi
push 0x1003e01c
push eax
call fcn.1000ee40
add esp, 0xc
test eax, eax
mov eax, dword [0x10442f48]
jne 0x100075d1
mov dword [edi + eax + 0x14], 0x11
jmp 0x10007c2f
push 2
add eax, 8
add eax, edi
push 0x1003e020
push eax
call fcn.1000ee40
add esp, 0xc
test eax, eax
mov eax, dword [0x10442f48]
jne 0x100075fc
mov dword [edi + eax + 0x14], 0xf
jmp 0x10007c2f
push 2
add eax, 8
add eax, edi
push 0x1003e024
push eax
call fcn.1000ee40
add esp, 0xc
test eax, eax
mov eax, dword [0x10442f48]
jne 0x10007627
mov dword [edi + eax + 0x14], 0x1a
jmp 0x10007c2f
push 2
add eax, 8
add eax, edi
push 0x1003e028
push eax
call fcn.1000ee40
add esp, 0xc
test eax, eax
mov eax, dword [0x10442f48]
jne 0x10007652
mov dword [edi + eax + 0x14], 0x1b
jmp 0x10007c2f
push 2
add eax, 8
add eax, edi
push 0x1003e02c
push eax
call fcn.1000ee40
add esp, 0xc
test eax, eax
mov eax, dword [0x10442f48]
jne 0x1000767d
mov dword [edi + eax + 0x14], 0x19
jmp 0x10007c2f
push 4
add eax, 8
add eax, edi
push str.DEMO
push eax
call fcn.1000ee40
add esp, 0xc
test eax, eax
mov eax, dword [0x10442f48]
jne 0x100076a8
mov dword [edi + eax + 0x14], 0x16
jmp 0x10007c2f
push 4
add eax, 8
add eax, edi
push str.PNAM
push eax
call fcn.1000ee40
add esp, 0xc
test eax, eax
jne 0x100076d3
mov eax, dword [0x10442f48]
mov dword [edi + eax + 0x14], 0x17
jmp 0x10007c2f
mov esi, dword [0x10442f48]
mov ecx, str.PLAYPAL
lea ebx, [esi + 8]
add ebx, edi
mov eax, ebx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10007705
test dl, dl
je 0x10007701
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10007705
add eax, 2
add ecx, 2
test dl, dl
jne 0x100076e5
xor eax, eax
jmp 0x1000770a
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1000771b
mov dword [esi + edi + 0x14], 0x13
jmp 0x10007c23
mov ecx, str.COLORMAP
mov eax, ebx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10007742
test dl, dl
je 0x1000773e
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10007742
add eax, 2
add ecx, 2
test dl, dl
jne 0x10007722
xor eax, eax
jmp 0x10007747
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10007758
mov dword [esi + edi + 0x14], 0x14
jmp 0x10007c23
push 6
push str.TEXTUR
push ebx
call fcn.1000ee40
add esp, 0xc
test eax, eax
jne 0x1000777e
mov eax, dword [0x10442f48]
mov dword [edi + eax + 0x14], 0x12
jmp 0x10007c23
mov esi, dword [0x10442f48]
add esi, edi
mov ecx, str.THINGS
lea ebx, [esi + 8]
mov eax, ebx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100077b0
test dl, dl
je 0x100077ac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100077b0
add eax, 2
add ecx, 2
test dl, dl
jne 0x10007790
xor eax, eax
jmp 0x100077b5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100077c5
mov dword [esi + 0x14], 2
jmp 0x10007c23
mov ecx, str.LINEDEFS
mov eax, ebx
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100077f0
test dl, dl
je 0x100077ec
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100077f0
add eax, 2
add ecx, 2
test dl, dl
jne 0x100077d0
xor eax, eax
jmp 0x100077f5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10007805
mov dword [esi + 0x14], 3
jmp 0x10007c23
mov ecx, str.SIDEDEFS
mov eax, ebx
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10007830
test dl, dl
je 0x1000782c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10007830
add eax, 2
add ecx, 2
test dl, dl
jne 0x10007810
xor eax, eax
jmp 0x10007835
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10007845
mov dword [esi + 0x14], 4
jmp 0x10007c23
mov ecx, str.VERTEXES
mov eax, ebx
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10007870
test dl, dl
je 0x1000786c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10007870
add eax, 2
add ecx, 2
test dl, dl
jne 0x10007850
xor eax, eax
jmp 0x10007875
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10007885
mov dword [esi + 0x14], 5
jmp 0x10007c23
mov ecx, str.SEGS
mov eax, ebx
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100078b0
test dl, dl
je 0x100078ac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100078b0
add eax, 2
add ecx, 2
test dl, dl
jne 0x10007890
xor eax, eax
jmp 0x100078b5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100078c5
mov dword [esi + 0x14], 6
jmp 0x10007c23
mov ecx, str.SSECTORS
mov eax, ebx
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100078f0
test dl, dl
je 0x100078ec
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100078f0
add eax, 2
add ecx, 2
test dl, dl
jne 0x100078d0
xor eax, eax
jmp 0x100078f5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10007905
mov dword [esi + 0x14], 7
jmp 0x10007c23
mov ecx, str.NODES
mov eax, ebx
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10007930
test dl, dl
je 0x1000792c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10007930
add eax, 2
add ecx, 2
test dl, dl
jne 0x10007910
xor eax, eax
jmp 0x10007935
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10007945
mov dword [esi + 0x14], 8
jmp 0x10007c23
mov ecx, str.SECTORS
mov eax, ebx
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10007970
test dl, dl
je 0x1000796c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10007970
add eax, 2
add ecx, 2
test dl, dl
jne 0x10007950
xor eax, eax
jmp 0x10007975
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10007985
mov dword [esi + 0x14], 9
jmp 0x10007c23
mov ecx, str.REJECT
mov eax, ebx
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100079b0
test dl, dl
je 0x100079ac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100079b0
add eax, 2
add ecx, 2
test dl, dl
jne 0x10007990
xor eax, eax
jmp 0x100079b5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100079c5
mov dword [esi + 0x14], 0xa
jmp 0x10007c23
mov ecx, str.BLOCKMAP
mov eax, ebx
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100079f0
test dl, dl
je 0x100079ec
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100079f0
add eax, 2
add ecx, 2
test dl, dl
jne 0x100079d0
xor eax, eax
jmp 0x100079f5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10007a05
mov dword [esi + 0x14], 0xb
jmp 0x10007c23
push 8
push str.PLATFORM
push ebx
call fcn.1000ee40
add esp, 0xc
test eax, eax
je 0x10007c16
mov eax, dword [0x10442f48]
push 7
add eax, 8
add eax, edi
push str.TAGDESC
push eax
call fcn.1000ee40
add esp, 0xc
test eax, eax
je 0x10007c16
mov esi, dword [0x10442f48]
mov ecx, str.ENDOOM
lea ebx, [esi + 8]
add ebx, edi
mov eax, ebx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10007a71
test dl, dl
je 0x10007a6d
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10007a71
add eax, 2
add ecx, 2
test dl, dl
jne 0x10007a51
xor eax, eax
jmp 0x10007a76
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10007a87
mov dword [esi + edi + 0x14], 0x15
jmp 0x10007c23
push 3
push 0x1003e0e8
push ebx
call fcn.1000ee40
add esp, 0xc
test eax, eax
mov eax, dword [0x10442f48]
jne 0x10007aad
mov dword [edi + eax + 0x14], 0x18
jmp 0x10007c23
push 7
add eax, 8
add eax, edi
push str.GENMIDI
push eax
call fcn.1000ee40
add esp, 0xc
test eax, eax
mov eax, dword [0x10442f48]
jne 0x10007ad8
mov dword [edi + eax + 0x14], 0x18
jmp 0x10007c23
mov dword [edi + eax + 0x14], 0x1c
mov eax, dword [0x10442f48]
cmp dword [edi + eax + 4], 0
jne 0x10007c23
mov cl, byte [edi + eax + 8]
cmp cl, 0x45
jne 0x10007b07
cmp byte [edi + eax + 0xa], 0x4d
jne 0x10007b07
cmp byte [edi + eax + 0xc], 0
je 0x10007b1a
cmp cl, 0x4d
jne 0x10007b27
cmp byte [edi + eax + 9], 0x41
jne 0x10007b27
cmp byte [edi + eax + 0xa], 0x50
jne 0x10007b27
mov dword [edi + eax + 0x14], 0x1d
jmp 0x10007c23
mov dword [edi + eax + 0x14], 1
mov eax, dword [0x10442f48]
push 7
add eax, 8
add eax, edi
push str.S_START
push eax
call fcn.1000ee40
mov esi, dword [ebp - 0x98]
test eax, eax
mov eax, dword [0x10442f48]
mov ebx, 1
cmove esi, ebx
push 5
add eax, 8
add eax, edi
push str.S_END
push eax
call fcn.1000ee40
mov ecx, dword [0x10442f48]
neg eax
sbb eax, eax
push 7
add ecx, 8
add ecx, edi
and eax, esi
push str.P_START
push ecx
mov dword [ebp - 0x98], eax
call fcn.1000ee40
mov esi, dword [ebp - 0x94]
test eax, eax
mov eax, dword [0x10442f48]
cmove esi, ebx
push 5
add eax, 8
add eax, edi
push str.P_END
push eax
call fcn.1000ee40
mov ecx, dword [0x10442f48]
neg eax
sbb eax, eax
push 7
add ecx, 8
add ecx, edi
and eax, esi
push str.F_START
push ecx
mov dword [ebp - 0x94], eax
call fcn.1000ee40
mov esi, dword [ebp - 0x8c]
test eax, eax
mov eax, dword [0x10442f48]
cmove esi, ebx
push 5
add eax, 8
add eax, edi
push str.F_END
push eax
mov dword [ebp - 0x8c], esi
call fcn.1000ee40
mov ebx, dword [ebp - 0x88]
add esp, 0x48
test eax, eax
jne 0x10007c2f
xor esi, esi
mov dword [ebp - 0x8c], esi
jmp 0x10007c2f
mov eax, dword [0x10442f48]
mov dword [edi + eax + 0x14], 0x1e
mov ebx, dword [ebp - 0x88]
mov esi, dword [ebp - 0x8c]
mov eax, dword [ebp - 0x90]
inc eax
add edi, 0x18
mov dword [ebp - 0x90], eax
cmp eax, dword [0x1004aa4c]
jl 0x10007510
mov edi, dword [sym.imp.KERNEL32.dll_SetFilePointer]
push str.E2M1
call fcn.1000114a
add esp, 4
cmp eax, 0xffffd8f1
je 0x10007c79
mov dword [0x1004af28], 1
mov dword [0x1004af14], 1
push str.MAP20
call fcn.1000114a
add esp, 4
cmp eax, 0xffffd8f1
je 0x10007ca1
mov dword [0x1004af28], 1
mov dword [0x1004af14], 2
push str.PLAYPAL
call fcn.1000114a
mov esi, eax
add esp, 4
cmp esi, 0xffffd8f1
je 0x10007dce
push 0x408
push 0x42
mov dword [0x1004af1c], 1
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
push eax
mov dword [0x1004afdc], eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov ebx, eax
push 0
mov dword [ebx], 0x1000300
mov ecx, dword [0x10442f48]
push 0
lea edx, [esi + esi*2]
mov dword [ebp - 0x90], ebx
push dword [ecx + edx*8]
push dword [ebp - 0x88]
call edi
lea edi, [ebx + 4]
mov ebx, dword [ebp - 0x88]
mov esi, 0x1004aa60
push 0
push 0x1004aa38
push 3
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov byte [esi + 3], 0
mov eax, dword [esi]
add esi, 4
mov dword [edi], eax
lea edi, [edi + 4]
cmp esi, 0x1004ae60
jl 0x10007d13
mov ebx, dword [ebp - 0x90]
push ebx
call dword [sym.imp.GDI32.dll_CreatePalette]
push dword [0x1004afdc]
mov dword [0x1004af0c], eax
mov dword [0x1004af10], 1
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push dword [0x1004aa2c]
call dword [sym.imp.USER32.dll_GetDC]
push 0
push dword [0x1004af0c]
mov dword [0x1004aa48], eax
push eax
call dword [sym.imp.GDI32.dll_SelectPalette]
push dword [0x1004aa48]
call dword [sym.imp.GDI32.dll_RealizePalette]
push dword [0x1004af74]
mov esi, dword [sym.imp.GDI32.dll_SelectObject]
push dword [0x1004aa48]
call esi
push dword [0x1004af94]
mov dword [0x1004afb8], eax
push dword [0x1004aa48]
call esi
push dword [0x1004aa48]
mov dword [0x1004afbc], eax
push dword [0x1004aa2c]
call dword [sym.imp.USER32.dll_ReleaseDC]
jmp 0x10007dd8
mov dword [0x1004af1c], 0
push dword [ebp - 0x88]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
mov eax, 1
pop ebx
call fcn.1000f362
mov esp, ebp
pop ebp
ret