Function at 0x10986d50
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x10e0f8ec
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x9a8
push ebx
push esi
push edi
lea eax, [ebp + 8]
push str.GRID
xor ebx, ebx
push eax
mov esi, ecx
mov dword [esp + 0x18], ebx
call fcn.109baaf0
add esp, 8
test eax, eax
je 0x10986dba
mov eax, dword [esi + 0x114]
mov edx, dword [esi]
push eax
mov ecx, esi
call dword [edx + 0xec]
mov edx, dword [ebp + 8]
lea ecx, [esi + 0x1cc]
push ecx
push edx
call fcn.10b5fab0
add esp, 8
jmp 0x1098892f
lea edx, [ebp + 8]
push str.ROTGRID
push edx
call fcn.109baaf0
add esp, 8
test eax, eax
je 0x10986e29
mov ecx, dword [esi + 0x114]
mov eax, dword [esi]
push ecx
mov ecx, esi
call dword [eax + 0xec]
mov eax, dword [ebp + 8]
push 0x100
lea edx, [esi + 0x1dc]
push edx
push eax
call fcn.10b5fc10
add esp, 0xc
test eax, eax
je 0x10986e0d
mov eax, dword [esi + 0x114]
mov edx, dword [esi]
push eax
mov ecx, esi
call dword [edx + 0xf0]
mov eax, 1
mov ecx, dword [esp + 0x9b4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
lea ecx, [ebp + 8]
push str.SELECT
push ecx
call fcn.109baaf0
add esp, 8
test eax, eax
je 0x10986f87
mov ecx, dword [esi + 0x12c]
mov edx, dword [ecx]
push ebx
push str.Select
call dword [edx + 0x74]
lea eax, [ebp + 8]
push str.ADDS
push eax
call fcn.109baaf0
add esp, 8
test eax, eax
je 0x10986e80
mov eax, dword [esi + 0x114]
mov edx, dword [esi]
push 1
push eax
mov ecx, esi
call dword [edx + 0x18c]
jmp 0x10986f4f
lea ecx, [ebp + 8]
push str.SUBTRACTS
push ecx
call fcn.109baaf0
add esp, 8
test eax, eax
je 0x10986ead
mov eax, dword [esi + 0x114]
mov edx, dword [esi]
push 2
push eax
mov ecx, esi
call dword [edx + 0x18c]
jmp 0x10986f4f
lea ecx, [ebp + 8]
push str.SEMISOLIDS
push ecx
call fcn.109baaf0
add esp, 8
test eax, eax
je 0x10986ed7
mov eax, dword [esi + 0x114]
mov edx, dword [esi]
push 0x20
push eax
mov ecx, esi
call dword [edx + 0x190]
jmp 0x10986f4f
lea ecx, [ebp + 8]
push str.NONSOLIDS
push ecx
call fcn.109baaf0
add esp, 8
test eax, eax
je 0x10986f01
mov eax, dword [esi + 0x114]
mov edx, dword [esi]
push 8
push eax
mov ecx, esi
call dword [edx + 0x190]
jmp 0x10986f4f
lea ecx, [ebp + 8]
push str.FIRST
push ecx
call fcn.109baaf0
add esp, 8
test eax, eax
je 0x10986f29
mov eax, dword [esi + 0x114]
mov edx, dword [esi]
push eax
mov ecx, esi
call dword [edx + 0x194]
jmp 0x10986f4f
lea ecx, [ebp + 8]
push str.LAST
push ecx
call fcn.109baaf0
add esp, 8
test eax, eax
je 0x10986f4f
mov eax, dword [esi + 0x114]
mov edx, dword [esi]
push eax
mov ecx, esi
call dword [edx + 0x198]
mov ecx, dword [esi + 0x12c]
mov edx, dword [ecx]
call dword [edx + 0x78]
mov ecx, dword [esi + 0x114]
mov eax, dword [esi]
push ecx
mov ecx, esi
call dword [eax + 0xf0]
mov eax, 1
mov ecx, dword [esp + 0x9b4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
lea edx, [ebp + 8]
push str.DELETE
push edx
call fcn.109baaf0
add esp, 8
test eax, eax
je 0x10986fc9
mov edx, dword [ebp + 0xc]
mov eax, dword [esi + 0x2c]
lea ecx, [esi + 0x2c]
push edx
push str.ACTOR_DELETE
call dword [eax]
mov eax, 1
mov ecx, dword [esp + 0x9b4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
lea eax, [ebp + 8]
push str.BRUSH
push eax
call fcn.109baaf0
add esp, 8
test eax, eax
je 0x109870c6
lea ecx, [ebp + 8]
push 0x10e5c2f8
push ecx
call fcn.109baaf0
add esp, 8
test eax, eax
je 0x10987052
mov ecx, dword [esi + 0x12c]
mov edx, dword [ecx]
push 1
push str.Brush_Get
call dword [edx + 0x74]
mov ecx, dword [esi + 0x114]
mov eax, dword [esi]
push ecx
mov ecx, esi
call dword [eax + 0x19c]
mov ecx, dword [esi + 0x12c]
mov edx, dword [ecx]
call dword [edx + 0x78]
mov ecx, dword [esi + 0x114]
mov eax, dword [esi]
push ecx
mov ecx, esi
call dword [eax + 0xf0]
mov eax, 1
mov ecx, dword [esp + 0x9b4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
lea edx, [ebp + 8]
push 0x10e5c2dc
push edx
call fcn.109baaf0
add esp, 8
test eax, eax
je 0x10988c5c
mov ecx, dword [esi + 0x12c]
mov eax, dword [ecx]
push 1
push str.Brush_Put
call dword [eax + 0x74]
mov eax, dword [esi + 0x114]
mov edx, dword [esi]
push eax
mov ecx, esi
call dword [edx + 0x1a0]
mov ecx, dword [esi + 0x12c]
mov edx, dword [ecx]
call dword [edx + 0x78]
mov ecx, dword [esi + 0x114]
mov eax, dword [esi]
push ecx
mov ecx, esi
call dword [eax + 0xf0]
mov eax, 1
mov ecx, dword [esp + 0x9b4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
lea edx, [ebp + 8]
push str.SENDTO
push edx
call fcn.109baaf0
add esp, 8
test eax, eax
je 0x10987233
lea eax, [ebp + 8]
push str.FIRST
push eax
call fcn.109baaf0
add esp, 8
test eax, eax
je 0x1098714f
mov ecx, dword [esi + 0x12c]
mov edx, dword [ecx]
push 1
push str.Map_SendTo_Front
call dword [edx + 0x74]
mov ecx, dword [esi + 0x114]
mov eax, dword [esi]
push ecx
mov ecx, esi
call dword [eax + 0x1a4]
mov ecx, dword [esi + 0x12c]
mov edx, dword [ecx]
call dword [edx + 0x78]
mov ecx, dword [esi + 0x114]
mov eax, dword [esi]
push ecx
mov ecx, esi
call dword [eax + 0xf0]
mov eax, 1
mov ecx, dword [esp + 0x9b4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
lea edx, [ebp + 8]
push str.LAST
push edx
call fcn.109baaf0
add esp, 8
test eax, eax
je 0x109871bf
mov ecx, dword [esi + 0x12c]
mov eax, dword [ecx]
push 1
push str.Map_SendTo_Back
call dword [eax + 0x74]
mov eax, dword [esi + 0x114]
mov edx, dword [esi]
push eax
mov ecx, esi
call dword [edx + 0x1a8]
mov ecx, dword [esi + 0x12c]
mov edx, dword [ecx]
call dword [edx + 0x78]
mov ecx, dword [esi + 0x114]
mov eax, dword [esi]
push ecx
mov ecx, esi
call dword [eax + 0xf0]
mov eax, 1
mov ecx, dword [esp + 0x9b4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
lea edx, [ebp + 8]
push str.SWAP
push edx
call fcn.109baaf0
add esp, 8
test eax, eax
je 0x10988c5c
mov ecx, dword [esi + 0x12c]
mov eax, dword [ecx]
push 1
push str.Map_SendTo_Swap
call dword [eax + 0x74]
mov eax, dword [esi + 0x114]
mov edx, dword [esi]
push eax
mov ecx, esi
call dword [edx + 0x1ac]
mov ecx, dword [esi + 0x12c]
mov edx, dword [ecx]
call dword [edx + 0x78]
mov ecx, dword [esi + 0x114]
mov eax, dword [esi]
push ecx
mov ecx, esi
call dword [eax + 0xf0]
mov eax, 1
mov ecx, dword [esp + 0x9b4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
lea edx, [ebp + 8]
push str.REBUILD
push edx
call fcn.109baaf0
add esp, 8
test eax, eax
je 0x10987342
mov ecx, dword [esi + 0x12c]
mov eax, dword [ecx]
push str.rebuilding_map
call dword [eax + 0x70]
mov ecx, dword [0x10fcccac]
mov edx, dword [ecx]
push 1
push str.Rebuilding_geometry
call dword [edx + 0xc]
mov eax, dword [esi + 0x114]
mov ecx, dword [eax + 0x30]
mov eax, dword [ecx]
and dword [eax + 0x528], 0xffffffef
mov eax, dword [esi + 0x114]
mov edx, dword [esi]
push eax
mov ecx, esi
call dword [edx + 0x114]
mov ecx, dword [esi + 0x3c]
mov edx, dword [esi + 0x114]
push ecx
mov ecx, dword [edx + 0x90]
call fcn.10a2f140
mov eax, dword [0x10fcccac]
mov ecx, dword [eax]
push str.Cleaning_up...
push ebx
push ebx
push eax
call dword [ecx + 0x14]
mov edx, dword [esi + 0x114]
mov eax, dword [edx + 0x34]
add esp, 0x10
xor edi, edi
cmp eax, ebx
jle 0x109872f3
lea ebx, [ebx]
mov eax, dword [esi + 0x114]
mov ecx, dword [eax + 0x30]
mov ecx, dword [ecx + edi*4]
cmp ecx, ebx
je 0x109872e5
call fcn.10a3f4d0
mov edx, dword [esi + 0x114]
mov eax, dword [edx + 0x34]
inc edi
cmp edi, eax
jl 0x109872d0
mov eax, dword [esi]
push ebx
mov ecx, esi
call dword [eax + 0x7c]
mov eax, dword [esi + 0x114]
mov edx, dword [esi]
push eax
mov ecx, esi
call dword [edx + 0xf0]
mov edx, dword [esi]
push 1
push ebx
push 0x2a
mov ecx, esi
call dword [edx + 0xcc]
mov ecx, dword [0x10fcccac]
mov eax, dword [ecx]
call dword [eax + 0x10]
mov eax, 1
mov ecx, dword [esp + 0x9b4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
lea ecx, [ebp + 8]
push 0x10e5b11c
push ecx
call fcn.109baaf0
add esp, 8
test eax, eax
je 0x1098743a
mov ecx, dword [esi + 0x12c]
mov edx, dword [ecx]
push str.clearing_map
call dword [edx + 0x70]
mov ecx, dword [esi + 0x114]
mov eax, dword [ecx]
call dword [eax + 0x90]
mov ecx, dword [esi + 0x114]
mov edx, dword [ecx + 0x1c]
push 1
push ebx
push edx
call fcn.109d0390
mov eax, dword [esi + 0x114]
mov eax, dword [eax + 0x1c]
push ebx
push str.MyLevel
push eax
push 0x11cc
call fcn.109246f0
add esp, 0x1c
cmp eax, ebx
je 0x109873b7
push ebx
push esi
mov ecx, eax
call fcn.10b160d0
jmp 0x109873b9
xor eax, eax
mov dword [esi + 0x114], eax
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x8c]
mov ecx, 0x110b8370
call fcn.10b7a220
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0xf4]
mov eax, dword [esi + 0x114]
mov edx, dword [esi]
push eax
mov ecx, esi
call dword [edx + 0xf8]
mov edx, dword [esi]
push 1
push ebx
push 0x2a
mov ecx, esi
call dword [edx + 0xcc]
mov eax, dword [esi]
push str.starting_new_map
push 1
mov ecx, esi
call dword [eax + 0xe8]
mov esi, dword [esi + 0x12c]
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x94]
mov eax, 1
mov ecx, dword [esp + 0x9b4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
lea eax, [ebp + 8]
push 0x10e5b248
push eax
call fcn.109baaf0
add esp, 8
test eax, eax
je 0x1098798c
mov ecx, dword [ebp + 8]
push ebx
push 0x100
push 0x10fac1e0
push str.FILE
push ecx
call fcn.109b9410
add esp, 0x14
test eax, eax
je 0x1098794e
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
lea ecx, [esp + 0x40]
mov dword [esp + 0x9bc], ebx
call fcn.109154c0
mov eax, dword [esp + 0x44]
cmp eax, dword [0x1107b730]
jge 0x109874ec
nop
mov edx, dword [0x1107b72c]
mov edi, dword [edx + eax*4]
mov ecx, dword [esi + 0x114]
lea eax, [esp + 0x14]
push eax
add ecx, 0x30
mov dword [esp + 0x18], edi
call fcn.1097e680
cmp eax, 0xffffffff
jne 0x109874d7
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x38]
mov dword [esp + 0x18], edi
call fcn.10973e80
lea ecx, [esp + 0x40]
call fcn.1090c880
mov eax, dword [esp + 0x44]
cmp eax, dword [0x1107b730]
jl 0x109874a0
mov ecx, dword [esi + 0x12c]
mov edx, dword [ecx]
push str.loading_map
call dword [edx + 0x70]
mov ecx, dword [0x10fcccac]
mov eax, dword [ecx]
push 1
push str.Loading_map
call dword [eax + 0xc]
mov ecx, dword [esi + 0x114]
mov edx, dword [ecx]
call dword [edx + 0x90]
mov eax, dword [esi + 0x114]
mov eax, dword [eax + 0x1c]
push 1
push ebx
push eax
call fcn.109d0390
add esp, 0xc
call fcn.109c1260
mov edx, dword [esi]
push ebx
mov ecx, esi
call dword [edx + 0x7c]
mov eax, dword [esi + 0x114]
mov eax, dword [eax + 0x1c]
push ebx
push 0x10fac1e0
push eax
call fcn.109d2440
mov ecx, dword [esi + 0x114]
mov dword [ecx + 0x44], esi
mov ecx, dword [esi + 0x114]
mov edx, dword [ecx]
add esp, 0xc
call dword [edx + 0x8c]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0xf4]
mov ecx, dword [esi + 0x114]
mov edi, dword [esi]
push 1
push ebx
call fcn.10921730
mov ecx, dword [eax + 0x258]
push ecx
mov ecx, esi
call dword [edi + 0x1e4]
mov ecx, dword [0x10fcccac]
mov edx, dword [ecx]
call dword [edx + 0x10]
mov eax, dword [esi + 0x114]
mov ecx, dword [eax + 0x34]
xor edi, edi
cmp ecx, ebx
jle 0x1098761f
mov ecx, dword [esi + 0x114]
mov edx, dword [ecx + 0x30]
mov ebx, dword [edx + edi*4]
test ebx, ebx
je 0x1098760f
mov eax, edx
mov edx, dword [eax + edi*4]
fld dword [edx + 0x148]
fld dword [edx + 0x148]
fucompp
fnstsw ax
test ah, 0x44
jp 0x10987604
fld dword [edx + 0x14c]
fld dword [edx + 0x14c]
fucompp
fnstsw ax
test ah, 0x44
jp 0x10987604
fld dword [edx + 0x150]
fld dword [edx + 0x150]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x1098760f
mov edx, dword [ecx]
push 0
push ebx
call dword [edx + 0xb0]
mov eax, dword [esi + 0x114]
mov ecx, dword [eax + 0x34]
inc edi
cmp edi, ecx
jl 0x109875b0
xor ebx, ebx
mov edx, dword [esi]
mov edi, 1
push edi
push edi
push 0x2a
mov ecx, esi
call dword [edx + 0xcc]
mov ecx, dword [esi + 0x114]
mov eax, dword [esi]
push ecx
mov ecx, esi
call dword [eax + 0xf8]
mov eax, dword [esi + 0x114]
or dword [eax + 0x20], edi
mov edx, dword [esi + 0x114]
mov eax, dword [edx + 0x90]
or dword [eax + 0x20], edi
mov eax, dword [esi + 0x114]
mov ecx, dword [eax + 0x90]
mov eax, dword [ecx + 0x58]
cmp eax, ebx
je 0x10987671
or dword [eax + 0x20], edi
lea ecx, [esp + 0x40]
call fcn.109154c0
mov edi, dword [esp + 0x44]
cmp edi, dword [0x1107b730]
jge 0x1098773e
lea ebx, [ebx]
mov edx, dword [0x1107b72c]
mov ebx, dword [edx + edi*4]
mov ecx, dword [esi + 0x114]
lea eax, [esp + 0x14]
push eax
add ecx, 0x30
mov dword [esp + 0x18], ebx
call fcn.1097e680
cmp eax, 0xffffffff
jne 0x109876d5
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x38]
mov dword [esp + 0x18], ebx
call fcn.1097e680
cmp eax, 0xffffffff
jne 0x10987725
or dword [ebx + 0x6c], 0x1000
jmp 0x10987725
and dword [ebx + 0x6c], 0xffffefff
mov edx, dword [0x1107b72c]
mov eax, dword [edx + edi*4]
push eax
call fcn.109465f0
add esp, 4
test eax, eax
je 0x10987702
mov eax, dword [0x1107b72c]
mov eax, dword [eax + edi*4]
mov ecx, dword [eax + 0x20]
and ecx, 0xfffffffe
jmp 0x10987711
mov ecx, dword [0x1107b72c]
mov eax, dword [ecx + edi*4]
mov ecx, dword [eax + 0x20]
or ecx, 1
mov dword [eax + 0x20], ecx
mov edx, dword [0x1107b72c]
mov ecx, dword [edx + edi*4]
mov eax, dword [ecx]
call dword [eax + 0x94]
lea ecx, [esp + 0x40]
call fcn.1090c880
mov edi, dword [esp + 0x44]
cmp edi, dword [0x1107b730]
jl 0x10987690
mov edx, dword [esi]
push str.loading_map
push 0
mov ecx, esi
call dword [edx + 0xe8]
mov eax, dword [esi + 0x34]
mov ecx, dword [eax + 0x34]
xor edi, edi
test ecx, ecx
jle 0x10987911
nop
mov ecx, dword [esi + 0x34]
mov edx, dword [ecx + 0x30]
mov edx, dword [edx + edi*4]
mov eax, dword [edx + 0x34]
mov ecx, dword [eax + 0x5b8]
dec ecx
cmp ecx, 0xe
ja case.0x10987783.8
movzx ecx, byte [ecx + 0x109890c4]
jmp dword [ecx*4 + 0x109890b0]
mov ecx, dword [esi + 0x114]
fld dword [0x10e4500c]
mov ecx, dword [ecx + 0x30]
mov ecx, dword [ecx]
mov ecx, dword [ecx + 0x540]
mov dword [eax + 0x148], ecx
mov ecx, dword [esi + 0x114]
mov ecx, dword [ecx + 0x30]
mov ecx, dword [ecx]
mov ecx, dword [ecx + 0x544]
mov dword [eax + 0x14c], ecx
mov eax, dword [esi + 0x114]
mov ecx, dword [eax + 0x30]
mov ecx, dword [ecx]
fld dword [ecx + 0x548]
fucompp
fnstsw ax
test ah, 0x44
jnp case.0x10987783.8
mov edx, dword [edx + 0x34]
mov eax, dword [ecx + 0x548]
mov dword [edx + 0x5bc], eax
jmp case.0x10987783.8
mov ecx, dword [esi + 0x114]
fld dword [0x10e4500c]
mov ecx, dword [ecx + 0x30]
mov ecx, dword [ecx]
mov ecx, dword [ecx + 0x54c]
mov dword [eax + 0x148], ecx
mov ecx, dword [esi + 0x114]
mov ecx, dword [ecx + 0x30]
mov ecx, dword [ecx]
mov ecx, dword [ecx + 0x550]
mov dword [eax + 0x150], ecx
mov eax, dword [esi + 0x114]
mov ecx, dword [eax + 0x30]
mov ecx, dword [ecx]
fld dword [ecx + 0x554]
fucompp
fnstsw ax
test ah, 0x44
jnp case.0x10987783.8
mov edx, dword [edx + 0x34]
mov eax, dword [ecx + 0x554]
mov dword [edx + 0x5bc], eax
jmp case.0x10987783.8
mov ecx, dword [esi + 0x114]
fld dword [0x10e4500c]
mov ecx, dword [ecx + 0x30]
mov ecx, dword [ecx]
mov ecx, dword [ecx + 0x558]
mov dword [eax + 0x14c], ecx
mov ecx, dword [esi + 0x114]
mov ecx, dword [ecx + 0x30]
mov ecx, dword [ecx]
mov ecx, dword [ecx + 0x55c]
mov dword [eax + 0x150], ecx
mov eax, dword [esi + 0x114]
mov ecx, dword [eax + 0x30]
mov ecx, dword [ecx]
fld dword [ecx + 0x560]
fucompp
fnstsw ax
test ah, 0x44
jnp case.0x10987783.8
mov edx, dword [edx + 0x34]
mov eax, dword [ecx + 0x560]
mov dword [edx + 0x5bc], eax
jmp case.0x10987783.8
mov ecx, dword [esi + 0x114]
mov edx, dword [ecx + 0x30]
mov ecx, dword [edx]
add ecx, 0x534
mov ebx, dword [ecx]
lea edx, [eax + 0x148]
mov dword [edx], ebx
mov ebx, dword [ecx + 4]
mov dword [edx + 4], ebx
mov ecx, dword [ecx + 8]
mov dword [edx + 8], ecx
mov edx, dword [esi + 0x114]
mov ecx, dword [edx + 0x30]
mov ecx, dword [ecx]
add ecx, 0x564
mov edx, dword [ecx]
add eax, 0x154
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov ecx, dword [ecx + 8]
mov dword [eax + 8], ecx
mov edx, dword [esi + 0x34]
mov eax, dword [edx + 0x34]
inc edi
cmp edi, eax
jl 0x10987760
mov eax, dword [0x10ff12a8]
test eax, eax
je 0x1098792a
mov eax, dword [esi]
push 1
push 0
push 0x38
mov ecx, esi
call dword [eax + 0xcc]
mov ecx, dword [esi + 0x12c]
mov edx, dword [ecx]
call dword [edx + 0x94]
lea ecx, [esp + 0x34]
mov dword [esp + 0x9bc], 0xffffffff
call fcn.10982560
jmp 0x10987960
mov ecx, dword [ebp + 0xc]
push str.Missing_filename
push 0x300
call fcn.109bad60
mov eax, dword [esi]
push 1
push 0
push 0x2a
mov ecx, esi
call dword [eax + 0xcc]
mov eax, 1
mov ecx, dword [esp + 0x9b4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
lea ecx, [ebp + 8]
push str.SAVE
push ecx
call fcn.109baaf0
add esp, 8
test eax, eax
je 0x109885a2
mov edx, dword [ebp + 8]
push ebx
push 0x100
push 0x10fac1e0
push str.FILE
push edx
call fcn.109b9410
add esp, 0x14
test eax, eax
je 0x10988a9c
mov ecx, dword [ebp + 8]
lea eax, [esp + 0x18]
push eax
push str.AUTOSAVE
push ecx
mov dword [esp + 0x24], ebx
call fcn.109b98d0
mov edx, dword [esi + 0x114]
mov eax, dword [edx + 0x34]
xor ecx, ecx
add esp, 0xc
cmp eax, ebx
mov dword [esp + 0xc], ecx
jle 0x10987ad0
lea ebx, [ebx]
mov eax, dword [esi + 0x114]
mov edx, dword [eax + 0x30]
mov ebx, dword [edx + ecx*4]
test ebx, ebx
je 0x10987ab6
call fcn.10906730
mov edx, dword [ebx + 0x28]
mov ecx, edx
test ecx, ecx
mov edi, eax
je 0x10987a2f
cmp ecx, edi
je 0x10987a66
mov ecx, dword [ecx + 0x2c]
test ecx, ecx
jne 0x10987a24
xor eax, eax
test edi, edi
sete al
test eax, eax
jne 0x10987a66
call fcn.109068b0
mov edx, dword [ebx + 0x28]
mov ecx, edx
test ecx, ecx
mov edi, eax
je 0x10987a5b
lea ebx, [ebx]
cmp ecx, edi
je 0x10987a66
mov ecx, dword [ecx + 0x2c]
test ecx, ecx
jne 0x10987a50
xor eax, eax
test edi, edi
sete al
test eax, eax
je 0x10987ab6
mov eax, dword [ebx + 0x40]
test eax, eax
jne 0x10987ab6
mov eax, dword [0x110a36dc]
mov ecx, dword [ebx + 0x24]
mov ecx, dword [eax + ecx*4]
mov edx, dword [edx + 0x24]
mov eax, dword [eax + edx*4]
add ecx, 0xc
push ecx
mov ecx, dword [0x10f43370]
add eax, 0xc
push eax
push str.Removing_degenerate__s__s.
push 0x2ff
push ecx
call fcn.109baec0
mov edx, dword [0x10fab8e8]
mov ecx, dword [edx + 0x114]
mov eax, dword [ecx]
add esp, 0x14
push 0
push ebx
call dword [eax + 0xb0]
mov ecx, dword [esp + 0xc]
mov edx, dword [esi + 0x114]
mov eax, dword [edx + 0x34]
inc ecx
cmp ecx, eax
mov dword [esp + 0xc], ecx
jl 0x10987a00
mov eax, dword [esi + 0x114]
mov ecx, dword [eax + 0x34]
xor ebx, ebx
test ecx, ecx
jle 0x10987b3d
nop
mov ecx, dword [esi + 0x114]
mov edx, dword [ecx + 0x30]
mov edi, dword [edx + ebx*4]
test edi, edi
je 0x10987b2f
call fcn.10906760
mov ecx, dword [edi + 0x28]
test ecx, ecx
je 0x10987b0b
lea esp, [esp]
cmp ecx, eax
je 0x10987b18
mov ecx, dword [ecx + 0x2c]
test ecx, ecx
jne 0x10987b00
xor ecx, ecx
test eax, eax
sete cl
mov eax, ecx
test eax, eax
je 0x10987b2f
mov edx, dword [0x10fab8e8]
mov ecx, dword [edx + 0x114]
mov eax, dword [ecx]
push 0
push edi
call dword [eax + 0xb0]
mov ecx, dword [esi + 0x114]
mov eax, dword [ecx + 0x34]
inc ebx
cmp ebx, eax
jl 0x10987ae0
mov ecx, dword [esi + 0x114]
mov edx, dword [ecx]
call dword [edx + 0x98]
mov ecx, dword [esi + 0x114]
mov eax, dword [ecx]
push 1
call dword [eax + 0xb4]
mov ecx, dword [esi + 0x114]
mov eax, dword [ecx + 0x1c]
push 0
push str.LevelInfo0
push eax
call fcn.1097f4d0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x10987b92
mov edx, dword [esi + 0x114]
mov eax, dword [edx + 0x30]
cmp edi, dword [eax]
je 0x10987b92
mov edx, dword [edi]
push 0
push 0
mov ecx, edi
call dword [edx + 0x64]
mov eax, dword [esi + 0x114]
mov ecx, dword [eax + 0x30]
mov ecx, dword [ecx]
cmp ecx, edi
je 0x10987bad
mov edx, dword [ecx]
push 0
push str.LevelInfo0
call dword [edx + 0x64]
mov eax, dword [esi + 0x114]
mov eax, dword [eax + 0x1c]
push 4
push str.LevelSummary
push eax
push 0x88
call fcn.1097d990
add esp, 0x10
test eax, eax
je 0x10987bda
mov ecx, eax
call fcn.10982350
mov ebx, eax
jmp 0x10987bdc
xor ebx, ebx
mov ecx, dword [esi + 0x114]
mov edx, dword [ecx + 0x30]
mov eax, dword [edx]
mov dword [eax + 0x510], ebx
mov eax, dword [esi + 0x114]
mov ecx, dword [eax + 0x30]
mov eax, dword [ecx]
add eax, 0x47c
push eax
lea ecx, [ebx + 0x2c]
call fcn.10928270
mov edx, dword [esi + 0x114]
mov eax, dword [edx + 0x30]
mov eax, dword [eax]
add eax, 0x488
push eax
lea ecx, [ebx + 0x50]
call fcn.10928270
mov ecx, dword [esi + 0x114]
mov edx, dword [ecx + 0x30]
mov eax, dword [edx]
add eax, 0x494
push eax
lea ecx, [ebx + 0x38]
call fcn.10928270
mov eax, dword [esi + 0x114]
mov ecx, dword [eax + 0x30]
mov eax, dword [ecx]
mov edx, dword [eax + 0x4a0]
mov dword [ebx + 0x78], edx
mov eax, dword [esi + 0x114]
mov ecx, dword [eax + 0x30]
mov eax, dword [ecx]
add eax, 0x4a4
push eax
lea ecx, [ebx + 0x5c]
call fcn.10928270
mov edx, dword [esi + 0x114]
mov eax, dword [edx + 0x30]
mov eax, dword [eax]
mov ecx, dword [eax + 0x4b0]
mov edi, dword [ebx + 0x70]
mov dword [ebx + 0x68], ecx
mov edx, dword [esi + 0x114]
mov eax, dword [edx + 0x30]
mov eax, dword [eax]
mov ecx, dword [eax + 0x4b4]
mov dword [ebx + 0x6c], ecx
mov edx, dword [esi + 0x114]
mov eax, dword [edx + 0x30]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x520]
xor edx, edi
and edx, 1
mov eax, edi
xor eax, edx
mov dword [ebx + 0x70], eax
mov eax, dword [esi + 0x114]
mov ecx, dword [eax + 0x30]
mov eax, dword [ecx]
mov edx, dword [eax + 0x4c4]
mov dword [ebx + 0x74], edx
mov eax, dword [esi + 0x114]
mov ecx, dword [eax + 0x30]
mov eax, dword [ecx]
add eax, 0x4f4
push eax
lea ecx, [ebx + 0x44]
call fcn.10928270
mov edx, dword [esi + 0x114]
mov eax, dword [edx + 0x30]
mov eax, dword [eax]
push 0x10e43c3c
lea ecx, [eax + 0x4b8]
call fcn.109116a0
test eax, eax
je 0x1098801f
mov ecx, dword [esi + 0x114]
mov eax, dword [ecx + 0x34]
test eax, eax
mov dword [esp + 0x1c], 1
mov dword [esp + 0xc], 0
jle 0x10988038
mov eax, dword [esp + 0xc]
mov edx, dword [esi + 0x114]
mov ecx, dword [edx + 0x30]
mov edi, dword [ecx + eax*4]
test edi, edi
mov dword [esp + 0x28], edi
je 0x10988007
mov edx, dword [edi + 0x24]
mov eax, dword [0x110a36dc]
mov ecx, dword [eax + edx*4]
add ecx, 0xc
push ecx
lea ecx, [esp + 0x94]
call fcn.10902ec0
push str.ONSPowerLinkOfficialSetup
lea ecx, [esp + 0x50]
mov dword [esp + 0x9c0], 1
call fcn.109556e0
push 0
lea edx, [esp + 0x50]
push edx
lea ecx, [esp + 0x98]
mov byte [esp + 0x9c4], 2
call fcn.1093cda0
cmp eax, 0xffffffff
lea ecx, [esp + 0x4c]
setne byte [esp + 0x33]
mov byte [esp + 0x9bc], 1
call fcn.10902a90
mov al, byte [esp + 0x33]
test al, al
je 0x10987fec
mov edi, dword [edi + 0x28]
push str.SetupName
push edi
call fcn.10935440
add esp, 8
test eax, eax
mov dword [esp + 0x2c], eax
je 0x10987fec
xor eax, eax
mov word [esp + 0x1b0], 0
mov ecx, 0x1ff
lea edi, [esp + 0x1b2]
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx]
push 1
stosw word es:[edi], ax
mov eax, dword [esp + 0x2c]
push eax
push eax
lea eax, [esp + 0x1bc]
push eax
push 0
call dword [edx + 0xa8]
lea ecx, [esp + 0x1b0]
push ecx
lea ecx, [esp + 0x44]
call fcn.10902ec0
lea edx, [esp + 0x9c]
push edx
lea ecx, [esp + 0x44]
mov byte [esp + 0x9c0], 3
call fcn.109277d0
push 0
push 0x10e4c7dc
mov ecx, eax
mov byte [esp + 0x9c4], 4
call fcn.10911720
lea ecx, [esp + 0x9c]
mov edi, eax
mov byte [esp + 0x9bc], 3
call fcn.10902a90
push 0x10e43c3c
lea ecx, [esp + 0x38]
call fcn.10902ec0
cmp edi, 0xffffffff
mov byte [esp + 0x9bc], 5
je 0x10987f5d
lea ebx, [ebx]
push edi
lea eax, [esp + 0x88]
push eax
lea ecx, [esp + 0x48]
call fcn.109116d0
push 0x10e52bec
lea ecx, [esp + 0x70]
push ecx
mov ecx, eax
mov byte [esp + 0x9c4], 6
call fcn.109058d0
push eax
lea ecx, [esp + 0x38]
mov byte [esp + 0x9c0], 7
call fcn.1090c7a0
lea ecx, [esp + 0x6c]
mov byte [esp + 0x9bc], 6
call fcn.10902a90
lea ecx, [esp + 0x84]
mov byte [esp + 0x9bc], 5
call fcn.10902a90
push 0x7fffffff
inc edi
push edi
lea edx, [esp + 0x80]
push edx
lea ecx, [esp + 0x4c]
call fcn.109298d0
push eax
lea ecx, [esp + 0x44]
mov byte [esp + 0x9c0], 8
call fcn.109057e0
lea ecx, [esp + 0x78]
mov byte [esp + 0x9bc], 5
call fcn.10902a90
lea eax, [esp + 0x60]
push eax
lea ecx, [esp + 0x44]
call fcn.109277d0
push 0
push 0x10e4c7dc
mov ecx, eax
mov byte [esp + 0x9c4], 9
call fcn.10911720
lea ecx, [esp + 0x60]
mov edi, eax
mov byte [esp + 0x9bc], 5
call fcn.10902a90
cmp edi, 0xffffffff
jne 0x10987e80
lea ecx, [esp + 0x40]
push ecx
lea ecx, [esp + 0x38]
call fcn.1090c7a0
mov eax, dword [esp + 0x38]
test eax, eax
mov eax, dword [esp + 0x34]
jne 0x10987f7c
mov eax, 0x10e43c3c
mov ecx, dword [esp + 0x2c]
mov edi, dword [ecx + 0x4c]
add edi, dword [esp + 0x28]
mov edx, dword [ecx]
push 1
push edi
push eax
call dword [edx + 0xa4]
mov eax, dword [esp + 0x1c]
test eax, eax
lea edi, [ebx + 0x7c]
mov ecx, edi
je 0x10987fb4
push str.LinkSetups
call fcn.109266f0
mov dword [esp + 0x1c], 0
jmp 0x10987fbe
push 0x10e48bb4
call fcn.109059d0
lea eax, [esp + 0x34]
push eax
mov ecx, edi
call fcn.1090c7a0
lea ecx, [esp + 0x34]
mov byte [esp + 0x9bc], 3
call fcn.10902a90
lea ecx, [esp + 0x40]
mov byte [esp + 0x9bc], 1
call fcn.10902a90
lea ecx, [esp + 0x90]
mov dword [esp + 0x9bc], 0xffffffff
call fcn.10902a90
mov eax, dword [esp + 0xc]
mov ecx, dword [esi + 0x114]
mov edx, dword [ecx + 0x34]
inc eax
cmp eax, edx
mov dword [esp + 0xc], eax
jl 0x10987d22
jmp 0x10988038
mov edx, dword [esi + 0x114]
mov eax, dword [edx + 0x30]
mov eax, dword [eax]
add eax, 0x4b8
push eax
lea ecx, [ebx + 0x7c]
call fcn.10928270
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x10988077
push 0x10fac1e0
lea ecx, [esp + 0x64]
call fcn.10902ec0
push 0
push str.Autoplay
mov ecx, eax
mov dword [esp + 0x9c4], 0xa
mov dword [esp + 0x18], 1
call fcn.10911720
test eax, eax
jge 0x10988077
mov bl, 1
jmp 0x10988079
xor bl, bl
test byte [esp + 0x10], 1
mov dword [esp + 0x9bc], 0xffffffff
je 0x10988094
lea ecx, [esp + 0x60]
call fcn.10902a90
test bl, bl
je 0x109880a8
mov ecx, dword [esi + 0x114]
push 0x10fac1e0
call fcn.10b13ce0
mov ecx, dword [esi + 0x114]
push ecx
lea ecx, [esp + 0x20]
call fcn.10982490
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x1098818e
mov edi, 0x300000
lea esp, [esp]
mov edx, dword [esp + 0x20]
mov eax, dword [ecx + 0x30]
mov eax, dword [eax + edx*4]
test dword [eax + 0x3d4], 0xc000000
jne 0x10988271
mov ebx, dword [eax + 0x258]
mov ebx, dword [ebx + 0x58]
cmp dword [ebx + 0x30], 0
mov dword [esp + 0x10], 0
jle 0x10988150
xor ebx, ebx
jmp 0x10988110
mov ebx, dword [esp + 0x14]
lea esp, [esp]
mov edi, dword [eax + 0x258]
mov edi, dword [edi + 0x58]
mov edi, dword [edi + 0x2c]
test byte [edi + ebx + 0xf3], 0xc
jne 0x1098826c
mov edi, dword [esp + 0x10]
add ebx, 0x148
mov dword [esp + 0x14], ebx
mov ebx, dword [eax + 0x258]
mov ebx, dword [ebx + 0x58]
inc edi
cmp edi, dword [ebx + 0x30]
mov dword [esp + 0x10], edi
jl 0x10988105
mov edi, 0x300000
or dword [eax + 0x20], edi
mov eax, dword [ecx + 0x30]
mov eax, dword [eax + edx*4]
mov eax, dword [eax + 0x258]
or dword [eax + 0x20], edi
mov ecx, dword [ecx + 0x30]
mov edx, dword [ecx + edx*4]
mov edx, dword [edx + 0x258]
mov eax, dword [edx + 0x58]
mov ecx, dword [eax + 0x20]
or ecx, edi
mov dword [eax + 0x20], ecx
lea ecx, [esp + 0x1c]
call fcn.1097fb10
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jne 0x109880d0
mov eax, dword [esi + 0x114]
mov ecx, dword [eax + 0x34]
xor ebx, ebx
cmp ecx, ebx
mov dword [esp + 0xc], ebx
jle 0x1098820b
mov edi, 1
jmp 0x109881b0
mov eax, dword [esi + 0x114]
mov ecx, dword [eax + 0x30]
mov edx, dword [ebx + ecx]
test edx, edx
je 0x109881f7
cmp edi, dword [eax + 0x34]
mov ecx, edi
jge 0x109881f7
jmp 0x109881d0
mov eax, dword [esi + 0x114]
mov eax, dword [eax + 0x30]
cmp dword [eax + ecx*4], edx
lea eax, [eax + ecx*4]
jne 0x109881eb
mov dword [eax], 0
inc dword [esp + 0xc]
mov eax, dword [esi + 0x114]
inc ecx
cmp ecx, dword [eax + 0x34]
jl 0x109881d0
mov ecx, dword [esi + 0x114]
mov eax, dword [ecx + 0x34]
add ebx, 4
inc edi
lea edx, [edi - 1]
cmp edx, eax
jl 0x109881b0
mov ecx, dword [esi + 0x114]
mov eax, dword [ecx]
call dword [eax + 0x9c]
mov ecx, dword [esp + 0xc]
mov edx, dword [0x10f43370]
push ecx
push str.Removed_duplicate_actor_indices:__u_duplicates_found.
push edx
call fcn.109baf50
mov eax, dword [esi + 0x34]
mov ecx, dword [eax + 0x34]
add esp, 0xc
xor edi, edi
test ecx, ecx
jle 0x109883e1
mov ecx, dword [esi + 0x34]
mov edx, dword [ecx + 0x30]
mov ecx, dword [edx + edi*4]
mov eax, dword [ecx + 0x34]
mov edx, dword [eax + 0x5b8]
dec edx
cmp edx, 0xe
ja case.0x10988265.8
movzx edx, byte [edx + 0x109890e8]
jmp dword [edx*4 + 0x109890d4]
mov edi, 0x300000
mov ebx, 0xffcfffff
and dword [eax + 0x20], ebx
mov eax, dword [ecx + 0x30]
mov eax, dword [eax + edx*4]
mov eax, dword [eax + 0x258]
and dword [eax + 0x20], ebx
mov ecx, dword [ecx + 0x30]
mov edx, dword [ecx + edx*4]
mov edx, dword [edx + 0x258]
mov eax, dword [edx + 0x58]
mov ecx, dword [eax + 0x20]
and ecx, ebx
jmp 0x10988176
mov edx, dword [esi + 0x114]
mov edx, dword [edx + 0x30]
mov edx, dword [edx]
mov ebx, dword [eax + 0x148]
mov dword [edx + 0x540], ebx
mov edx, dword [esi + 0x114]
mov edx, dword [edx + 0x30]
mov edx, dword [edx]
mov eax, dword [eax + 0x14c]
mov dword [edx + 0x544], eax
mov edx, dword [esi + 0x114]
mov eax, dword [edx + 0x30]
mov ecx, dword [ecx + 0x34]
mov eax, dword [eax]
mov edx, dword [ecx + 0x5bc]
mov dword [eax + 0x548], edx
jmp case.0x10988265.8
mov edx, dword [esi + 0x114]
mov edx, dword [edx + 0x30]
mov edx, dword [edx]
mov ebx, dword [eax + 0x148]
mov dword [edx + 0x54c], ebx
mov edx, dword [esi + 0x114]
mov edx, dword [edx + 0x30]
mov edx, dword [edx]
mov eax, dword [eax + 0x150]
mov dword [edx + 0x550], eax
mov edx, dword [esi + 0x114]
mov eax, dword [edx + 0x30]
mov ecx, dword [ecx + 0x34]
mov eax, dword [eax]
mov edx, dword [ecx + 0x5bc]
mov dword [eax + 0x554], edx
jmp case.0x10988265.8
mov edx, dword [esi + 0x114]
mov edx, dword [edx + 0x30]
mov edx, dword [edx]
mov ebx, dword [eax + 0x14c]
mov dword [edx + 0x558], ebx
mov edx, dword [esi + 0x114]
mov edx, dword [edx + 0x30]
mov edx, dword [edx]
mov eax, dword [eax + 0x150]
mov dword [edx + 0x55c], eax
mov edx, dword [esi + 0x114]
mov eax, dword [edx + 0x30]
mov ecx, dword [ecx + 0x34]
mov eax, dword [eax]
mov edx, dword [ecx + 0x5bc]
mov dword [eax + 0x560], edx
jmp case.0x10988265.8
mov ecx, dword [esi + 0x114]
mov edx, dword [ecx + 0x30]
mov ecx, dword [edx]
lea edx, [eax + 0x148]
mov ebx, dword [edx]
add ecx, 0x534
mov dword [ecx], ebx
mov ebx, dword [edx + 4]
mov dword [ecx + 4], ebx
mov edx, dword [edx + 8]
mov dword [ecx + 8], edx
mov ecx, dword [esi + 0x114]
mov edx, dword [ecx + 0x30]
mov ecx, dword [edx]
add eax, 0x154
mov edx, dword [eax]
add ecx, 0x564
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov eax, dword [eax + 8]
mov dword [ecx + 8], eax
mov ecx, dword [esi + 0x34]
mov eax, dword [ecx + 0x34]
inc edi
cmp edi, eax
jl 0x10988242
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x109883fb
mov ecx, dword [0x10fcccac]
mov edx, dword [ecx]
push 1
push str.Saving_map
call dword [edx + 0xc]
mov ecx, dword [0x10fcccac]
mov esi, dword [esi + 0x114]
mov eax, dword [esi + 0x1c]
push 0
push ecx
push 0x10fac1e0
push 0
push esi
push eax
call fcn.109d04e0
add esp, 0x18
test eax, eax
jne 0x10988435
push str.Couldnt_save_package___maybe_file_is_read_only_
push eax
call fcn.109bfb50
add esp, 8
jmp 0x1098856f
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x10988aae
push 0x10fac1e0
lea ecx, [esp + 0x20]
call fcn.10902ec0
mov eax, dword [esp + 0x20]
xor edi, edi
mov ebx, 0xb
cmp eax, edi
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x9bc], ebx
jne 0x1098846e
mov eax, 0x10e43c3c
push 0x10e482f4
push eax
call fcn.109b8b20
add esp, 8
cmp eax, edi
je 0x10988525
cmp dword [esp + 0x20], edi
mov ecx, dword [esp + 0x1c]
jne 0x10988493
mov ecx, 0x10e43c3c
sub eax, ecx
sar eax, 1
cmp eax, 0xffffffff
je 0x10988525
push 0x7fffffff
push 1
push 0x10e482f4
lea ecx, [esp + 0x28]
call fcn.10911720
inc eax
push eax
lea edx, [esp + 0x68]
push edx
lea ecx, [esp + 0x28]
call fcn.109298d0
mov esi, eax
lea eax, [esp + 0x1c]
cmp eax, esi
mov byte [esp + 0x9bc], 0xc
je 0x10988515
mov eax, dword [esi + 4]
push 2
lea ecx, [esp + 0x20]
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], eax
call fcn.109b8e40
mov eax, dword [esp + 0x20]
cmp eax, edi
je 0x10988515
cmp dword [esi + 4], edi
je 0x109884fe
mov esi, dword [esi]
jmp 0x10988503
mov esi, 0x10e43c3c
mov edx, dword [esp + 0x1c]
lea ecx, [eax + eax]
push ecx
push esi
push edx
call fcn.10902f60
add esp, 0xc
lea ecx, [esp + 0x60]
mov byte [esp + 0x9bc], bl
call fcn.10902a90
cmp dword [esp + 0x20], edi
mov eax, dword [esp + 0x1c]
jne 0x10988534
mov eax, 0x10e43c3c
push eax
call fcn.10b41280
add esp, 4
push 2
lea ecx, [esp + 0x20]
mov dword [esp + 0x9c0], 0xd
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], edi
call fcn.109b8e40
lea ecx, [esp + 0x1c]
mov dword [esp + 0x9bc], 0xffffffff
call fcn.109148d0
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x10988aae
mov ecx, dword [0x10fcccac]
mov eax, dword [ecx]
call dword [eax + 0x10]
mov eax, 1
mov ecx, dword [esp + 0x9b4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
lea ecx, [ebp + 8]
push str.IMPORT
push ecx
call fcn.109baaf0
add esp, 8
test eax, eax
je 0x109885c2
mov word [0x10fab9d8], 1
jmp 0x109885f6
lea edx, [ebp + 8]
push str.IMPORTADD
push edx
call fcn.109baaf0
add esp, 8
test eax, eax
je 0x1098874e
push 1
mov word [0x10fab9d8], bx
mov ecx, dword [esi + 0x114]
mov eax, dword [esi]
push ebx
push ecx
mov ecx, esi
call dword [eax + 0x138]
mov edx, dword [ebp + 8]
push ebx
push 0x100
push 0x10fac1e0
push str.FILE
push edx
call fcn.109b9410
add esp, 0x14
test eax, eax
je 0x10988a9c
mov ecx, dword [esi + 0x12c]
mov eax, dword [ecx]
push str.importing_map
call dword [eax + 0x70]
mov ecx, dword [0x10fcccac]
mov edx, dword [ecx]
push 1
push str.Importing_map
call dword [edx + 0xc]
mov ecx, dword [esi + 0x114]
mov eax, dword [ecx]
call dword [eax + 0x90]
cmp word [0x10fab9d8], bx
je 0x10988687
mov ecx, dword [esi + 0x114]
mov eax, dword [ecx + 0x1c]
push ebx
push str.MyLevel
push eax
push 0x11cc
call fcn.109246f0
add esp, 0x10
cmp eax, ebx
je 0x1098867f
push ebx
push esi
mov ecx, eax
call fcn.10b160d0
jmp 0x10988681
xor eax, eax
mov dword [esi + 0x114], eax
mov edx, dword [0x10fcccac]
mov eax, dword [esi + 0x114]
mov ecx, dword [eax + 0x24]
push edx
push ebx
push ebx
push ebx
push 0x10fac1e0
push 1
push ecx
mov ecx, dword [eax + 0x1c]
push ecx
push eax
call fcn.1097f510
mov edx, dword [esi]
add esp, 0x24
push ebx
mov ecx, esi
call dword [edx + 0x7c]
mov ecx, dword [esi + 0x114]
mov eax, dword [ecx]
call dword [eax + 0x8c]
mov ecx, 0x110b8370
call fcn.10b7a220
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0xf4]
cmp word [0x10fab9d8], bx
je 0x109886f6
mov ecx, dword [esi + 0x114]
mov eax, dword [esi]
push 1
push ebx
push ecx
mov ecx, esi
call dword [eax + 0x138]
mov ecx, dword [0x10fcccac]
mov edx, dword [ecx]
call dword [edx + 0x10]
mov eax, dword [esi]
push 1
push ebx
push 0x2a
mov ecx, esi
call dword [eax + 0xcc]
mov eax, dword [esi + 0x114]
mov edx, dword [esi]
push eax
mov ecx, esi
call dword [edx + 0xf8]
mov edx, dword [esi]
push str.importing_map
push 1
mov ecx, esi
call dword [edx + 0xe8]
mov eax, 1
mov ecx, dword [esp + 0x9b4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
lea eax, [ebp + 8]
push str.EXPORT
push eax
call fcn.109baaf0
add esp, 8
test eax, eax
je 0x109887d7
mov ecx, dword [ebp + 8]
push ebx
push 0x100
push 0x10fac1e0
push str.FILE
push ecx
call fcn.109b9410
add esp, 0x14
test eax, eax
je 0x10988a9c
mov ecx, dword [0x10fcccac]
mov edx, dword [ecx]
push 1
push str.Exporting_map
call dword [edx + 0xc]
mov eax, dword [esi + 0x114]
push ebx
push ebx
push 0x10fac1e0
push ebx
push eax
call fcn.109decc0
mov ecx, dword [0x10fcccac]
mov edx, dword [ecx]
add esp, 0x14
call dword [edx + 0x10]
mov eax, 1
mov ecx, dword [esp + 0x9b4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
lea eax, [ebp + 8]
push str.SETBRUSH
push eax
call fcn.109baaf0
add esp, 8
test eax, eax
je 0x1098895c
mov ecx, dword [esi + 0x12c]
mov edx, dword [ecx]
push 1
push str.Set_Brush_Properties
call dword [edx + 0x74]
mov ecx, dword [ebp + 8]
lea eax, [esp + 0x1c]
push eax
push str.CSGOPER
push ecx
mov word [0x10fab9d8], bx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x24], ebx
call fcn.109b98d0
add esp, 0xc
test eax, eax
je 0x1098883e
or byte [0x10fab9d8], 8
mov edx, dword [ebp + 8]
push 0x10fab9d4
push str.COLOR
push edx
call fcn.109baa30
add esp, 0xc
test eax, eax
je 0x1098885f
or byte [0x10fab9d8], 1
mov ecx, dword [ebp + 8]
lea eax, [esp + 0x18]
push eax
push str.GROUP
push ecx
call fcn.109b97e0
add esp, 0xc
test eax, eax
je 0x10988880
or byte [0x10fab9d8], 2
mov eax, dword [ebp + 8]
lea edx, [esp + 0x2c]
push edx
push str.SETFLAGS
push eax
call fcn.109b98d0
add esp, 0xc
test eax, eax
mov edi, 4
je 0x109888a6
or word [0x10fab9d8], di
mov edx, dword [ebp + 8]
lea ecx, [esp + 0x28]
push ecx
push str.CLEARFLAGS
push edx
call fcn.109b98d0
add esp, 0xc
test eax, eax
je 0x109888c7
or word [0x10fab9d8], di
mov ecx, dword [ebp + 8]
lea eax, [esp + 0x10]
push eax
push str.DRAWTYPE
push ecx
call fcn.109b98d0
add esp, 0xc
test eax, eax
je 0x109888e8
or byte [0x10fab9d8], 0x10
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esi]
push eax
mov eax, dword [esp + 0x2c]
push ecx
mov ecx, dword [esp + 0x34]
push eax
mov eax, dword [esp + 0x24]
push ecx
xor ecx, ecx
mov cx, word [0x10fab9d4]
push eax
movzx eax, word [0x10fab9d8]
push ecx
mov ecx, dword [esi + 0x114]
push eax
push ecx
mov ecx, esi
call dword [edx + 0x1b0]
mov ecx, dword [esi + 0x12c]
mov edx, dword [ecx]
call dword [edx + 0x78]
mov ecx, dword [esi + 0x114]
mov eax, dword [esi]
push ecx
mov ecx, esi
call dword [eax + 0xf0]
mov eax, 1
mov ecx, dword [esp + 0x9b4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
lea edx, [ebp + 8]
push str.SAVEPOLYS
push edx
call fcn.109baaf0
add esp, 8
test eax, eax
je 0x10988aca
mov eax, dword [ebp + 8]
push ebx
push 0x100
push 0x10fac1e0
push str.FILE
push eax
call fcn.109b9410
add esp, 0x14
test eax, eax
je 0x10988a9c
mov edx, dword [ebp + 8]
lea ecx, [esp + 0x10]
push ecx
push str.MERGE
push edx
mov dword [esp + 0x1c], 1
call fcn.109b9910
mov ecx, dword [0x10fcccac]
mov eax, dword [ecx]
add esp, 0xc
push 1
push str.Exporting_map_polys
call dword [eax + 0xc]
mov eax, dword [0x10fcccac]
mov ecx, dword [eax]
push str.Building_polygons
push ebx
push ebx
push eax
call dword [ecx + 0x14]
mov eax, dword [esi + 0x114]
mov ecx, dword [eax + 0x90]
mov edx, dword [esi]
add esp, 0x10
push ebx
push ebx
push ecx
mov ecx, esi
call dword [edx + 0x1d4]
cmp dword [esp + 0x10], ebx
je 0x10988a2c
mov eax, dword [0x10fcccac]
mov edx, dword [eax]
push str.Merging_planars
push ebx
push ebx
push eax
call dword [edx + 0x14]
mov ecx, dword [esi + 0x114]
mov edx, dword [ecx + 0x90]
mov eax, dword [esi]
add esp, 0x10
push 1
push ebx
push edx
mov ecx, esi
call dword [eax + 0x1d8]
mov eax, dword [esi + 0x114]
mov ecx, dword [eax + 0x90]
mov edx, dword [ecx + 0x58]
push ebx
push ebx
push 0x10fac1e0
push ebx
push edx
call fcn.109decc0
mov eax, dword [esi + 0x114]
mov ecx, dword [eax + 0x90]
mov ecx, dword [ecx + 0x58]
add esp, 0x14
push ebx
add ecx, 0x2c
call fcn.10921ac0
mov ecx, dword [0x10fcccac]
mov edx, dword [ecx]
call dword [edx + 0x10]
mov ecx, dword [esi + 0x114]
mov eax, dword [esi]
push ecx
mov ecx, esi
call dword [eax + 0xf0]
mov eax, 1
mov ecx, dword [esp + 0x9b4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [ebp + 0xc]
push str.Missing_filename
push 0x300
call fcn.109bad60
mov eax, 1
mov ecx, dword [esp + 0x9b4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
lea edx, [ebp + 8]
push str.CHECK
push edx
call fcn.109baaf0
add esp, 8
test eax, eax
je 0x10988b8d
mov ecx, dword [0x10fcccac]
mov eax, dword [ecx]
call dword [eax + 0x1c]
mov ecx, dword [0x10fcccac]
mov edx, dword [ecx]
call dword [edx + 0x28]
mov ecx, dword [0x10fcccac]
mov eax, dword [ecx]
push 1
push str.Checking_map
call dword [eax + 0xc]
mov ecx, dword [0x10fab8e8]
mov edx, dword [ecx + 0x114]
mov eax, dword [edx + 0x34]
xor esi, esi
cmp eax, ebx
jle 0x10988b66
mov eax, dword [0x10fcccac]
mov ecx, dword [eax]
push str.Checking_map
push esi
push ebx
push eax
call dword [ecx + 0x14]
mov edx, dword [0x10fab8e8]
mov eax, dword [edx + 0x114]
mov ecx, dword [eax + 0x30]
mov ecx, dword [ecx + esi*4]
add esp, 0x10
cmp ecx, ebx
je 0x10988b53
mov edx, dword [ecx]
call dword [edx + 0x194]
mov eax, dword [0x10fab8e8]
mov ecx, dword [eax + 0x114]
mov eax, dword [ecx + 0x34]
inc esi
cmp esi, eax
jl 0x10988b20
mov ecx, dword [0x10fcccac]
mov edx, dword [ecx]
call dword [edx + 0x10]
mov eax, 1
mov ecx, dword [esp + 0x9b4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
lea eax, [ebp + 8]
push str.MEMSTAT
push eax
call fcn.109baaf0
add esp, 8
test eax, eax
je 0x10988c75
lea ecx, [esp + 0xa8]
call fcn.10982920
mov ecx, dword [esi + 0x114]
push ebx
mov dword [esp + 0x9c0], 0xe
call fcn.109c36f0
mov edi, dword [ebp + 0xc]
push eax
push str._MEMSTAT__Analyzing_map:__s
push 0x2f8
push edi
call fcn.109baec0
push 0x10e5bdc8
push 0x2f8
push edi
call fcn.109baec0
mov ecx, dword [esi + 0x114]
add esp, 0x1c
push ecx
lea ecx, [esp + 0xac]
call fcn.109afd90
lea edx, [ebp + 8]
push str.DETAIL
push edx
call fcn.109baaf0
add esp, 8
test eax, eax
je 0x10988c25
push edi
lea ecx, [esp + 0xac]
call fcn.109af9b0
push edi
lea ecx, [esp + 0xac]
call fcn.109ae130
push 0x10e5bdc8
push 0x2f8
push edi
call fcn.109baec0
add esp, 0xc
lea ecx, [esp + 0xa8]
mov dword [esp + 0x9bc], 0xffffffff
call fcn.109829a0
xor eax, eax
mov ecx, dword [esp + 0x9b4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
lea eax, [ebp + 8]
push str.SCALE
push eax
call fcn.109baaf0
add esp, 8
test eax, eax
je 0x10988c5c
mov edx, dword [ebp + 8]
lea ecx, [esp + 0xc]
push ecx
push str.FACTOR
push edx
mov dword [esp + 0x18], 0x3f800000
call fcn.109b9890
add esp, 0xc
test eax, eax
je 0x10988c5c
mov ecx, dword [esi + 0x12c]
mov eax, dword [ecx]
push 1
push str.Map_Scaling
call dword [eax + 0x74]
mov edx, dword [ebp + 8]
lea ecx, [esp + 0x14]
push ecx
push str.ADJUSTLIGHTS
push edx
mov dword [esp + 0x20], ebx
call fcn.109b9910
mov ecx, dword [ebp + 8]
lea eax, [esp + 0x64]
push eax
push str.SCALESPRITES
push ecx
mov dword [esp + 0x70], ebx
call fcn.109b9910
mov eax, dword [ebp + 8]
lea edx, [esp + 0x74]
push edx
push str.SCALELOCATIONS
push eax
mov dword [esp + 0x80], ebx
call fcn.109b9910
mov edx, dword [ebp + 8]
lea ecx, [esp + 0x64]
push ecx
push str.SCALECOLLISION
push edx
mov dword [esp + 0x70], ebx
call fcn.109b9910
mov ecx, dword [0x10fcccac]
mov eax, dword [ecx]
add esp, 0x30
push 1
push str.Scaling
call dword [eax + 0xc]
mov eax, dword [esi + 0x114]
mov edx, dword [esi]
push eax
mov ecx, esi
call dword [edx + 0x100]
mov ecx, dword [0x10fab8e8]
mov edx, dword [ecx + 0x114]
mov eax, dword [edx + 0x34]
xor edi, edi
cmp eax, ebx
mov dword [esp + 0x28], edi
jle 0x1098907c
mov eax, dword [0x10fcccac]
mov ecx, dword [eax]
push str.Scaling
push edi
push 0
push eax
call dword [ecx + 0x14]
mov edx, dword [0x10fab8e8]
mov eax, dword [edx + 0x114]
mov ecx, dword [eax + 0x30]
mov ebx, dword [ecx + edi*4]
add esp, 0x10
test ebx, ebx
mov dword [esp + 0x2c], ebx
je 0x10989061
mov eax, dword [ebx + 0x350]
test ah, ah
jns 0x10989061
mov edx, dword [ebx]
mov ecx, ebx
call dword [edx + 0x20]
mov ecx, ebx
call fcn.1097da00
test eax, eax
je 0x10988fb0
push ebx
call fcn.10926420
mov edi, eax
mov eax, dword [edi + 0x258]
mov ecx, dword [eax + 0x58]
add esp, 4
add ecx, 0x2c
call fcn.1097e650
mov ecx, dword [edi + 0x258]
mov eax, dword [ecx + 0x58]
mov ecx, dword [eax + 0x30]
test ecx, ecx
mov dword [esp + 0x1c], 0
jle 0x10988f9f
mov dword [esp + 0x18], 0
jmp 0x10988e00
fld dword [0x10e45008]
mov ecx, dword [eax + 0x2c]
fdiv dword [esp + 0xc]
mov edx, dword [esp + 0x18]
add ecx, edx
mov edx, ecx
mov dword [esp + 0x10], 0
fld st(0)
fmul dword [ecx + 0x18]
fstp dword [ecx + 0x18]
fld st(0)
fmul dword [ecx + 0x1c]
fstp dword [ecx + 0x1c]
fmul dword [ecx + 0x20]
fstp dword [ecx + 0x20]
fld dword [0x10e45008]
fdiv dword [esp + 0xc]
fld st(0)
fmul dword [ecx + 0x24]
fstp dword [ecx + 0x24]
fld st(0)
fmul dword [ecx + 0x28]
fstp dword [ecx + 0x28]
fmul dword [ecx + 0x2c]
fstp dword [ecx + 0x2c]
fld dword [ecx]
fsub dword [edi + 0x27c]
fld dword [ecx + 4]
fsub dword [edi + 0x280]
fld dword [ecx + 8]
fsub dword [edi + 0x284]
fstp dword [esp + 0x68]
fld dword [esp + 0xc]
fmul st(2)
fstp dword [esp + 0x78]
fld dword [esp + 0xc]
fmul st(1)
fstp st(2)
fstp st(0)
fld dword [esp + 0xc]
fmul dword [esp + 0x68]
fld dword [esp + 0x78]
fadd dword [edi + 0x27c]
fstp dword [esp + 0x34]
mov eax, dword [esp + 0x34]
fxch st(1)
fadd dword [edi + 0x280]
fstp dword [esp + 0x38]
fadd dword [edi + 0x284]
mov dword [edx], eax
mov eax, dword [esp + 0x38]
mov dword [edx + 4], eax
fstp dword [esp + 0x3c]
mov eax, dword [esp + 0x3c]
mov dword [edx + 8], eax
mov eax, dword [ecx + 0x100]
test eax, eax
jle 0x10988f6e
lea eax, [ecx + 0x30]
fld dword [eax]
mov edx, eax
fsub dword [edi + 0x27c]
add eax, 0xc
fld dword [eax - 8]
fsub dword [edi + 0x280]
fld dword [eax - 4]
fsub dword [edi + 0x284]
fstp dword [esp + 0x8c]
fld dword [esp + 0xc]
fmul st(2)
fstp dword [esp + 0x6c]
fld dword [esp + 0xc]
fmul st(1)
fstp st(2)
fstp st(0)
fld dword [esp + 0xc]
fmul dword [esp + 0x8c]
fld dword [esp + 0x6c]
fadd dword [edi + 0x27c]
fstp dword [esp + 0x4c]
mov ebx, dword [esp + 0x4c]
fxch st(1)
fadd dword [edi + 0x280]
fstp dword [esp + 0x50]
fadd dword [edi + 0x284]
mov dword [edx], ebx
mov ebx, dword [esp + 0x50]
mov dword [edx + 4], ebx
fstp dword [esp + 0x54]
mov ebx, dword [esp + 0x54]
mov dword [edx + 8], ebx
mov edx, dword [esp + 0x10]
mov ebx, dword [ecx + 0x100]
inc edx
cmp edx, ebx
mov dword [esp + 0x10], edx
jl 0x10988ed6
mov ebx, dword [esp + 0x2c]
push 0
call fcn.10a112d0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
add eax, 0x148
mov dword [esp + 0x18], eax
mov eax, dword [edi + 0x258]
mov eax, dword [eax + 0x58]
mov edx, dword [eax + 0x30]
inc ecx
cmp ecx, edx
mov dword [esp + 0x1c], ecx
jl 0x10988e00
mov ecx, dword [edi + 0x258]
call fcn.10a2c780
mov edi, dword [esp + 0x28]
jmp 0x10988fd7
mov al, byte [ebx + 0x3b]
cmp al, 8
je 0x10988fc7
cmp al, 2
je 0x10988fc7
mov ecx, dword [esp + 0x58]
test ecx, ecx
je 0x10988fd7
cmp al, 1
jne 0x10988fd7
fld dword [esp + 0xc]
fmul dword [ebx + 0x25c]
fstp dword [ebx + 0x25c]
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x1098900f
fld dword [esp + 0xc]
fmul dword [ebx + 0x148]
fstp dword [ebx + 0x148]
fld dword [esp + 0xc]
fmul dword [ebx + 0x14c]
fstp dword [ebx + 0x14c]
fld dword [esp + 0xc]
fmul dword [ebx + 0x150]
fstp dword [ebx + 0x150]
mov eax, dword [esp + 0x40]
test eax, eax
je 0x10989037
fld dword [esp + 0xc]
fmul dword [ebx + 0x2d0]
fstp dword [ebx + 0x2d0]
fld dword [esp + 0xc]
fmul dword [ebx + 0x2cc]
fstp dword [ebx + 0x2cc]
mov eax, dword [esp + 0x14]
test eax, eax
je 0x1098905a
mov al, byte [ebx + 0x2c]
test al, al
je 0x1098905a
fld dword [esp + 0xc]
fmul dword [ebx + 0x30]
fstp dword [ebx + 0x30]
fld dword [esp + 0xc]
fmul dword [ebx + 0x34]
fstp dword [ebx + 0x34]
mov edx, dword [ebx]
mov ecx, ebx
call dword [edx + 0x48]
mov eax, dword [0x10fab8e8]
mov ecx, dword [eax + 0x114]
mov eax, dword [ecx + 0x34]
inc edi
cmp edi, eax
mov dword [esp + 0x28], edi
jl 0x10988d60
mov ecx, dword [0x10fcccac]
mov edx, dword [ecx]
call dword [edx + 0x10]
mov esi, dword [esi + 0x12c]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x78]
mov ecx, dword [esp + 0x9b4]
pop edi
pop esi
mov eax, 1
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 8