Function at 0x10006e30
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
mov eax, dword [0x10030180]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
xor edi, edi
push edi
push 0x80000020
push 3
push edi
push 1
push 0x80000000
push eax
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x18], edi
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov ebx, dword [sym.imp.KERNEL32.dll_ReadFile]
push edi
push 0x10156d38
mov esi, eax
push 4
lea eax, [ebp - 0xc]
push eax
push esi
mov dword [ebp - 0x28], esi
call ebx
mov byte [ebp - 8], 0
mov ecx, str.IWAD
lea eax, [ebp - 0xc]
mov edi, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10006eb0
test dl, dl
je 0x10006eac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10006eb0
add eax, 2
add ecx, 2
test dl, dl
jne 0x10006e90
xor eax, eax
jmp 0x10006eb5
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, edi
je 0x10006eee
mov ecx, str.PWAD
lea eax, [ebp - 0xc]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10006ee1
test dl, dl
je 0x10006edd
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10006ee1
add eax, 2
add ecx, 2
test dl, dl
jne 0x10006ec1
xor eax, eax
jmp 0x10006ee6
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, edi
jne 0x1000767c
push edi
push 0x10156d38
push 4
lea ecx, [ebp - 0x2c]
push ecx
push esi
call ebx
mov eax, dword [0x10584404]
mov edx, dword [ebp - 0x2c]
push eax
mov dword [0x10031db0], edx
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov ecx, dword [0x10584404]
push ecx
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov eax, dword [0x10031db0]
lea edx, [eax + eax*2 + 0x12c]
add edx, edx
add edx, edx
add edx, edx
push edx
push edi
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
push eax
mov dword [0x10584404], eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
push edi
push 0x10156d38
mov dword [0x1050f0e0], eax
push 4
lea eax, [ebp - 0x20]
push eax
push esi
call ebx
mov ecx, dword [ebp - 0x20]
push edi
push edi
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov edx, dword [ebp - 0x20]
mov dword [0x106e9568], edx
mov dword [0x106e956c], 0xc
mov dword [ebp - 0x24], edi
cmp dword [0x10031db0], edi
jle 0x1000767c
xor edi, edi
jmp 0x10006f96
mov ebx, dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [0x1050f0e0]
push 0
push 0x10156d38
push 0x10
lea ecx, [edi + eax]
push ecx
push esi
call ebx
mov eax, dword [0x1050f0e0]
mov edx, dword [edi + eax + 4]
add dword [0x106e956c], edx
mov byte [edi + eax + 0x10], 0
mov esi, dword [0x1050f0e0]
cmp dword [edi + esi + 4], 0
jle 0x10007005
cmp dword [ebp - 0x1c], 0
je 0x10006fdf
mov dword [edi + esi + 0x14], 0xc
jmp 0x10007663
cmp dword [ebp - 0x14], 0
je 0x10006ff2
mov dword [edi + esi + 0x14], 0xd
jmp 0x10007663
cmp dword [ebp - 0x18], 0
je 0x10007005
mov dword [edi + esi + 0x14], 0xe
jmp 0x10007663
mov al, byte [edi + esi + 8]
lea ebx, [edi + esi + 8]
mov byte [ebp - 0xd], al
cmp al, 0x44
jne 0x10007058
cmp byte [edi + esi + 9], 0x53
jne 0x10007028
mov dword [edi + esi + 0x14], 0x10
jmp 0x10007663
cmp al, 0x44
jne 0x10007058
cmp byte [edi + esi + 9], 0x50
jne 0x10007040
mov dword [edi + esi + 0x14], 0x11
jmp 0x10007663
cmp al, 0x44
jne 0x10007058
cmp byte [edi + esi + 9], 0x5f
jne 0x10007058
mov dword [edi + esi + 0x14], 0xf
jmp 0x10007663
cmp al, 0x57
jne 0x10007070
cmp byte [edi + esi + 9], 0x49
jne 0x10007070
mov dword [edi + esi + 0x14], 0x1a
jmp 0x10007663
cmp al, 0x4d
jne 0x10007088
cmp byte [edi + esi + 9], 0x5f
jne 0x10007088
mov dword [edi + esi + 0x14], 0x1b
jmp 0x10007663
cmp al, 0x53
jne 0x100070a0
cmp byte [edi + esi + 9], 0x54
jne 0x100070a0
mov dword [edi + esi + 0x14], 0x19
jmp 0x10007663
cmp al, 0x44
jne 0x100070c6
cmp byte [edi + esi + 9], 0x45
jne 0x100070c6
cmp byte [edi + esi + 0xa], 0x4d
jne 0x100070c6
cmp byte [edi + esi + 0xb], 0x4f
jne 0x100070c6
mov dword [edi + esi + 0x14], 0x16
jmp 0x10007663
cmp al, 0x50
jne 0x100070ec
cmp byte [edi + esi + 9], 0x4e
jne 0x100070ec
cmp byte [edi + esi + 0xa], 0x41
jne 0x100070ec
cmp byte [edi + esi + 0xb], 0x4d
jne 0x100070ec
mov dword [edi + esi + 0x14], 0x17
jmp 0x10007663
mov edx, str.PLAYPAL
mov ecx, ebx
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x10007113
test al, al
je 0x1000710f
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x10007113
add ecx, 2
add edx, 2
test al, al
jne 0x100070f3
xor eax, eax
jmp 0x10007118
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x10007129
mov dword [edi + esi + 0x14], 0x13
jmp 0x10007663
mov edx, str.COLORMAP
mov ecx, ebx
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x10007150
test al, al
je 0x1000714c
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x10007150
add ecx, 2
add edx, 2
test al, al
jne 0x10007130
xor eax, eax
jmp 0x10007155
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x10007166
mov dword [edi + esi + 0x14], 0x14
jmp 0x10007663
cmp byte [ebp - 0xd], 0x54
jne 0x1000719c
cmp byte [edi + esi + 9], 0x45
jne 0x1000719c
cmp byte [edi + esi + 0xa], 0x58
jne 0x1000719c
cmp byte [edi + esi + 0xb], 0x54
jne 0x1000719c
cmp byte [edi + esi + 0xc], 0x55
jne 0x1000719c
cmp byte [edi + esi + 0xd], 0x52
jne 0x1000719c
mov dword [edi + esi + 0x14], 0x12
jmp 0x10007663
mov edx, str.THINGS
mov ecx, ebx
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x100071c3
test al, al
je 0x100071bf
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100071c3
add ecx, 2
add edx, 2
test al, al
jne 0x100071a3
xor eax, eax
jmp 0x100071c8
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x100071d9
mov dword [edi + esi + 0x14], 2
jmp 0x10007663
mov edx, str.LINEDEFS
mov ecx, ebx
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x10007200
test al, al
je 0x100071fc
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x10007200
add ecx, 2
add edx, 2
test al, al
jne 0x100071e0
xor eax, eax
jmp 0x10007205
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x10007216
mov dword [edi + esi + 0x14], 3
jmp 0x10007663
mov edx, str.SIDEDEFS
mov ecx, ebx
lea ecx, [ecx]
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x10007240
test al, al
je 0x1000723c
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x10007240
add ecx, 2
add edx, 2
test al, al
jne 0x10007220
xor eax, eax
jmp 0x10007245
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x10007256
mov dword [edi + esi + 0x14], 4
jmp 0x10007663
mov edx, str.VERTEXES
mov ecx, ebx
lea ecx, [ecx]
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x10007280
test al, al
je 0x1000727c
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x10007280
add ecx, 2
add edx, 2
test al, al
jne 0x10007260
xor eax, eax
jmp 0x10007285
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x10007296
mov dword [edi + esi + 0x14], 5
jmp 0x10007663
mov edx, str.SEGS
mov ecx, ebx
lea ecx, [ecx]
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x100072c0
test al, al
je 0x100072bc
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100072c0
add ecx, 2
add edx, 2
test al, al
jne 0x100072a0
xor eax, eax
jmp 0x100072c5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x100072d6
mov dword [edi + esi + 0x14], 6
jmp 0x10007663
mov edx, str.SSECTORS
mov ecx, ebx
lea ecx, [ecx]
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x10007300
test al, al
je 0x100072fc
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x10007300
add ecx, 2
add edx, 2
test al, al
jne 0x100072e0
xor eax, eax
jmp 0x10007305
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x10007316
mov dword [edi + esi + 0x14], 7
jmp 0x10007663
mov edx, str.NODES
mov ecx, ebx
lea ecx, [ecx]
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x10007340
test al, al
je 0x1000733c
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x10007340
add ecx, 2
add edx, 2
test al, al
jne 0x10007320
xor eax, eax
jmp 0x10007345
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x10007356
mov dword [edi + esi + 0x14], 8
jmp 0x10007663
mov edx, str.SECTORS
mov ecx, ebx
lea ecx, [ecx]
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x10007380
test al, al
je 0x1000737c
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x10007380
add ecx, 2
add edx, 2
test al, al
jne 0x10007360
xor eax, eax
jmp 0x10007385
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x10007396
mov dword [edi + esi + 0x14], 9
jmp 0x10007663
mov edx, str.REJECT
mov ecx, ebx
lea ecx, [ecx]
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x100073c0
test al, al
je 0x100073bc
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100073c0
add ecx, 2
add edx, 2
test al, al
jne 0x100073a0
xor eax, eax
jmp 0x100073c5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x100073d6
mov dword [edi + esi + 0x14], 0xa
jmp 0x10007663
mov edx, str.BLOCKMAP
mov ecx, ebx
lea ecx, [ecx]
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x10007400
test al, al
je 0x100073fc
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x10007400
add ecx, 2
add edx, 2
test al, al
jne 0x100073e0
xor eax, eax
jmp 0x10007405
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x10007416
mov dword [edi + esi + 0x14], 0xb
jmp 0x10007663
mov edx, str.PLATFORM
mov ecx, ebx
lea ecx, [ecx]
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x10007440
test al, al
je 0x1000743c
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x10007440
add ecx, 2
add edx, 2
test al, al
jne 0x10007420
xor eax, eax
jmp 0x10007445
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1000765b
mov edx, str.TAGDESC
mov ecx, ebx
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x10007474
test al, al
je 0x10007470
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x10007474
add ecx, 2
add edx, 2
test al, al
jne 0x10007454
xor eax, eax
jmp 0x10007479
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1000765b
mov ecx, str.ENDOOM
mov eax, ebx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100074a8
test dl, dl
je 0x100074a4
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100074a8
add eax, 2
add ecx, 2
test dl, dl
jne 0x10007488
xor eax, eax
jmp 0x100074ad
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x100074be
mov dword [edi + esi + 0x14], 0x15
jmp 0x10007663
cmp dword [edi + esi + 4], 0
jne 0x10007651
mov al, byte [ebp - 0xd]
cmp al, 0x45
jne 0x100074de
cmp byte [edi + esi + 0xa], 0x4d
jne 0x100074de
cmp byte [edi + esi + 0xc], 0
je 0x100074f0
cmp al, 0x4d
jne 0x100074fd
cmp byte [edi + esi + 9], 0x41
jne 0x100074fd
cmp byte [edi + esi + 0xa], 0x50
jne 0x100074fd
mov dword [edi + esi + 0x14], 0x1d
jmp 0x10007663
mov ebx, 1
mov dword [edi + esi + 0x14], ebx
mov eax, dword [0x1050f0e0]
lea esi, [edi + eax + 8]
mov ecx, str.S_START
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10007536
test dl, dl
je 0x10007532
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10007536
add eax, 2
add ecx, 2
test dl, dl
jne 0x10007516
xor eax, eax
jmp 0x1000753b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x10007542
mov dword [ebp - 0x1c], ebx
mov ecx, str.S_END
mov eax, esi
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10007570
test dl, dl
je 0x1000756c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10007570
add eax, 2
add ecx, 2
test dl, dl
jne 0x10007550
xor eax, eax
jmp 0x10007575
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x1000757c
mov dword [ebp - 0x1c], eax
mov ecx, str.P_START
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100075a3
test dl, dl
je 0x1000759f
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100075a3
add eax, 2
add ecx, 2
test dl, dl
jne 0x10007583
xor eax, eax
jmp 0x100075a8
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x100075af
mov dword [ebp - 0x14], ebx
mov ecx, str.P_END
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100075d6
test dl, dl
je 0x100075d2
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100075d6
add eax, 2
add ecx, 2
test dl, dl
jne 0x100075b6
xor eax, eax
jmp 0x100075db
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x100075e2
mov dword [ebp - 0x14], eax
mov ecx, str.F_START
mov eax, esi
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10007610
test dl, dl
je 0x1000760c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10007610
add eax, 2
add ecx, 2
test dl, dl
jne 0x100075f0
xor eax, eax
jmp 0x10007615
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x1000761c
mov dword [ebp - 0x18], ebx
mov ecx, str.F_END
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10007643
test dl, dl
je 0x1000763f
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10007643
add eax, 2
add ecx, 2
test dl, dl
jne 0x10007623
xor eax, eax
jmp 0x10007648
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x10007663
mov dword [ebp - 0x18], eax
jmp 0x10007663
mov dword [edi + esi + 0x14], 0x1c
jmp 0x10007663
mov dword [edi + esi + 0x14], 0x1e
mov eax, dword [ebp - 0x24]
mov esi, dword [ebp - 0x28]
inc eax
add edi, 0x18
mov dword [ebp - 0x24], eax
cmp eax, dword [0x10031db0]
jl 0x10006f90
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1000cdb1
mov esp, ebp
pop ebp
ret