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

Disassembly:
mov eax, 0x19650
call fcn.004b13e0
or eax, 0xffffffff
push ebx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x38], eax
mov eax, dword [0x4eb018]
push ebp
push esi
cmp eax, 8
push edi
mov byte [esp + 0x14], 0
mov dword [esp + 0x74], 0
jne 0x466177
mov byte [0x515bb0], 0
mov al, byte [0x4eb014]
mov byte [0x6d6109], 0
test al, al
push 0
je 0x466250
push 0x4db9b4
push str.bincircles.bin
call fcn.0042ba50
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x4661b8
push eax
push str.bincircles.bin
call fcn.0042b730
add esp, 8
jmp 0x4663d6
push esi
push 1
push 1
push 0x548044
call fcn.0042bb60
add esp, 0x10
push esi
push 9
push 1
push 0x548038
call fcn.0042bb60
add esp, 0x10
push esi
push 0x19
push 1
push 0x548018
call fcn.0042bb60
add esp, 0x10
push esi
push 0x31
push 1
push 0x517b60
call fcn.0042bb60
add esp, 0x10
push esi
push 0x51
push 1
push 0x517b08
call fcn.0042bb60
add esp, 0x10
push esi
push 0x79
push 1
push 0x517a88
call fcn.0042bb60
add esp, 0x10
push esi
push 0xa9
push 1
push 0x5179d8
call fcn.0042bb60
add esp, 0x10
push esi
push 0xe1
push 1
push 0x517d00
call fcn.0042bb60
jmp 0x4663ca
lea eax, [esp + 0x50]
lea ecx, [esp + 0x38]
push eax
push ecx
push str.SCircles.bmp
call fcn.0042eae0
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x44]
add esp, 0x10
mov ecx, dword [0x798384]
push 1
push 0
push 0
push edx
push eax
push 0
push 0
push ecx
push 8
push str.SCircles.bmp
call fcn.0042f430
add esp, 0x28
mov esi, eax
push esi
push 1
push 0x548038
call fcn.0046ace0
add esp, 0xc
push esi
push 2
push 0x548018
call fcn.0046ace0
add esp, 0xc
push esi
push 3
push 0x517b60
call fcn.0046ace0
add esp, 0xc
push esi
push 4
push 0x517b08
call fcn.0046ace0
add esp, 0xc
push esi
push 5
push 0x517a88
call fcn.0046ace0
add esp, 0xc
push esi
push 6
push 0x5179d8
call fcn.0046ace0
add esp, 0xc
push esi
push 7
push 0x517d00
call fcn.0046ace0
add esp, 0xc
push esi
call fcn.0042f160
mov al, byte [0x7984cc]
add esp, 4
test al, al
je 0x4663d6
push 0
push 0x4db9b0
push str.bincircles.bin
call fcn.0042ba50
mov esi, eax
add esp, 0xc
test esi, esi
je 0x4663d6
push esi
push 1
push 1
push 0x548044
call fcn.0042bb80
add esp, 0x10
push esi
push 9
push 1
push 0x548038
call fcn.0042bb80
add esp, 0x10
push esi
push 0x19
push 1
push 0x548018
call fcn.0042bb80
add esp, 0x10
push esi
push 0x31
push 1
push 0x517b60
call fcn.0042bb80
add esp, 0x10
push esi
push 0x51
push 1
push 0x517b08
call fcn.0042bb80
add esp, 0x10
push esi
push 0x79
push 1
push 0x517a88
call fcn.0042bb80
add esp, 0x10
push esi
push 0xa9
push 1
push 0x5179d8
call fcn.0042bb80
add esp, 0x10
push esi
push 0xe1
push 1
push 0x517d00
call fcn.0042bb80
add esp, 0x10
push esi
call fcn.0042bb40
add esp, 4
mov edi, 0x790510
xor esi, esi
push 0xf52
push str.C:MsDevProjectsJuly2000codeSetup.cpp
call fcn.00448460
and al, 3
add esp, 8
mov byte [esi + edi], al
inc esi
cmp esi, 8
jb 0x4663dd
add edi, 8
cmp edi, 0x790550
jb 0x4663db
xor esi, esi
push 0xf59
push str.C:MsDevProjectsJuly2000codeSetup.cpp
call fcn.00448460
xor edx, edx
mov ecx, 0xc
div ecx
add esp, 8
push 0xf5a
push str.C:MsDevProjectsJuly2000codeSetup.cpp
sub edx, ecx
mov dword [esi + 0x503f88], edx
call fcn.00448460
xor edx, edx
mov ecx, 0xc
div ecx
add esi, 4
add esp, 8
sub edx, ecx
cmp esi, 0x40
mov dword [esi + 0x502ed4], edx
jb 0x466407
xor ebx, ebx
mov ebp, 0x6d8da8
mov esi, ebp
xor ecx, ecx
mov edi, ebx
mov edx, ebx
sub esi, 0x6d8da8
cmp edi, 0x1f
mov eax, edi
jb 0x466476
mov eax, 0x1f
mov byte [ecx + esi + 0x6d8da8], al
xor eax, eax
test edx, edx
setle al
dec eax
and eax, edx
mov byte [ecx + esi + 0x790110], al
inc ecx
inc edi
dec edx
cmp ecx, 0x20
jb 0x46646a
add ebp, 0x20
inc ebx
cmp ebp, 0x6d91a8
jb 0x46645c
mov al, byte [0x4eb014]
test al, al
jne 0x4694b3
mov edx, dword [0x798384]
push 1
push 0
push 1
push 0x20
push 0x20
push 0
push 0
push edx
push 8
push str.block1.bmp
call fcn.0042f430
add esp, 0x28
mov dword [0x786fe8], eax
mov eax, dword [0x798384]
push 1
push 0
push 1
push 0x20
push 0x20
push 0
push 0
push eax
push 8
push str.block2.bmp
call fcn.0042f430
add esp, 0x28
mov ecx, dword [0x798384]
mov dword [0x795440], eax
push 1
push 0
push 1
push 0x20
push 0x20
push 0
push 0
push ecx
push 8
push str.block3.bmp
call fcn.0042f430
mov edx, dword [0x4e41f4]
add esp, 0x28
mov ecx, dword [0x798384]
mov dword [0x6e5854], eax
mov eax, dword [str.___P_n]
push 1
push 0
push 1
push edx
push eax
push 0
push 0
push ecx
push 8
push str.icoico_0.bmp
call fcn.0042f430
add esp, 0x28
mov edx, dword [0x798384]
mov dword [0x6d60d0], eax
push 1
push 0
push 1
push 0
push 0
push 0
push 0
push edx
push 8
push str.spanner.bmp
call fcn.0042f430
add esp, 0x28
mov dword [0x6dc468], eax
call fcn.00462290
xor ebx, ebx
mov edi, 0x795028
mov ebp, 4
xor esi, esi
mov eax, dword [0x798384]
push 1
push 0
push 0
push 0x20
push 0x20
push ebx
push esi
push eax
push 8
push str.Shroud2.bmp
call fcn.0042f430
mov dword [edi], eax
add esi, 0x20
add esp, 0x28
add edi, 4
cmp esi, 0x200
jb 0x466597
add ebx, 0x20
dec ebp
jne 0x466595
xor edi, edi
mov esi, 0x7951a8
mov ecx, dword [0x798384]
push 1
push 1
push 1
push 0x20
push 0x20
push 0
push edi
push ecx
push 8
push str.Crate.bmp
call fcn.0042f430
mov cl, byte [0x515bb0]
add esp, 0x28
test cl, cl
mov dword [esi], eax
je 0x466618
mov edx, dword [eax + 0x14]
push 0x100
mov eax, dword [edx + 4]
push eax
call fcn.004352c0
add esp, 8
add esi, 4
add edi, 0x20
cmp esi, 0x7951c8
jb 0x4665d5
xor edi, edi
mov esi, 0x782058
mov ecx, dword [0x798384]
push 1
push 0
push 1
push 0x10
push 0x10
push 0
push edi
push ecx
push 8
push str.MiscIcon.bmp
call fcn.0042f430
mov dword [esi], eax
add esi, 4
add esp, 0x28
add edi, 0x10
cmp esi, 0x782068
jb 0x46662d
xor ebx, ebx
mov ebp, 0x6d7be8
xor esi, esi
mov edi, ebp
mov edx, dword [0x798384]
push 1
push 1
push 1
push 0x20
push 0x20
push ebx
push esi
push edx
push 8
push str.crater.bmp
call fcn.0042f430
mov cl, byte [0x515bb0]
add esp, 0x28
test cl, cl
mov dword [edi], eax
je 0x4666ad
mov eax, dword [eax + 0x14]
push 0x100
mov ecx, dword [eax + 4]
push ecx
call fcn.004352c0
add esp, 8
add esi, 0x20
add edi, 8
cmp esi, 0x400
jb 0x46666b
add ebp, 4
add ebx, 0x20
cmp ebp, 0x6d7bf0
jb 0x466667
push 0
push 0x4de5e4
push str.Graphics.dat
call fcn.0042ba50
mov ebp, eax
add esp, 0xc
test ebp, ebp
mov dword [esp + 0x24], ebp
jne 0x4666f9
push str.Cannot_open_file
push str.LoadGraphics
call fcn.0042b590
add esp, 8
mov esi, dword [sym.imp.USER32.dll_wsprintfA]
mov byte [esp + 0x28], 0
push 0
lea edx, [esp + 0x94]
push 0
push edx
lea eax, [esp + 0x28]
push ebp
lea ecx, [esp + 0x3c]
push eax
lea edx, [esp + 0x34]
push ecx
lea eax, [esp + 0x6bc]
push edx
lea ecx, [esp + 0x1ac0]
push eax
push ecx
call fcn.004634a0
add esp, 0x24
lea edx, [esp + 0x90]
mov bl, al
push edx
mov byte [esp + 0x17], bl
call fcn.00463130
mov edi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x20]
mov byte [esp + 0x80], al
and edi, 0xff
mov eax, dword [esp + 0x80]
add esp, 4
and eax, 0xff
cmp ecx, 0x23
mov dword [esp + 0x58], edi
mov dword [edi*4 + 0x782770], ecx
mov dword [esp + 0x54], eax
mov dword [edi*4 + 0x7951d0], eax
jb 0x4667a4
lea eax, [esp + 0x1aa4]
push eax
push str.kMaxAnimations_exceeded_for__s
push str.LoadGraphics
call fcn.0042b590
add esp, 0xc
cmp bl, 1
jne 0x466a01
lea eax, [edi + edi*4]
lea ecx, [esp + 0x1aa4]
push ecx
push 0x4dc67c
lea eax, [eax + eax*4]
lea edx, [eax + eax*8]
lea eax, [esp + edx*2 + 0x2544]
push eax
call esi
mov al, byte [0x4eb014]
add esp, 0xc
test al, al
jne 0x4669ec
lea ecx, [esp + 0x6a4]
push 0x2e
push ecx
call fcn.004b19e0
add esp, 8
inc eax
push 0x4e5760
push eax
call fcn.004bcb20
add esp, 8
test eax, eax
jne 0x46681f
mov edx, dword [0x798384]
push eax
push eax
push eax
push eax
lea eax, [esp + 0x6b4]
push edx
push eax
call fcn.0042f1d0
add esp, 0x18
jmp 0x466846
mov ecx, dword [0x798384]
push 1
push 1
push 1
push 0
push 0
push 0
push 0
push ecx
lea edx, [esp + 0x6c4]
push 8
push edx
call fcn.0042f430
add esp, 0x28
mov ebp, eax
mov al, byte [0x515bb0]
test al, al
je 0x466865
mov eax, dword [ebp + 0x14]
push 0x100
mov ecx, dword [eax + 4]
push ecx
call fcn.004352c0
add esp, 8
cmp byte [esp + 0x28], 0x3c
jbe 0x466881
push 0x3c
push edi
push str.numUnitElements___d____kMaxAllowableUnitTypes___d_
push str.Setup.cpp
call fcn.0042b590
add esp, 0x10
mov eax, dword [esp + 0x1c]
xor ebx, ebx
test eax, eax
mov dword [esp + 0x40], ebx
jbe 0x4669d5
mov ecx, dword [esp + 0x54]
xor eax, eax
test ecx, ecx
jbe 0x4669c4
lea esi, [edi*8]
lea edx, [ebx + 1]
sub esi, edi
mov dword [esp + 0x70], edx
lea ecx, [ebx + esi*4]
add esi, ecx
lea ecx, [edi*8]
sub ecx, edi
shl esi, 7
lea ecx, [ecx + ecx*4]
add esi, 0x71aca0
shl ecx, 7
add ecx, 0x71aca0
mov dword [esp + 0x48], ecx
jmp 0x4668de
mov ebx, dword [esp + 0x40]
mov ecx, dword [esp + 0x20]
push str.LoadGraphics:gUnitElements
mov edx, ecx
push 8
imul edx, eax
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x34]
mov edi, edx
push edx
imul edi, ebx
mov dword [esp + 0x6c], edi
lea edi, [eax + 1]
mov eax, ecx
push ecx
imul eax, edi
mov dword [esp + 0x74], eax
mov eax, edx
imul eax, dword [esp + 0x80]
mov dword [esp + 0x78], eax
call fcn.0042ef90
add esp, 0x10
lea ecx, [esp + 0x5c]
mov dword [esi], eax
push 0
push 0
push ecx
push ebp
push 0
push 0
push eax
call fcn.0042fac0
mov eax, dword [ebp + 0x14]
add esp, 0x1c
test eax, eax
je 0x466951
push eax
call fcn.00434970
mov edx, dword [esi]
add esp, 4
mov dword [edx + 0x14], eax
mov eax, dword [esp + 0x48]
test eax, eax
jne 0x466975
lea eax, [esp + 0x6a4]
push eax
push str.Failed_to_create_TImage_for_file__s
push str.Error
call fcn.0042b590
add esp, 0xc
jmp 0x46699d
mov ecx, dword [esi]
push 0
mov eax, dword [ecx]
cdq
sub eax, edx
sar eax, 1
mov dword [ecx + 8], eax
mov ecx, dword [esi]
mov eax, dword [ecx + 4]
cdq
sub eax, edx
sar eax, 1
mov dword [ecx + 0xc], eax
mov ecx, dword [esi]
push ecx
call fcn.00430d90
add esp, 8
mov dword [esi], eax
mov ecx, dword [esp + 0x54]
mov eax, edi
mov edi, dword [esp + 0x48]
add esi, 4
add edi, 0x80
cmp eax, ecx
mov dword [esp + 0x48], edi
jb 0x4668da
mov edi, dword [esp + 0x58]
mov ebx, dword [esp + 0x40]
mov eax, dword [esp + 0x1c]
inc ebx
cmp ebx, eax
mov dword [esp + 0x40], ebx
jb 0x466893
push ebp
call fcn.0042f160
mov bl, byte [esp + 0x17]
mov esi, dword [sym.imp.USER32.dll_wsprintfA]
mov ebp, dword [esp + 0x28]
add esp, 4
mov al, byte [esp + 0x28]
inc al
cmp al, 0x5a
mov byte [esp + 0x28], al
jb 0x466a39
push str.numUnitElements___kMaxAllowableUnitElements
jmp 0x466a2c
test bl, bl
jne 0x466a39
push edi
lea edx, [esp + 0x1aa8]
push 0x22
push edx
push 0x22
lea eax, [esp + 0xa0]
push str.Missing_data_for_element__c_s_c__element__d__in_GRAPHICS.DAT
push eax
call esi
add esp, 0x18
lea ecx, [esp + 0x90]
push ecx
push str.LoadGraphics
call fcn.0042b590
add esp, 8
cmp bl, 1
je 0x466704
push ebp
call fcn.0042bb40
mov eax, dword [esp + 0x2c]
add esp, 4
and eax, 0xff
push 0
push 0x4de5e4
push str.bGraphic.dat
mov dword [esp + 0x64], eax
mov dword [0x795528], eax
call fcn.0042ba50
add esp, 0xc
mov dword [esp + 0x24], eax
test eax, eax
jne 0x466a8b
push str.Cannot_open_file
push str.LoadGraphics
call fcn.0042b590
add esp, 8
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0x21b4]
push 0
lea eax, [esp + 0x1e30]
push edx
push eax
lea edx, [esp + 0x28]
push ecx
lea eax, [esp + 0x3c]
push edx
lea ecx, [esp + 0x34]
push eax
lea edx, [esp + 0x6bc]
push ecx
lea eax, [esp + 0x2394]
push edx
push eax
call fcn.004634a0
mov bl, al
mov eax, dword [esp + 0x40]
add esp, 0x24
cmp eax, 0x20
mov byte [esp + 0x13], bl
jbe 0x466aea
push str.animations___kMaxUnitRotations
push str.LoadGraphics
call fcn.0042b590
add esp, 8
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
and esi, 0xff
cmp bl, 1
mov dword [esi*4 + 0x6e5a60], ecx
jne 0x466e74
lea eax, [esi + esi*4]
lea edx, [esp + 0x2378]
push edx
push 0x4dc67c
lea eax, [eax + eax*4]
lea eax, [eax + eax*8]
lea ecx, [esp + eax*2 + 0xc378]
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
mov al, byte [0x4eb014]
add esp, 0xc
test al, al
jne 0x466e46
lea edx, [esp + 0x1e2c]
push str.NONE
push edx
call fcn.004bcb20
add esp, 8
test eax, eax
je 0x466c17
lea eax, [esp + 0x7b]
lea ecx, [esp + 0x4c]
push eax
lea edx, [esp + 0x38]
push ecx
lea eax, [esp + 0x1e34]
push edx
push eax
call fcn.0042eae0
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x30]
xor edx, edx
add esp, 0x10
div ecx
xor ebp, ebp
test eax, eax
mov dword [esp + 0x34], eax
jbe 0x466c26
mov edi, esi
shl edi, 7
add edi, 0x7907a8
xor ebx, ebx
jmp 0x466ba5
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x2c]
push 1
push 1
push 1
push edx
push ecx
imul ecx, ebp
mov eax, dword [0x798384]
push ebx
push ecx
push eax
lea ecx, [esp + 0x1e4c]
push 8
push ecx
call fcn.0042f430
mov cl, byte [0x515bb0]
add esp, 0x28
test cl, cl
mov dword [edi], eax
je 0x466bee
mov edx, dword [eax + 0x14]
push 0x100
mov eax, dword [edx + 4]
push eax
call fcn.004352c0
add esp, 8
mov ecx, dword [edi]
push ebx
mov dword [ecx + 8], ebx
mov eax, dword [edi]
mov edx, dword [eax + 4]
mov dword [eax + 0xc], edx
mov eax, dword [edi]
push eax
call fcn.00430d90
add esp, 8
mov dword [edi], eax
mov eax, dword [esp + 0x34]
inc ebp
add edi, 4
cmp ebp, eax
jb 0x466ba1
jmp 0x466c26
mov ecx, esi
shl ecx, 7
mov dword [ecx + 0x7907a8], 0
lea edx, [esp + 0x21b4]
push str.NONE
push edx
call fcn.004bcb20
add esp, 8
test eax, eax
je 0x466cc6
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x20]
mov edx, dword [0x798384]
push 1
push 1
push 1
push eax
xor ebx, ebx
push ecx
push ebx
push ebx
push edx
lea eax, [esp + 0x21d4]
push 8
push eax
call fcn.0042f430
mov cl, byte [0x515bb0]
add esp, 0x28
test cl, cl
mov dword [esi*4 + 0x6e5880], eax
je 0x466c95
mov ecx, dword [eax + 0x14]
push 0x100
mov edx, dword [ecx + 4]
push edx
call fcn.004352c0
add esp, 8
mov eax, dword [esi*4 + 0x6e5880]
push ebx
mov dword [eax + 8], ebx
mov eax, dword [esi*4 + 0x6e5880]
mov ecx, dword [eax + 4]
mov dword [eax + 0xc], ecx
mov edx, dword [esi*4 + 0x6e5880]
push edx
call fcn.00430d90
add esp, 8
mov dword [esi*4 + 0x6e5880], eax
jmp 0x466ccf
xor ebx, ebx
mov dword [esi*4 + 0x6e5880], ebx
lea eax, [esp + 0x6a4]
push str.NONE
push eax
call fcn.004bcb20
add esp, 8
test eax, eax
je 0x466e39
lea ecx, [esp + 0x6a4]
push 0x2e
push ecx
call fcn.004b19e0
add esp, 8
inc eax
push 0x4e5760
push eax
call fcn.004bcb20
add esp, 8
test eax, eax
jne 0x466d2e
mov edx, dword [0x798384]
push ebx
push ebx
push ebx
push ebx
lea eax, [esp + 0x6b4]
push edx
push eax
call fcn.0042f1d0
add esp, 0x18
jmp 0x466d51
mov ecx, dword [0x798384]
push 1
push 1
push 1
push ebx
push ebx
push ebx
push ebx
push ecx
lea edx, [esp + 0x6c4]
push 8
push edx
call fcn.0042f430
add esp, 0x28
mov ebp, eax
mov al, byte [0x515bb0]
test al, al
je 0x466d70
mov eax, dword [ebp + 0x14]
push 0x100
mov ecx, dword [eax + 4]
push ecx
call fcn.004352c0
add esp, 8
cmp byte [esp + 0x14], 0x64
jb 0x466d90
mov edx, dword [esp + 0x58]
push 0x64
push edx
push str.numUnitElements___d____kMaxAllowableBuildingTypes___d_
push str.LoadGraphics
call fcn.0042b590
add esp, 0x10
mov ecx, dword [esp + 0x1c]
xor eax, eax
cmp ecx, ebx
jbe 0x466e2e
shl esi, 7
add esi, 0x6e5c40
mov ecx, dword [esp + 0x20]
lea edi, [eax + 1]
mov edx, ecx
push str.LoadGraphics:gBuildingElements
imul edx, eax
mov eax, ecx
push 8
imul eax, edi
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x34]
push eax
push ecx
mov dword [esp + 0x6c], edx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x78], eax
call fcn.0042ef90
add esp, 0x10
lea ecx, [esp + 0x5c]
mov dword [esi], eax
push ebx
push ebx
push ecx
push ebp
push ebx
push ebx
push eax
call fcn.0042fac0
mov eax, dword [ebp + 0x14]
add esp, 0x1c
cmp eax, ebx
je 0x466e07
push eax
call fcn.00434970
mov edx, dword [esi]
add esp, 4
mov dword [edx + 0x14], eax
mov eax, dword [esi]
push ebx
mov ecx, dword [eax + 4]
mov dword [eax + 0xc], ecx
mov edx, dword [esi]
push edx
call fcn.00430d90
mov ecx, dword [esp + 0x24]
mov dword [esi], eax
mov eax, edi
add esp, 8
add esi, 4
cmp eax, ecx
jb 0x466da7
push ebp
call fcn.0042f160
add esp, 4
jmp 0x466e42
shl esi, 7
mov dword [esi + 0x6e5c40], ebx
mov bl, byte [esp + 0x13]
mov al, byte [esp + 0x14]
inc al
cmp al, 0x78
mov byte [esp + 0x14], al
jb 0x466eb0
mov eax, dword [esp + 0x14]
push 0x78
and eax, 0xff
push eax
push str.Too_many_building_elements___Increase_kMaxAllowableBuildingElements__d__d_
push str.Setup.cpp
call fcn.0042b590
add esp, 0x10
jmp 0x466eb0
test bl, bl
jne 0x466eb0
push esi
lea ecx, [esp + 0x237c]
push 0x22
push ecx
push 0x22
lea edx, [esp + 0xa0]
push str.Missing_data_for_element__c_s_c__element__d__in_BGRAPHIC.DAT
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x18
lea eax, [esp + 0x90]
push eax
push str.Error
call fcn.0042b590
add esp, 8
cmp bl, 1
je 0x466a8b
mov ecx, dword [esp + 0x24]
push ecx
call fcn.0042bb40
mov eax, dword [esp + 0x18]
add esp, 4
and eax, 0xff
push 0
push 0x4de5e4
push str.bulgraph.dat
mov dword [esp + 0x7c], eax
mov dword [0x79552c], eax
call fcn.0042ba50
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x466f04
push str.Cannot_open_file
push str.LoadGraphics
call fcn.0042b590
add esp, 8
mov ebp, dword [sym.imp.USER32.dll_wsprintfA]
push 0
push 0
push 0
lea edx, [esp + 0x28]
push edi
lea eax, [esp + 0x3c]
push edx
lea ecx, [esp + 0x34]
push eax
lea edx, [esp + 0x6bc]
push ecx
lea eax, [esp + 0xd9c]
push edx
push eax
call fcn.004634a0
mov bl, al
add esp, 0x24
cmp bl, 1
jne 0x467188
lea ecx, [esp + 0xd80]
push str.DEBRIS
push ecx
call fcn.004b2230
add esp, 8
test eax, eax
je 0x466f89
mov al, byte [0x6d6109]
cmp al, 0x18
jae 0x46703e
xor edx, edx
mov dl, al
mov al, byte [0x795530]
mov byte [edx + 0x6d60f1], al
mov al, byte [0x6d6109]
inc al
mov byte [0x6d6109], al
jmp 0x46703e
lea ecx, [esp + 0xd80]
push str.BARREL
push ecx
call fcn.004b2230
add esp, 8
test eax, eax
je 0x466fb3
mov dl, byte [0x795530]
mov byte [0x6d60ee], dl
jmp 0x46703e
lea eax, [esp + 0xd80]
push str.CRATE
push eax
call fcn.004b2230
add esp, 8
test eax, eax
je 0x466fda
mov cl, byte [0x795530]
mov byte [0x6d60ef], cl
jmp 0x46703e
lea edx, [esp + 0xd80]
push str.SARDDEATH
push edx
call fcn.004b2230
add esp, 8
test eax, eax
je 0x466fff
mov al, byte [0x795530]
mov byte [0x6d60f0], al
jmp 0x46703e
lea ecx, [esp + 0xd80]
push str.SOUND
push ecx
call fcn.004b2230
add esp, 8
test eax, eax
je 0x46703e
cmp dword [esp + 0x1c], 1
je 0x467031
push str.Sonic_tank_bullet_has_one_animation_only
push str.LoadGraphics
call fcn.0042b590
add esp, 8
mov edx, dword [esp + 0x20]
push edx
call fcn.0042ace0
add esp, 4
mov al, byte [0x4eb014]
test al, al
jne 0x467161
lea eax, [esp + 0xd80]
push str.SOUND
push eax
call fcn.004b2230
add esp, 8
test eax, eax
je 0x4670af
mov ecx, dword [0x4eb018]
mov eax, dword [esp + 0x20]
push 0
push ecx
push eax
push eax
call fcn.0042ef90
mov edx, dword [0x795530]
mov ecx, dword [esp + 0x30]
shl edx, 7
shr ecx, 1
mov dword [edx + 0x714b00], eax
mov dword [eax + 8], ecx
mov edx, dword [esp + 0x30]
mov eax, dword [0x795530]
add esp, 0x10
shr edx, 1
shl eax, 7
mov ecx, dword [eax + 0x714b00]
mov dword [ecx + 0xc], edx
jmp 0x467161
mov eax, dword [esp + 0x1c]
xor esi, esi
test eax, eax
jbe 0x467161
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x20]
push 1
push 0
push 1
push edx
push eax
imul eax, esi
push 0
push eax
mov eax, dword [0x798384]
lea ecx, [esp + 0x6c0]
push eax
push 8
push ecx
call fcn.0042f430
mov edx, dword [0x795530]
mov ecx, eax
shl edx, 5
add edx, esi
add esp, 0x28
mov dword [edx*4 + 0x714b00], ecx
mov eax, dword [ecx]
cdq
sub eax, edx
push 0
sar eax, 1
mov dword [ecx + 8], eax
mov eax, dword [0x795530]
shl eax, 5
add eax, esi
mov ecx, dword [eax*4 + 0x714b00]
mov eax, dword [ecx + 4]
cdq
sub eax, edx
sar eax, 1
mov dword [ecx + 0xc], eax
mov ecx, dword [0x795530]
shl ecx, 5
add ecx, esi
mov edx, dword [ecx*4 + 0x714b00]
push edx
call fcn.00430d90
mov ecx, dword [0x795530]
add esp, 8
shl ecx, 5
add ecx, esi
inc esi
mov dword [ecx*4 + 0x714b00], eax
mov eax, dword [esp + 0x1c]
cmp esi, eax
jb 0x4670bd
mov eax, dword [0x795530]
mov edx, dword [esp + 0x1c]
mov dword [eax*4 + 0x795340], edx
inc eax
cmp eax, 0x40
mov dword [0x795530], eax
jl 0x4671ca
push str.gNumBulletElements___kMaxAllowableBulletTypes
push str.LoadGraphics
jmp 0x4671c2
test bl, bl
jne 0x4671ca
mov eax, dword [0x795540]
lea ecx, [esp + 0xd80]
and eax, 0xff
lea edx, [esp + 0x90]
push eax
push 0x22
push ecx
push 0x22
push str.Missing_data_for_element__c_s_c__element__d__in_BULGRAPH.DAT
push edx
call ebp
add esp, 0x18
lea eax, [esp + 0x90]
push eax
push str.Error
call fcn.0042b590
add esp, 8
cmp bl, 1
je 0x466f0a
push edi
call fcn.0042bb40
add esp, 4
push 0
push 0x4de5e4
push str.explgrap.dat
call fcn.0042ba50
mov edi, eax
add esp, 0xc
test edi, edi
mov dword [esp + 0x24], edi
jne 0x46720c
push str.Cannot_open_file
push str.LoadGraphics
call fcn.0042b590
add esp, 8
mov ecx, dword [0x795534]
lea eax, [esp + 0x90]
lea edx, [ecx*4 + 0x6e5750]
lea ecx, [esp + 0x1c]
push edx
push 0
push eax
push edi
lea edx, [esp + 0x3c]
push ecx
lea eax, [esp + 0x34]
push edx
lea ecx, [esp + 0x6bc]
push eax
lea edx, [esp + 0x174]
push ecx
push edx
call fcn.004634a0
add esp, 0x24
mov byte [esp + 0x13], al
lea eax, [esp + 0x90]
push eax
call fcn.00463130
mov bl, al
mov al, byte [esp + 0x17]
add esp, 4
cmp al, 1
jne 0x46778c
lea ecx, [esp + 0x158]
push str.EX_PUFF
push ecx
call fcn.004bcb20
add esp, 8
test eax, eax
jne 0x467298
mov dl, byte [0x795534]
mov byte [0x6d6111], dl
jmp 0x46778c
lea eax, [esp + 0x158]
push str.EX_WHITEN1
push eax
call fcn.004bcb20
add esp, 8
test eax, eax
jne 0x4672c2
mov cl, byte [0x795534]
mov byte [0x6d6112], cl
jmp 0x46778c
lea edx, [esp + 0x158]
push str.EX_SMOKE3
push edx
call fcn.004bcb20
add esp, 8
test eax, eax
jne 0x4672ea
mov al, byte [0x795534]
mov byte [0x6d6113], al
jmp 0x46778c
lea ecx, [esp + 0x158]
push str.EX_FLASH
push ecx
call fcn.004bcb20
add esp, 8
test eax, eax
jne 0x467314
mov dl, byte [0x795534]
mov byte [0x6d6114], dl
jmp 0x46778c
lea eax, [esp + 0x158]
push str.EX_HARV
push eax
call fcn.004bcb20
add esp, 8
test eax, eax
jne 0x46733e
mov cl, byte [0x795534]
mov byte [0x6d6118], cl
jmp 0x46778c
lea edx, [esp + 0x158]
push str.EX_HARVDUST0
push edx
call fcn.004bcb20
add esp, 8
test eax, eax
jne 0x467366
mov al, byte [0x795534]
mov byte [0x6d6119], al
jmp 0x46778c
lea ecx, [esp + 0x158]
push str.EX_HARVDUST1
push ecx
call fcn.004bcb20
add esp, 8
test eax, eax
jne 0x467390
mov dl, byte [0x795534]
mov byte [0x6d611a], dl
jmp 0x46778c
lea eax, [esp + 0x158]
push str.EX_HARVDUST2
push eax
call fcn.004bcb20
add esp, 8
test eax, eax
jne 0x4673ba
mov cl, byte [0x795534]
mov byte [0x6d611b], cl
jmp 0x46778c
lea edx, [esp + 0x158]
push str.EX_HARVDUST3
push edx
call fcn.004bcb20
add esp, 8
test eax, eax
jne 0x4673e2
mov al, byte [0x795534]
mov byte [0x6d611c], al
jmp 0x46778c
lea ecx, [esp + 0x158]
push str.EX_HARVDUST4
push ecx
call fcn.004bcb20
add esp, 8
test eax, eax
jne 0x46740c
mov dl, byte [0x795534]
mov byte [0x6d611d], dl
jmp 0x46778c
lea eax, [esp + 0x158]
push str.EX_HARVDUST5
push eax
call fcn.004bcb20
add esp, 8
test eax, eax
jne 0x467436
mov cl, byte [0x795534]
mov byte [0x6d611e], cl
jmp 0x46778c
lea edx, [esp + 0x158]
push str.EX_HARVDUST6
push edx
call fcn.004bcb20
add esp, 8
test eax, eax
jne 0x46745e
mov al, byte [0x795534]
mov byte [0x6d611f], al
jmp 0x46778c
lea ecx, [esp + 0x158]
push str.EX_HARVDUST7
push ecx
call fcn.004bcb20
add esp, 8
test eax, eax
jne 0x467488
mov dl, byte [0x795534]
mov byte [0x6d6120], dl
jmp 0x46778c
lea eax, [esp + 0x158]
push str.EX_CASH
push eax
call fcn.004bcb20
add esp, 8
test eax, eax
jne 0x4674b2
mov cl, byte [0x795534]
mov byte [0x6d610e], cl
jmp 0x46778c
lea edx, [esp + 0x158]
push str.EX_CrateReveal
push edx
call fcn.004bcb20
add esp, 8
test eax, eax
jne 0x4674da
mov al, byte [0x795534]
mov byte [0x6d610d], al
jmp 0x46778c
lea ecx, [esp + 0x158]
push str.EX_CrateNoMap
push ecx
call fcn.004bcb20
add esp, 8
test eax, eax
jne 0x467504
mov dl, byte [0x795534]
mov byte [0x6d610f], dl
jmp 0x46778c
lea eax, [esp + 0x158]
push str.EX_CrateStealth
push eax
call fcn.004bcb20
add esp, 8
test eax, eax
jne 0x46752e
mov cl, byte [0x795534]
mov byte [0x6d6110], cl
jmp 0x46778c
lea edx, [esp + 0x158]
push str.EX_DHM
push edx
call fcn.004bcb20
add esp, 8
test eax, eax
jne 0x467556
mov al, byte [0x795534]
mov byte [0x6d6115], al
jmp 0x46778c
lea ecx, [esp + 0x158]
push str.EX_DEATHHAND
push ecx
call fcn.004bcb20
add esp, 8
test eax, eax
jne 0x467580
mov dl, byte [0x795534]
mov byte [0x6d6116], dl
jmp 0x46778c
lea eax, [esp + 0x158]
push str.EX_SPICEBLOOM
push eax
call fcn.004bcb20
add esp, 8
test eax, eax
jne 0x4675aa
mov cl, byte [0x795534]
mov byte [0x6d6117], cl
jmp 0x46778c
lea edx, [esp + 0x158]
push str.EX_WORMSN1
push edx
call fcn.004bcb20
add esp, 8
test eax, eax
jne 0x4675d2
mov al, byte [0x795534]
mov byte [0x6d6121], al
jmp 0x46778c
lea ecx, [esp + 0x158]
push str.EX_WORMSN2
push ecx
call fcn.004bcb20
add esp, 8
test eax, eax
jne 0x4675fc
mov dl, byte [0x795534]
mov byte [0x6d6122], dl
jmp 0x46778c
lea eax, [esp + 0x158]
push str.EX_WORMSN3
push eax
call fcn.004bcb20
add esp, 8
test eax, eax
jne 0x467626
mov cl, byte [0x795534]
mov byte [0x6d6123], cl
jmp 0x46778c
lea edx, [esp + 0x158]
push str.EX_WORMSN4
push edx
call fcn.004bcb20
add esp, 8
test eax, eax
jne 0x46764e
mov al, byte [0x795534]
mov byte [0x6d6124], al
jmp 0x46778c
lea ecx, [esp + 0x158]
push str.EX_WORMSN5
push ecx
call fcn.004bcb20
add esp, 8
test eax, eax
jne 0x467678
mov dl, byte [0x795534]
mov byte [0x6d6125], dl
jmp 0x46778c
lea eax, [esp + 0x158]
push str.EX_WORMSN6
push eax
call fcn.004bcb20
add esp, 8
test eax, eax
jne 0x4676a2
mov cl, byte [0x795534]
mov byte [0x6d6126], cl
jmp 0x46778c
lea edx, [esp + 0x158]
push str.EX_THPUFF
push edx
call fcn.004bcb20
add esp, 8
test eax, eax
jne 0x4676ca
mov al, byte [0x795534]
mov byte [0x6d6127], al
jmp 0x46778c
lea ecx, [esp + 0x158]
push str.EX_REF
push ecx
call fcn.004bcb20
add esp, 8
test eax, eax
jne 0x4676f4
mov dl, byte [0x795534]
mov byte [0x6d6128], dl
jmp 0x46778c
lea eax, [esp + 0x158]
push str.EX_DEVSPARK1
push eax
call fcn.004bcb20
add esp, 8
test eax, eax
jne 0x46771b
mov cl, byte [0x795534]
mov byte [0x6d6129], cl
jmp 0x46778c
lea edx, [esp + 0x158]
push str.EX_DEVSPARK2
push edx
call fcn.004bcb20
add esp, 8
test eax, eax
jne 0x467740
mov al, byte [0x795534]
mov byte [0x6d612a], al
jmp 0x46778c
lea ecx, [esp + 0x158]
push str.EX_DEVSPARK3
push ecx
call fcn.004bcb20
add esp, 8
test eax, eax
jne 0x467767
mov dl, byte [0x795534]
mov byte [0x6d612b], dl
jmp 0x46778c
lea eax, [esp + 0x158]
push str.EX_DEVDEATH
push eax
call fcn.004bcb20
add esp, 8
test eax, eax
jne 0x46778c
mov cl, byte [0x795534]
mov byte [0x6d612c], cl
mov al, byte [esp + 0x13]
cmp al, 1
jne 0x467959
mov al, byte [0x4eb014]
test al, al
jne 0x467941
cmp dword [esp + 0x1c], 0x28
jbe 0x4677be
push str.Increase_kMaxExplosionAnimations
push str.LoadGraphics
call fcn.0042b590
add esp, 8
test bl, bl
push 1
push 1
je 0x4677e3
mov edx, dword [0x798384]
push 1
push 0
push 0
push 0
push 0
push edx
lea eax, [esp + 0x6c4]
push 8
push eax
jmp 0x4677fe
mov ecx, dword [0x798384]
push 0
push 0
push 0
push 0
push 0
push ecx
lea edx, [esp + 0x6c4]
push 8
push edx
call fcn.0042f430
mov ebp, eax
mov eax, dword [esp + 0x44]
add esp, 0x28
xor esi, esi
test eax, eax
jbe 0x46977a
mov eax, dword [esp + 0x20]
lea edi, [esi + 1]
mov ecx, eax
mov edx, eax
imul ecx, esi
imul edx, edi
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x2c]
push str.LoadGraphics:gExplosionElements
push 8
push ecx
push eax
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], edx
mov dword [esp + 0x78], ecx
call fcn.0042ef90
mov ecx, dword [0x795534]
add esp, 0x10
lea ecx, [ecx + ecx*4]
push 0
push 0
lea edx, [esi + ecx*8]
lea ecx, [esp + 0x64]
push ecx
push ebp
push 0
push 0
push eax
mov dword [edx*4 + 0x6e2e20], eax
call fcn.0042fac0
mov eax, dword [ebp + 0x14]
add esp, 0x1c
test eax, eax
je 0x4678a0
push eax
call fcn.00434970
mov ecx, dword [0x795534]
add esp, 4
lea edx, [ecx + ecx*4]
lea ecx, [esi + edx*8]
mov edx, dword [ecx*4 + 0x6e2e20]
mov dword [edx + 0x14], eax
mov eax, dword [0x795534]
push 0
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov ecx, dword [ecx*4 + 0x6e2e20]
mov eax, dword [ecx]
cdq
sub eax, edx
sar eax, 1
mov dword [ecx + 8], eax
mov eax, dword [0x795534]
lea edx, [eax + eax*4]
lea eax, [esi + edx*8]
mov ecx, dword [eax*4 + 0x6e2e20]
mov eax, dword [ecx + 4]
cdq
sub eax, edx
sar eax, 1
mov dword [ecx + 0xc], eax
mov eax, dword [0x795534]
lea ecx, [eax + eax*4]
lea edx, [esi + ecx*8]
mov eax, dword [edx*4 + 0x6e2e20]
push eax
call fcn.00430d90
mov ecx, dword [0x795534]
add esp, 8
lea edx, [ecx + ecx*4]
lea edx, [esi + edx*8]
mov esi, edi
mov dword [edx*4 + 0x6e2e20], eax
mov eax, dword [esp + 0x1c]
cmp esi, eax
jb 0x467816
mov edi, dword [esp + 0x24]
cmp ecx, 0x40
jl 0x467932
push str.gNumExplosionElements___kMaxAllowableExplosionTypes
push str.LoadGraphics
call fcn.0042b590
add esp, 8
push ebp
call fcn.0042f160
mov ebp, dword [sym.imp.USER32.dll_wsprintfA]
add esp, 4
mov eax, dword [0x795534]
mov ecx, dword [esp + 0x1c]
mov dword [eax*4 + 0x6d5fd0], ecx
inc eax
mov dword [0x795534], eax
jmp 0x467997
test al, al
jne 0x467997
mov edx, dword [0x795534]
lea eax, [esp + 0x158]
push edx
push 0x22
push eax
push 0x22
lea ecx, [esp + 0xa0]
push str.Missing_data_for_element__c_s_c__element__d__in_EXPLGRAP.DAT
push ecx
call ebp
add esp, 0x18
lea edx, [esp + 0x90]
push edx
push str.Error
call fcn.0042b590
add esp, 8
cmp byte [esp + 0x13], 1
je 0x46720c
push edi
call fcn.0042bb40
add esp, 4
mov byte [esp + 0x28], 0
push 0
push 0x4de5e4
push str.ExplAtrb.dat
call fcn.0042ba50
mov ebp, eax
add esp, 0xc
test ebp, ebp
jne 0x4679dc
push str.Cannot_open_file
push str.LoadGraphics
call fcn.0042b590
add esp, 8
mov esi, dword [esp + 0x28]
push ebp
and esi, 0xff
lea eax, [esp + 0x1c6c]
lea edi, [esi*8 + 0x781e58]
push edi
push eax
call fcn.00465d50
mov bl, al
add esp, 0xc
cmp bl, 1
jne 0x467a9a
lea eax, [esi + esi*4]
lea ecx, [esp + 0x1c68]
push ecx
push 0x4dc67c
lea edx, [eax + eax*4]
lea eax, [edx*2 + 0x7943a8]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea ecx, [esp + 0x1c68]
push 0x32
push 0x40
push 0x7943a8
push ecx
call fcn.00452440
add esp, 0x10
cmp al, 0x40
mov byte [edi], al
jne 0x467a80
lea edx, [esp + 0x1c68]
lea eax, [esp + 0x90]
push edx
push str.Explosion_not_found___s_
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea ecx, [esp + 0x90]
push ecx
push str.Setup.CPP
call fcn.0042b590
add esp, 8
mov al, byte [esp + 0x28]
inc al
cmp al, 0x40
mov byte [esp + 0x28], al
jb 0x467ad7
push str.numExplosions___kMaxAllowableExplosionTypes
push str.LoadGraphics
jmp 0x467acf
test bl, bl
jne 0x467ad7
push 1
lea edx, [esp + 0xbc0]
push 0x22
push edx
push 0x22
lea eax, [esp + 0xa0]
push str.Explosion__c_s_c___d__n
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x18
lea ecx, [esp + 0x90]
push ecx
push str.Missing_Data
call fcn.0042b590
add esp, 8
cmp bl, 1
je 0x4679dc
push ebp
call fcn.0042bb40
mov dl, byte [esp + 0x2c]
add esp, 4
mov byte [0x795544], dl
call fcn.0046b0f0
call fcn.0046b690
push 0
push 0x4de5e4
push str.BullAtrb.dat
mov byte [esp + 0x20], 0
call fcn.0042ba50
add esp, 0xc
mov dword [esp + 0x24], eax
test eax, eax
jne 0x467b30
push str.Cannot_open_file
push str.LoadGraphics
call fcn.0042b590
add esp, 8
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x24]
and esi, 0xff
push eax
lea eax, [esp + 0x86c]
lea ecx, [esi*8]
sub ecx, esi
lea edx, [ecx*4 + 0x782068]
push edx
push eax
call fcn.00465780
mov bl, al
add esp, 0xc
cmp bl, 1
mov byte [esp + 0x13], bl
jne 0x467cc3
lea ecx, [esp + 0x868]
push str.SpiceExpl
push ecx
call fcn.004bcb20
add esp, 8
test eax, eax
jne 0x467b94
mov dl, byte [esp + 0x14]
mov byte [0x6d610a], dl
jmp 0x467bdb
lea eax, [esp + 0x868]
push str.DEVASTATOR
push eax
call fcn.004bcb20
add esp, 8
test eax, eax
jne 0x467bb9
mov cl, byte [esp + 0x14]
mov byte [0x6d610b], cl
jmp 0x467bdb
lea edx, [esp + 0x868]
push 0x4e5178
push edx
call fcn.004bcb20
add esp, 8
test eax, eax
jne 0x467bdb
mov al, byte [esp + 0x14]
mov byte [0x6d610c], al
lea eax, [esi + esi*4]
lea ecx, [esp + 0x868]
push ecx
push 0x4dc67c
lea edx, [eax + eax*4]
lea eax, [edx*2 + 0x6db390]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
mov al, byte [esp + 0x20]
add esp, 0xc
inc al
cmp al, 0x40
mov byte [esp + 0x14], al
jb 0x467c1f
push str.numBullets___kMaxAllowableBulletTypes
push str.LoadGraphics
call fcn.0042b590
add esp, 8
mov edi, dword [esp + 0x14]
xor edx, edx
and edi, 0xff
mov byte [esp + 0x19], 0
jbe 0x467c8e
mov ebp, 0x6db390
mov esi, ebp
lea eax, [esp + 0x868]
mov bl, byte [eax]
mov cl, bl
cmp bl, byte [esi]
jne 0x467c64
test cl, cl
je 0x467c60
mov bl, byte [eax + 1]
mov cl, bl
cmp bl, byte [esi + 1]
jne 0x467c64
add eax, 2
add esi, 2
test cl, cl
jne 0x467c40
xor eax, eax
jmp 0x467c69
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x467c82
lea ecx, [edi*8]
mov byte [esp + 0x19], 1
sub ecx, edi
mov byte [ecx*4 + 0x78205c], dl
inc edx
add ebp, 0x32
cmp edx, edi
jb 0x467c37
mov bl, byte [esp + 0x13]
mov al, byte [esp + 0x19]
test al, al
jne 0x467d00
lea edx, [esp + 0x868]
lea eax, [esp + 0x90]
push edx
push str.Bullet_not_found___s_
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea ecx, [esp + 0x90]
push ecx
push str.Setup.CPP
jmp 0x467cf8
test bl, bl
jne 0x467d00
push 1
lea edx, [esp + 0xbc0]
push 0x22
push edx
push 0x22
lea eax, [esp + 0xa0]
push str.Building__c_s_c___d__n
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x18
lea ecx, [esp + 0x90]
push ecx
push str.Missing_Data
call fcn.0042b590
add esp, 8
cmp bl, 1
je 0x467b30
mov edx, dword [esp + 0x24]
push edx
call fcn.0042bb40
mov al, byte [esp + 0x18]
add esp, 4
mov byte [0x795540], al
mov byte [0x6d60d9], 0xff
push 0
push 0x4de5e4
push str.BuilAtrb.dat
mov byte [0x6d60da], 0xff
mov byte [0x6d60db], 0xff
mov byte [0x6d60dc], 0xff
mov byte [0x6d60dd], 0xff
mov byte [0x6d60de], 0xff
mov byte [0x6d60df], 0xff
mov byte [0x6d60e2], 0xff
mov byte [0x6d60e3], 0xff
mov byte [0x6d60e4], 0xff
mov byte [0x6d60e0], 0xff
mov byte [0x6d60e1], 0xff
mov byte [0x6d60e5], 0xff
mov byte [esp + 0x34], 0
mov byte [0x6e5850], 0
call fcn.0042ba50
add esp, 0xc
mov dword [esp + 0x24], eax
test eax, eax
jne 0x467db4
push str.Cannot_open_file
push str.LoadGraphics
call fcn.0042b590
add esp, 8
mov ebp, dword [sym.imp.USER32.dll_wsprintfA]
mov esi, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
and esi, 0xff
push edx
mov ecx, esi
lea edx, [esp + 0x320]
shl ecx, 5
add ecx, esi
lea edi, [esi + ecx*2]
lea ecx, [esp + 0x1494]
shl edi, 2
lea eax, [edi + 0x6dc540]
push eax
push ecx
lea eax, [esp + 0xbc8]
push edx
push eax
call fcn.00464960
mov cl, byte [0x6e5850]
add esp, 0x14
lea edx, [esp + 0x31c]
mov bl, al
push 0x32
push ecx
push 0x787e08
push edx
call fcn.00452440
mov cl, byte [0x6e5850]
add esp, 0x10
cmp al, cl
mov byte [edi + 0x6dc5c8], al
jne 0x46804c
lea eax, [esp + 0x31c]
push str.BARRACKS
push eax
call fcn.004b2230
add esp, 8
test eax, eax
je 0x467e56
mov cl, byte [0x6e5850]
mov byte [0x6d60d9], cl
lea edx, [esp + 0x31c]
push 0x4e4cbc
push edx
call fcn.004b2230
add esp, 8
test eax, eax
je 0x467e79
mov al, byte [0x6e5850]
mov byte [0x6d60da], al
lea ecx, [esp + 0x31c]
push str.LIGHT_FACTORY
push ecx
call fcn.004b2230
add esp, 8
test eax, eax
je 0x467e9e
mov dl, byte [0x6e5850]
mov byte [0x6d60db], dl
lea eax, [esp + 0x31c]
push str.HEAVY_FACTORY
push eax
call fcn.004b2230
add esp, 8
test eax, eax
je 0x467ec3
mov cl, byte [0x6e5850]
mov byte [0x6d60dc], cl
lea edx, [esp + 0x31c]
push str.HIGH_TECH
push edx
call fcn.004b2230
add esp, 8
test eax, eax
je 0x467ee6
mov al, byte [0x6e5850]
mov byte [0x6d60dd], al
lea ecx, [esp + 0x31c]
push str.AT_HIGH_TECH
push ecx
call fcn.004b2230
add esp, 8
test eax, eax
je 0x467f0b
mov dl, byte [0x6e5850]
mov byte [0x6d60de], dl
lea eax, [esp + 0x31c]
push str.REFINERY
push eax
call fcn.004b2230
add esp, 8
test eax, eax
je 0x467f30
mov cl, byte [0x6e5850]
mov byte [0x6d60df], cl
lea edx, [esp + 0x31c]
push str.BARREL
push edx
call fcn.004b2230
add esp, 8
test eax, eax
je 0x467f53
mov al, byte [0x6e5850]
mov byte [0x6d60e0], al
lea ecx, [esp + 0x31c]
push str.SCENERY
push ecx
call fcn.004b2230
add esp, 8
test eax, eax
je 0x467f78
mov dl, byte [0x6e5850]
mov byte [0x6d60e1], dl
lea eax, [esp + 0x31c]
push str.ATREIDES_PALACE
push eax
call fcn.004b2230
add esp, 8
test eax, eax
je 0x467f9d
mov cl, byte [0x6e5850]
mov byte [0x6d60e2], cl
lea edx, [esp + 0x31c]
push str.HARKONNEN_PALACE
push edx
call fcn.004b2230
add esp, 8
test eax, eax
je 0x467fc0
mov al, byte [0x6e5850]
mov byte [0x6d60e3], al
lea ecx, [esp + 0x31c]
push str.ORDOS_PALACE
push ecx
call fcn.004b2230
add esp, 8
test eax, eax
je 0x467fe5
mov dl, byte [0x6e5850]
mov byte [0x6d60e4], dl
lea eax, [esp + 0x31c]
push str.CONCRETE
push eax
call fcn.004b2230
add esp, 8
test eax, eax
je 0x468014
mov cl, byte [0x6e5850]
mov dl, byte [esp + 0x28]
mov byte [0x6d60e5], cl
mov byte [0x6d612d], dl
mov eax, dword [0x6e5850]
mov cl, byte [0x6e5850]
and eax, 0xff
inc cl
mov byte [0x6e5850], cl
lea ecx, [esp + 0x31c]
lea eax, [eax + eax*4]
push ecx
push 0x4dc67c
lea eax, [eax + eax*4]
lea eax, [eax*2 + 0x787e08]
push eax
call ebp
add esp, 0xc
cmp bl, 1
jne 0x46809f
lea esi, [esi + esi*4]
lea edi, [esp + 0xbbc]
or ecx, 0xffffffff
lea eax, [esi + esi*4]
lea edx, [eax + eax*8]
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [edx*2 + 0x6f9908]
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov al, byte [esp + 0x28]
and ecx, 3
inc al
cmp al, 0x64
mov byte [esp + 0x28], al
rep movsb byte es:[edi], byte [esi]
jb 0x4680d8
push str.numBuildings___kMaxAllowableBuildingTypes
push str.LoadGraphics
jmp 0x4680d0
test bl, bl
jne 0x4680d8
inc esi
lea ecx, [esp + 0xbbc]
push esi
push 0x22
push ecx
push 0x22
lea edx, [esp + 0xa0]
push str.Building__c_s_c___d__n
push edx
call ebp
add esp, 0x18
lea eax, [esp + 0x90]
push eax
push str.Missing_Data
call fcn.0042b590
add esp, 8
cmp bl, 1
je 0x467dba
mov ecx, dword [esp + 0x24]
push ecx
call fcn.0042bb40
mov dl, byte [esp + 0x2c]
add esp, 4
mov byte [0x79553c], dl
mov byte [esp + 0x14], 0
push 0
push 0x4de5e4
push str.UnitAtrb.dat
mov byte [0x6d9b50], 0
call fcn.0042ba50
add esp, 0xc
mov dword [esp + 0x24], eax
test eax, eax
jne 0x468132
push str.Cannot_open_file
push str.LoadGraphics
call fcn.0042b590
add esp, 8
mov ebp, dword [esp + 0x14]
mov al, byte [esp + 0x14]
mov ebx, dword [sym.imp.USER32.dll_wsprintfA]
cmp al, 0x3c
jb 0x468156
push str.numUnits___kMaxAllowableUnitTypes
push str.LoadGraphics
call fcn.0042b590
add esp, 8
mov edi, ebp
mov eax, dword [esp + 0x24]
and edi, 0xff
push eax
mov esi, edi
lea edx, [esp + 0x1494]
shl esi, 8
lea eax, [esp + 0xbc0]
lea ecx, [esi + 0x77e250]
push ecx
push edx
lea ecx, [esp + 0x328]
push eax
lea edx, [esp + 0x4f0]
push ecx
push edx
call fcn.00463990
add esp, 0x18
mov byte [esp + 0x13], al
mov al, byte [0x6d9b50]
lea ecx, [esp + 0x31c]
push 0x32
push eax
push 0x6da7d8
push ecx
call fcn.00452440
mov cl, byte [0x6d9b50]
add esp, 0x10
cmp al, cl
mov byte [esi + 0x77e251], al
jne 0x468224
lea edx, [esp + 0x31c]
push str.CARRYALL
push edx
call fcn.004b2230
add esp, 8
test eax, eax
je 0x4681ec
mov al, byte [esi + 0x77e251]
mov byte [0x6d60d8], al
mov eax, dword [0x6d9b50]
lea edx, [esp + 0x31c]
and eax, 0xff
push edx
push 0x4dc67c
lea eax, [eax + eax*4]
lea ecx, [eax + eax*4]
lea eax, [ecx*2 + 0x6da7d8]
mov cl, byte [0x6d9b50]
inc cl
push eax
mov byte [0x6d9b50], cl
call ebx
add esp, 0xc
mov al, byte [esp + 0x13]
cmp al, 1
jne 0x4683c2
mov cl, byte [esp + 0x14]
lea eax, [edi + edi*4]
inc cl
lea eax, [eax + eax*4]
mov byte [esp + 0x14], cl
lea ecx, [esp + 0x4e0]
lea eax, [eax + eax*8]
push ecx
push 0x4dc67c
lea eax, [eax*2 + 0x7891b0]
push eax
call ebx
mov al, byte [esp + 0x20]
add esp, 0xc
cmp al, 0x3c
jb 0x468277
push str.Check_UNITATRB.DAT
push str.Too_many_units
call fcn.0042b590
add esp, 8
mov dl, byte [0x6e5850]
push 0x32
push edx
lea eax, [esp + 0xbc4]
push 0x787e08
push eax
xor bl, bl
call fcn.00452440
mov ebp, dword [esp + 0x24]
mov ecx, dword [0x6e5850]
mov esi, ebp
and eax, 0xff
and esi, 0xff
and ecx, 0xff
shl esi, 8
add esp, 0x10
cmp eax, ecx
mov dword [esi + 0x77e178], eax
je 0x4682c3
mov bl, 1
lea edx, [esp + 0xbbc]
push str.NONE
push edx
call fcn.004bcb20
add esp, 8
test eax, eax
jne 0x4682e8
mov dword [esi + 0x77e178], 0xffffffff
mov bl, 1
test bl, bl
jne 0x468327
lea eax, [esp + 0x4e0]
lea ecx, [esp + 0xbbc]
push eax
push ecx
lea edx, [esp + 0x98]
push str.Building_dependency__1__not_found___s__for_unit__s
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
lea eax, [esp + 0x90]
push eax
push str.Setup.CPP
call fcn.0042b590
add esp, 8
mov cl, byte [0x6e5850]
push 0x32
push ecx
lea edx, [esp + 0x1498]
push 0x787e08
push edx
xor bl, bl
call fcn.00452440
mov ecx, dword [0x6e5850]
and eax, 0xff
and ecx, 0xff
add esp, 0x10
cmp eax, ecx
mov dword [esi + 0x77e180], eax
je 0x468364
mov bl, 1
lea edx, [esp + 0x1490]
push str.NONE
push edx
call fcn.004bcb20
add esp, 8
test eax, eax
jne 0x468389
mov dword [esi + 0x77e180], 0xffffffff
mov bl, 1
test bl, bl
jne 0x4683fb
lea eax, [esp + 0x4e0]
lea ecx, [esp + 0x1490]
push eax
push ecx
lea edx, [esp + 0x98]
push str.Building_dependency__2__not_found___s__for_unit__s
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
lea eax, [esp + 0x90]
push eax
push str.Setup.CPP
jmp 0x4683f3
test al, al
jne 0x4683fb
inc edi
lea ecx, [esp + 0x4e0]
push edi
push 0x22
push ecx
push 0x22
lea edx, [esp + 0xa3c]
push str.Unit__c_s_c___d__n
push edx
call ebx
add esp, 0x18
lea eax, [esp + 0xa2c]
push eax
push str.Missing_Data
call fcn.0042b590
add esp, 8
cmp byte [esp + 0x13], 1
je 0x468136
mov ecx, dword [esp + 0x24]
push ecx
call fcn.0042bb40
mov dl, byte [esp + 0x18]
mov ecx, ebp
add esp, 4
and ecx, 0xff
mov byte [0x795538], dl
mov dword [esp + 0x40], ecx
jbe 0x468442
mov edx, ecx
xor eax, eax
lea edi, [esp + 0xa2c]
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
push 0
push 0x4de5e4
push str.LinkText.dat
call fcn.0042ba50
add esp, 0xc
mov dword [esp + 0x24], eax
test eax, eax
jne 0x468470
push str.Cannot_open_file
push str.LoadGraphics
call fcn.0042b590
add esp, 8
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0x33]
push eax
lea edx, [esp + 0x36]
push ecx
lea eax, [esp + 0x74]
push edx
lea ecx, [esp + 0x1824]
push eax
lea edx, [esp + 0x4f]
push ecx
lea eax, [esp + 0x64]
push edx
lea ecx, [esp + 0x166c]
push eax
lea edx, [esp + 0xf60]
push ecx
lea eax, [esp + 0x888]
push edx
lea ecx, [esp + 0x2014]
push eax
lea edx, [esp + 0x1130]
push ecx
lea eax, [esp + 0x12f8]
push edx
lea ecx, [esp + 0x510]
push eax
push ecx
call fcn.004636b0
add esp, 0x38
mov byte [esp + 0x13], al
test al, al
je 0x4690d7
mov edx, dword [esp + 0x74]
push 0x1c2
inc edx
push 0x3c
mov dword [esp + 0x7c], edx
lea edx, [esp + 0x4e8]
push 0x7891b0
push edx
mov byte [esp + 0x29], 0
xor bl, bl
call fcn.00452440
and eax, 0xff
add esp, 0x10
cmp eax, 0x3c
mov dword [esp + 0x14], eax
je 0x468521
mov byte [esp + 0x19], 1
mov al, byte [esp + 0x19]
test al, al
jne 0x468584
push 0x1c2
push 0x64
lea eax, [esp + 0x4e8]
push 0x6f9908
push eax
call fcn.00452440
and eax, 0xff
add esp, 0x10
cmp eax, 0x64
mov dword [esp + 0x14], eax
je 0x468555
mov bl, 1
mov al, byte [esp + 0x19]
test al, al
jne 0x468584
test bl, bl
jne 0x468584
mov ecx, dword [esp + 0x74]
lea edx, [esp + 0x4e0]
push ecx
push 0x22
push edx
push 0x22
push str.Couldnt_identify_unit_name__c_s_c__unit__d__n
push str.Identification
call fcn.0042b590
add esp, 0x18
mov eax, dword [esp + 0x14]
mov byte [esp + 0x1b], 0
mov byte [esp + 0x1a], 0
mov byte [esp + eax + 0xa2c], 1
mov al, byte [esp + 0x19]
test al, al
je 0x46869d
mov ebx, dword [esp + 0x58]
xor ebp, ebp
test ebx, ebx
jbe 0x46878f
lea edi, [esp + 0x253c]
lea esi, [esp + 0x12cc]
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4685e8
test cl, cl
je 0x4685e4
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4685e8
add eax, 2
add esi, 2
test cl, cl
jne 0x4685c4
xor eax, eax
jmp 0x4685ed
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4685fc
mov byte [esp + 0x1b], 1
mov dword [esp + 0x38], ebp
jmp 0x468622
lea eax, [esp + 0x12cc]
push str.NONE
push eax
call fcn.004bcb20
add esp, 8
test eax, eax
jne 0x468622
mov byte [esp + 0x1b], 1
mov dword [esp + 0x38], 0xffffffff
lea esi, [esp + 0x1108]
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x46864f
test cl, cl
je 0x46864b
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x46864f
add eax, 2
add esi, 2
test cl, cl
jne 0x46862b
xor eax, eax
jmp 0x468654
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x468663
mov byte [esp + 0x1a], 1
mov dword [esp + 0x44], ebp
jmp 0x468689
lea eax, [esp + 0x1108]
push str.NONE
push eax
call fcn.004bcb20
add esp, 8
test eax, eax
jne 0x468689
mov byte [esp + 0x1a], 1
mov dword [esp + 0x44], 0xffffffff
inc ebp
add edi, 0x1c2
cmp ebp, ebx
jb 0x4685bb
jmp 0x46878f
mov ebx, dword [esp + 0x70]
xor ebp, ebp
test ebx, ebx
jbe 0x46878f
lea edi, [esp + 0xc370]
lea esi, [esp + 0x12cc]
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4686df
test cl, cl
je 0x4686db
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4686df
add eax, 2
add esi, 2
test cl, cl
jne 0x4686bb
xor eax, eax
jmp 0x4686e4
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4686f3
mov byte [esp + 0x1b], 1
mov dword [esp + 0x38], ebp
jmp 0x468719
lea eax, [esp + 0x12cc]
push str.NONE
push eax
call fcn.004bcb20
add esp, 8
test eax, eax
jne 0x468719
mov byte [esp + 0x1b], 1
mov dword [esp + 0x38], 0xffffffff
lea esi, [esp + 0x1108]
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x468746
test cl, cl
je 0x468742
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x468746
add eax, 2
add esi, 2
test cl, cl
jne 0x468722
xor eax, eax
jmp 0x46874b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x46875a
mov byte [esp + 0x1a], 1
mov dword [esp + 0x44], ebp
jmp 0x468780
lea eax, [esp + 0x1108]
push str.NONE
push eax
call fcn.004bcb20
add esp, 8
test eax, eax
jne 0x468780
mov byte [esp + 0x1a], 1
mov dword [esp + 0x44], 0xffffffff
inc ebp
add edi, 0x1c2
cmp ebp, ebx
jb 0x4686b2
mov al, byte [esp + 0x1b]
test al, al
jne 0x4687df
mov ecx, dword [esp + 0x40]
lea edx, [esp + 0x4e0]
push ecx
push 0x22
push edx
push 0x22
lea eax, [esp + 0x12dc]
push 0x22
push eax
push 0x22
lea ecx, [esp + 0x19f8]
push str.Couldnt_identify_base_name__c_s_c_in_unit__c_s_c__unit__d__n
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x24
lea edx, [esp + 0x19dc]
push edx
push str.Identification
call fcn.0042b590
add esp, 8
mov al, byte [esp + 0x1a]
test al, al
jne 0x46882f
mov eax, dword [esp + 0x40]
lea ecx, [esp + 0x4e0]
push eax
push 0x22
push ecx
push 0x22
lea edx, [esp + 0x1118]
push 0x22
push edx
push 0x22
lea eax, [esp + 0xb10]
push str.Couldnt_identify_turret_name__c_s_c_in_unit__c_s_c__unit__d__n
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x24
lea ecx, [esp + 0xaf4]
push ecx
push str.Identification
call fcn.0042b590
add esp, 8
mov al, byte [esp + 0x19]
test al, al
mov eax, dword [esp + 0x14]
je 0x468b16
cmp eax, 0x3c
jl 0x468856
push str.unitType___kMaxAllowableUnitTypes
push str.LoadGraphics
call fcn.0042b590
add esp, 8
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x44]
lea edx, [esp + 0x4e0]
shl ebp, 8
push str.FRIGATE
push edx
mov dword [ebp + 0x77e264], edi
mov dword [ebp + 0x77e268], esi
call fcn.004b2230
mov ebx, dword [esp + 0x1c]
add esp, 8
test eax, eax
je 0x468894
mov byte [0x6d60e6], bl
lea eax, [esp + 0x4e0]
push 0x4e4bc4
push eax
call fcn.004b2230
add esp, 8
test eax, eax
je 0x4688b3
mov byte [0x6d60e7], bl
lea ecx, [esp + 0x4e0]
push str.CARRYALL
push ecx
call fcn.004b2230
add esp, 8
test eax, eax
je 0x4688d2
mov byte [0x6d60e9], bl
lea edx, [esp + 0x4e0]
push str.HARVESTER
push edx
call fcn.004b2230
add esp, 8
test eax, eax
je 0x4688f1
mov byte [0x6d60e8], bl
lea eax, [esp + 0x4e0]
push str.ORNITHOPTER
push eax
call fcn.004b2230
add esp, 8
test eax, eax
je 0x468910
mov byte [0x6d60ea], bl
lea ecx, [esp + 0x4e0]
push str.DEATH_HAND
push ecx
call fcn.004b2230
add esp, 8
test eax, eax
je 0x46892f
mov byte [0x6d60eb], bl
lea edx, [esp + 0x4e0]
push str.SABOTEUR
push edx
call fcn.004b2230
add esp, 8
test eax, eax
je 0x46894e
mov byte [0x6d60ec], bl
lea eax, [esp + 0x4e0]
push str.FREMEN
push eax
call fcn.004b2230
add esp, 8
test eax, eax
je 0x46896d
mov byte [0x6d60ed], bl
mov al, byte [0x4eb014]
test al, al
jne 0x4689c6
lea ecx, [esp + 0x1ff0]
push str.NONE
push ecx
call fcn.004bcb20
add esp, 8
test eax, eax
je 0x4689c6
mov edx, dword [0x4e41f4]
mov eax, dword [str.___P_n]
mov ecx, dword [0x798384]
push 1
push 0
push 1
push edx
push eax
push 0
push 0
push ecx
lea edx, [esp + 0x2010]
push 8
push edx
call fcn.0042f430
add esp, 0x28
mov dword [ebx*4 + 0x6d9260], eax
test edi, edi
jl 0x468a3b
test esi, esi
jl 0x4689fa
mov eax, dword [edi*4 + 0x7951d0]
mov ecx, dword [esi*4 + 0x7951d0]
cmp eax, ecx
je 0x4689fa
lea ecx, [esp + 0x4e0]
push ecx
push str.Different_rotations_for_base_and_turret_for_unit__s
push str.SETUP
call fcn.0042b590
add esp, 0xc
mov edx, dword [esp + 0x38]
mov eax, 0x20
xor edi, edi
mov esi, dword [edx*4 + 0x7951d0]
cdq
lea ecx, [esi + esi]
idiv ecx
mov byte [esp + 0x7c], al
mov ecx, dword [esp + 0x7c]
and ecx, 0xff
imul ecx, esi
mov eax, ecx
xor edx, edx
shr eax, 5
div esi
inc edi
add ecx, esi
cmp edi, 0x20
mov byte [edi + ebp + 0x77e28b], dl
jb 0x468a23
lea edx, [esp + 0x868]
push str.NONE
push edx
call fcn.004bcb20
add esp, 8
test eax, eax
jne 0x468a59
or bl, 0xff
jmp 0x468a9b
mov al, byte [0x795540]
push 0x32
push eax
lea ecx, [esp + 0x870]
push 0x6db390
push ecx
call fcn.00452440
mov bl, al
mov al, byte [0x795540]
add esp, 0x10
cmp bl, al
jne 0x468a9b
lea edx, [esp + 0x868]
push edx
push str.Cant_find__s_in_bulletList
push str.LoadGraphics
call fcn.0042b590
add esp, 0xc
lea eax, [esp + 0xf44]
push str.NONE
push eax
mov byte [ebp + 0x77e25c], bl
call fcn.004bcb20
add esp, 8
test eax, eax
jne 0x468ac8
or bl, 0xff
mov byte [ebp + 0x77e25d], bl
jmp 0x4690d7
mov cl, byte [0x795540]
push 0x32
push ecx
lea edx, [esp + 0xf4c]
push 0x6db390
push edx
call fcn.00452440
mov bl, al
mov al, byte [0x795540]
add esp, 0x10
cmp bl, al
jne 0x468b0b
lea eax, [esp + 0xf44]
push eax
push str.Cant_find__s_in_bulletList
push str.LoadGraphics
call fcn.0042b590
add esp, 0xc
mov byte [ebp + 0x77e25d], bl
jmp 0x4690d7
test eax, eax
jl 0x468b1f
cmp eax, 0x64
jl 0x468b31
push str.unitType___kMaxAllowableBuildingTypes
push str.LoadGraphics
call fcn.0042b590
add esp, 8
mov ebp, dword [esp + 0x14]
mov dl, byte [esp + 0x3f]
mov ecx, ebp
mov eax, dword [esp + 0x38]
shl ecx, 5
add ecx, ebp
mov esi, dword [esp + 0x44]
lea ebp, [ebp + ecx*2]
shl ebp, 2
mov byte [ebp + 0x6dc5c9], dl
mov dword [ebp + 0x6dc554], eax
mov al, byte [0x4eb014]
mov dword [ebp + 0x6dc558], esi
test al, al
jne 0x468ba5
mov ecx, dword [0x4e41f4]
mov edx, dword [str.___P_n]
mov eax, dword [0x798384]
push 1
push 0
push 1
push ecx
push edx
push 0
push 0
push eax
lea ecx, [esp + 0x2010]
push 8
push ecx
call fcn.0042f430
mov edx, dword [esp + 0x3c]
add esp, 0x28
mov dword [edx*4 + 0x787c78], eax
test esi, esi
jl 0x468bc8
mov esi, dword [esi*4 + 0x6e5a60]
xor eax, eax
xor ecx, ecx
mov edx, ecx
add ecx, esi
shr edx, 5
mov byte [eax + ebp + 0x6dc5a4], dl
inc eax
cmp eax, 0x20
jb 0x468bb4
lea eax, [esp + 0x868]
push str.NONE
push eax
call fcn.004bcb20
add esp, 8
test eax, eax
jne 0x468be6
or bl, 0xff
jmp 0x468c29
mov cl, byte [0x795540]
push 0x32
push ecx
lea edx, [esp + 0x870]
push 0x6db390
push edx
call fcn.00452440
mov bl, al
mov al, byte [0x795540]
add esp, 0x10
cmp bl, al
jne 0x468c29
lea eax, [esp + 0x868]
push eax
push str.Cant_find__s_in_bulletList
push str.LoadGraphics
call fcn.0042b590
add esp, 0xc
lea ecx, [esp + 0xf44]
push str.NONE
push ecx
mov byte [ebp + 0x6dc54c], bl
call fcn.004bcb20
add esp, 8
test eax, eax
jne 0x468c4d
or bl, 0xff
jmp 0x468c90
mov dl, byte [0x795540]
push 0x32
push edx
lea eax, [esp + 0xf4c]
push 0x6db390
push eax
call fcn.00452440
mov bl, al
mov al, byte [0x795540]
add esp, 0x10
cmp bl, al
jne 0x468c90
lea ecx, [esp + 0xf44]
push ecx
push str.Cant_find__s_in_bulletList
push str.LoadGraphics
call fcn.0042b590
add esp, 0xc
lea edx, [esp + 0x1654]
push str.NONE
push edx
mov byte [ebp + 0x6dc54d], bl
call fcn.004bcb20
add esp, 8
test eax, eax
jne 0x468cbe
mov ebx, dword [esp + 0x14]
mov byte [ebx + 0x714a98], al
jmp 0x468e99
mov eax, dword [esp + 0x14]
mov cl, byte [esp + 0x50]
mov dl, byte [0x79553c]
mov byte [ebp + 0x6dc5ca], al
mov byte [eax + 0x714a98], cl
push 0x1c2
push edx
lea eax, [esp + 0x165c]
push 0x6f9908
push eax
call fcn.00452440
mov cl, byte [0x79553c]
add esp, 0x10
cmp al, cl
je 0x468d08
mov byte [ebp + 0x6dc5ca], al
jmp 0x468e95
mov al, byte [esp + 0x50]
test al, al
je 0x468e95
cmp al, 0x2a
jbe 0x468d2a
push str.kMaxBuildingFrames_exceeded
push str.LoadGraphics
call fcn.0042b590
add esp, 8
mov al, byte [0x4eb014]
test al, al
jne 0x468e95
lea ecx, [esp + 0x54]
lea edx, [esp + 0x4c]
push ecx
lea eax, [esp + 0x38]
push edx
lea ecx, [esp + 0x165c]
push eax
push ecx
call fcn.0042eae0
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x60]
cdq
and ecx, 0xff
add esp, 0x10
idiv ecx
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x54]
push 1
push 1
push 1
push 0
push 0
push 0
mov dword [esp + 0x44], edx
push 0
and ecx, 0xff
lea edx, [esp + 0x1670]
mov dword [esp + 0x3c], eax
mov eax, dword [0x798384]
push eax
push ecx
push edx
call fcn.0042f430
mov ebx, eax
mov al, byte [0x515bb0]
add esp, 0x28
test al, al
je 0x468dc1
mov eax, dword [ebx + 0x14]
push 0x100
mov ecx, dword [eax + 4]
push ecx
call fcn.004352c0
add esp, 8
mov cl, byte [esp + 0x50]
xor eax, eax
test cl, cl
jbe 0x468e8c
mov edx, dword [esp + 0x14]
mov ecx, edx
shl ecx, 3
sub ecx, edx
lea edx, [ecx + ecx*2]
lea esi, [edx*8 + 0x782aa8]
mov ecx, dword [esp + 0x20]
lea edi, [eax + 1]
mov edx, ecx
push str.Build_Anim
imul edx, eax
mov eax, ecx
mov dword [esp + 0x60], edx
imul eax, edi
mov edx, dword [esp + 0x58]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x30]
and edx, 0xff
push edx
push eax
push ecx
mov dword [esp + 0x70], 0
mov dword [esp + 0x78], eax
call fcn.0042ef90
add esp, 0x10
lea ecx, [esp + 0x5c]
mov dword [esi], eax
push 0
push 0
push ecx
push ebx
push 0
push 0
push eax
call fcn.0042fac0
mov edx, dword [esi]
add esp, 0x1c
mov dword [edx + 8], 0
mov eax, dword [esi]
mov ecx, dword [eax + 4]
mov dword [eax + 0xc], ecx
mov eax, dword [ebx + 0x14]
test eax, eax
je 0x468e66
push eax
call fcn.00434970
mov edx, dword [esi]
add esp, 4
mov dword [edx + 0x14], eax
mov eax, dword [esi]
push 0
push eax
call fcn.00430d90
mov ecx, dword [esp + 0x58]
mov dword [esi], eax
mov eax, edi
and ecx, 0xff
add esp, 8
add esi, 4
cmp eax, ecx
jb 0x468de4
push ebx
call fcn.0042f160
add esp, 4
mov ebx, dword [esp + 0x14]
lea edx, [esp + 0x1818]
push str.NONE
push edx
call fcn.004bcb20
add esp, 8
test eax, eax
jne 0x468ebd
mov byte [ebx + 0x7954b0], al
jmp 0x4690d7
mov al, byte [0x79553c]
push 0x1c2
push eax
lea ecx, [esp + 0x1820]
push 0x6f9908
push ecx
call fcn.00452440
mov cl, byte [0x79553c]
add esp, 0x10
cmp al, cl
je 0x468f25
mov dl, byte [esp + 0x33]
mov byte [ebp + 0x6dc5cb], al
mov ecx, dword [ebp + 0x6dc598]
mov al, byte [esp + 0x32]
or ecx, 0x40
mov dword [ebp + 0x6dc598], ecx
mov byte [ebp + 0x6dc5c5], dl
test al, al
je 0x4690d7
mov eax, dword [ebp + 0x6dc598]
or al, 0x10
mov dword [ebp + 0x6dc598], eax
jmp 0x4690d7
mov al, byte [esp + 0x6c]
test al, al
je 0x4690d7
mov ecx, dword [ebp + 0x6dc598]
mov byte [ebx + 0x7954b0], al
mov al, byte [esp + 0x33]
or ecx, 0x40
mov dword [ebp + 0x6dc598], ecx
mov byte [ebp + 0x6dc5c5], al
mov al, byte [esp + 0x32]
mov byte [ebp + 0x6dc5cb], bl
test al, al
je 0x468f6c
mov eax, dword [ebp + 0x6dc598]
or al, 0x10
mov dword [ebp + 0x6dc598], eax
mov al, byte [0x4eb014]
test al, al
jne 0x4690d7
lea ecx, [esp + 0x48]
lea edx, [esp + 0x4c]
push ecx
lea eax, [esp + 0x38]
push edx
lea ecx, [esp + 0x1820]
push eax
push ecx
call fcn.0042eae0
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x7c]
cdq
and ecx, 0xff
add esp, 0x10
idiv ecx
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
push 1
push 1
push 1
push 0
push 0
push 0
mov dword [esp + 0x44], edx
push 0
and ecx, 0xff
lea edx, [esp + 0x1834]
mov dword [esp + 0x3c], eax
mov eax, dword [0x798384]
push eax
push ecx
push edx
call fcn.0042f430
mov ebp, eax
mov al, byte [0x515bb0]
add esp, 0x28
test al, al
je 0x469003
mov eax, dword [ebp + 0x14]
push 0x100
mov ecx, dword [eax + 4]
push ecx
call fcn.004352c0
add esp, 8
mov al, byte [esp + 0x6c]
xor ecx, ecx
test al, al
jbe 0x4690ce
mov eax, ebx
shl eax, 3
sub eax, ebx
lea edx, [eax + eax*2]
lea esi, [edx*8 + 0x716b00]
mov eax, dword [esp + 0x20]
lea edi, [ecx + 1]
mov edx, eax
push str.Build_Anim
imul edx, ecx
mov ecx, eax
mov dword [esp + 0x84], edx
imul ecx, edi
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x8c], ecx
mov ecx, dword [esp + 0x30]
and edx, 0xff
push edx
xor ebx, ebx
push ecx
push eax
mov dword [esp + 0x94], ebx
mov dword [esp + 0x9c], ecx
call fcn.0042ef90
add esp, 0x10
lea ecx, [esp + 0x80]
mov dword [esi], eax
push ebx
push ebx
push ecx
push ebp
push ebx
push ebx
push eax
call fcn.0042fac0
mov edx, dword [esi]
add esp, 0x1c
mov dword [edx + 8], ebx
mov eax, dword [esi]
push ebx
mov ecx, dword [eax + 4]
mov dword [eax + 0xc], ecx
mov edx, dword [esi]
push edx
call fcn.00430d90
mov dword [esi], eax
mov eax, dword [ebp + 0x14]
add esp, 8
cmp eax, ebx
je 0x4690b7
push eax
call fcn.00434970
mov ecx, dword [esi]
add esp, 4
mov dword [ecx + 0x14], eax
mov edx, dword [esp + 0x6c]
mov ecx, edi
and edx, 0xff
add esi, 4
cmp ecx, edx
jb 0x469022
push ebp
call fcn.0042f160
add esp, 4
mov al, byte [esp + 0x13]
test al, al
jne 0x468470
mov eax, dword [esp + 0x24]
push eax
call fcn.0042bb40
mov al, byte [0x4eb014]
add esp, 4
test al, al
jne 0x469177
cmp dword [0x4eb018], 8
jne 0x469113
mov ecx, dword [0x787c78]
push ecx
call fcn.0042f060
add esp, 4
jmp 0x46912e
mov eax, dword [0x787c78]
push str.CONSTRUCTION8
push 0x10
mov edx, dword [eax + 4]
mov eax, dword [eax]
push edx
push eax
call fcn.0042ef90
add esp, 0x10
mov dword [0x789194], eax
xor esi, esi
mov eax, dword [esi + 0x6d9260]
test eax, eax
je 0x46916f
cmp dword [0x4eb018], 8
jne 0x469153
push eax
call fcn.0042f060
add esp, 4
jmp 0x469169
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push str.CONSTRUCTION16
push 0x10
push ecx
push edx
call fcn.0042ef90
add esp, 0x10
mov dword [esi + 0x6e5858], eax
add esi, 4
cmp esi, 0x28
jb 0x469135
mov ebx, dword [esp + 0x40]
xor edi, edi
test ebx, ebx
jbe 0x4691ce
mov ebp, dword [sym.imp.USER32.dll_wsprintfA]
mov esi, 0x7891b0
mov al, byte [esp + edi + 0xa2c]
test al, al
jne 0x4691c3
push 0x22
push esi
push 0x22
lea eax, [esp + 0xb00]
push str.Unit__c_s_c_not_found_in_LINKTEXT.DAT
push eax
call ebp
add esp, 0x14
lea ecx, [esp + 0xaf4]
push ecx
push str.Error
call fcn.0042b590
add esp, 8
inc edi
add esi, 0x1c2
cmp edi, ebx
jb 0x46918c
call fcn.00465e60
call fcn.0046ad80
mov al, byte [0x7984cc]
test al, al
je 0x46976f
push 0
push 0x4db9b0
push str.binTemplates.bin
call fcn.0042ba50
mov esi, eax
add esp, 0xc
test esi, esi
je 0x469446
push esi
push 0x3c00
push 1
push 0x77e250
call fcn.0042bb80
add esp, 0x10
push esi
push 0x68b0
push 1
push 0x6dc540
call fcn.0042bb80
add esp, 0x10
push esi
push 0x700
push 1
push 0x782068
call fcn.0042bb80
add esp, 0x10
push esi
push 0x200
push 1
push 0x781e58
call fcn.0042bb80
add esp, 0x10
push esi
push 0x168
push 1
push 0x782770
call fcn.0042bb80
add esp, 0x10
push esi
push 0x168
push 1
push 0x7951d0
call fcn.0042bb80
add esp, 0x10
push esi
push 4
push 1
push 0x795528
call fcn.0042bb80
add esp, 0x10
push esi
push 1
push 1
push 0x795538
call fcn.0042bb80
add esp, 0x10
push esi
push 4
push 1
push 0x795534
call fcn.0042bb80
add esp, 0x10
push esi
push 0x100
push 1
push 0x6d5fd0
call fcn.0042bb80
add esp, 0x10
push esi
push 1
push 1
push 0x795544
call fcn.0042bb80
add esp, 0x10
push esi
push 4
push 1
push 0x795530
call fcn.0042bb80
add esp, 0x10
push esi
push 0x100
push 1
push 0x795340
call fcn.0042bb80
add esp, 0x10
push esi
push 1
push 1
push 0x795540
call fcn.0042bb80
add esp, 0x10
push esi
push 4
push 1
push 0x79552c
call fcn.0042bb80
add esp, 0x10
push esi
push 0x1e0
push 1
push 0x6e5a60
call fcn.0042bb80
add esp, 0x10
push esi
push 1
push 1
push 0x79553c
call fcn.0042bb80
add esp, 0x10
push esi
push 0xafc8
push 1
push 0x6f9908
call fcn.0042bb80
add esp, 0x10
push esi
push 0xc80
push 1
push 0x6db390
call fcn.0042bb80
add esp, 0x10
push esi
push 0xc80
push 1
push 0x7943a8
call fcn.0042bb80
add esp, 0x10
push esi
push 0x6978
push 1
push 0x7891b0
call fcn.0042bb80
add esp, 0x10
push esi
push 0xbb8
push 1
push 0x6da7d8
call fcn.0042bb80
add esp, 0x10
push esi
push 0x1388
push 1
push 0x787e08
call fcn.0042bb80
add esp, 0x10
push esi
push 0x56
push 1
push 0x6d60d8
call fcn.0042bb80
add esp, 0x10
push esi
push 0x100
push 1
push 0x6e5750
call fcn.0042bb80
add esp, 0x10
push esi
push 0x64
push 1
push 0x7954b0
call fcn.0042bb80
add esp, 0x10
push esi
push 0x64
push 1
push 0x714a98
call fcn.0042bb80
add esp, 0x10
push esi
push 1
push 1
push 0x6e5850
call fcn.0042bb80
add esp, 0x10
push esi
push 1
push 1
push 0x6d9b50
call fcn.0042bb80
add esp, 0x10
push esi
call fcn.0042bb40
add esp, 4
mov al, byte [0x7984cc]
test al, al
je 0x46976f
cmp dword [0x4eb018], 0x10
jne 0x46947a
cmp dword [0x798384], 0xcaca
je 0x46947a
push str.Creating_RES_file_on_non_555_machine
push str.Setup
call fcn.0042b590
add esp, 8
cmp dword [0x4eb018], 8
jne 0x46949b
push str.data.r8
call fcn.0045ffd0
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x19650
ret
push str.data.r16
call fcn.0045ffd0
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x19650
ret
push 0
push 0x4db9b4
push str.binTemplates.bin
call fcn.0042ba50
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x4694e0
push eax
push str.binTemplates.bin
call fcn.0042b730
add esp, 8
jmp 0x46972d
push esi
push 0x3c00
push 1
push 0x77e250
call fcn.0042bb60
add esp, 0x10
push esi
push 0x68b0
push 1
push 0x6dc540
call fcn.0042bb60
add esp, 0x10
jmp 0x8d66a0
call fcn.00465e60
call fcn.0046ad80
call fcn.0046b0f0
call fcn.0046b690
cmp dword [0x4eb018], 8
jne 0x469762
push str.data.r8
call fcn.00460be0
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x19650
ret
push str.data.r16
call fcn.00460be0
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x19650
ret
mov ecx, dword [0x795534]
jmp 0x46791b