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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x9c
push ebx
push esi
push edi
mov edi, ecx
mov dword [esp + 0x28], edi
fild dword [edi + 0x64]
mov esi, dword [edi + 0x50]
sub esi, 2
fmul dword [0x790e98]
fstp dword [esp + 0x10]
fild dword [edi + 0x68]
fmul dword [0x790e98]
fstp dword [esp + 0x14]
call fcn.00576600
mov eax, dword [edi + 0x3c]
cmp eax, 3
je 0x577b37
cmp eax, 4
je 0x577b37
fld dword [esp + 0x10]
fadd dword [0x790e94]
fld dword [esp + 0x14]
fadd dword [0x790e90]
fstp dword [esp + 0x14]
fcom qword [0x788da8]
fnstsw ax
test ah, 1
jne 0x577b14
fstp st(0)
fld qword [0x788da8]
fstp dword [esp + 0x10]
fld dword [esp + 0x14]
fcomp qword [0x788da8]
fnstsw ax
test ah, 1
je 0x577b2f
fld dword [esp + 0x14]
jmp 0x577b3b
fld qword [0x788da8]
jmp 0x577b3b
fld dword [esp + 0x14]
fild dword [esi*4 + str.FFFPZddPPPZdnxFFFPZddPPPZdnx]
fld dword [0x7867f8]
fsub dword [esp + 0x10]
fmulp st(1)
fild dword [esi*4 + 0x790b70]
fmul dword [esp + 0x10]
faddp st(1)
call fcn.0076a6b0
mov dword [edi + 0x180], eax
fild dword [esi*4 + 0x790b8c]
fld dword [0x7867f8]
fsub st(2)
fmulp st(1)
fild dword [esi*4 + 0x790ba8]
fmul st(2)
faddp st(1)
call fcn.0076a6b0
mov ecx, dword [edi + 0x180]
xor ebx, ebx
mov dword [esp + 0x34], ecx
mov esi, 4
lea edx, [ecx + 4]
lea ecx, [esp + 0x50]
mov dword [esp + 0x44], edx
lea edx, [eax + 0xc]
fstp st(0)
mov dword [edi + 0x184], eax
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x48], edx
mov dword [esp + 0x2c], 2
mov dword [esp + 0x30], 5
mov dword [esp + 0x38], eax
mov dword [edi + 0x30c], esi
call fcn.00490dd0
lea ecx, [esp + 0x6c]
call fcn.00490ea0
push ebx
push ebx
lea ecx, [esp + 0x54]
mov dword [esp + 0x88], ebx
mov byte [esp + 0x8c], bl
mov dword [esp + 0x54], vtable.CCINIClass.0
call fcn.0050aca0
mov eax, dword [edi + 0x38]
mov dword [edi + 0x30c], esi
lea ecx, [eax + eax*2]
lea edx, [eax + ecx*4]
lea ecx, [esp + 0x4c]
lea eax, [edx*8 + str.TEMPERATE]
push eax
push str.Theater
push 0x7c0dbc
call fcn.0050d8f0
lea ecx, [esp + 0x3c]
push ecx
push str.Size
push 0x7c0dbc
lea ecx, [esp + 0x58]
call fcn.0050cfa0
lea edx, [esp + 0x2c]
lea ecx, [esp + 0x4c]
push edx
push str.LocalSize
push 0x7c0dbc
call fcn.0050cfa0
mov eax, dword [edi + 0x30c]
push ebx
push eax
push str.Level
push 0x7c0dbc
lea ecx, [esp + 0x5c]
call fcn.0050c9e0
mov ecx, dword [0xa1e01c]
push 0x7cc528
push str.TechLevel
mov edx, dword [ecx]
add edx, 0x24
push edx
lea ecx, [esp + 0x58]
call fcn.0050d8f0
mov eax, dword [0xa1e01c]
mov ecx, dword [eax]
add ecx, 0x24
push ecx
push str.Player
push str.Basic
lea ecx, [esp + 0x58]
call fcn.0050d8f0
mov eax, dword [edi + 0x38]
mov edx, dword [edi + 0x48]
cmp eax, ebx
jne 0x577cc7
mov eax, dword [edi + 0x1a8]
jmp 0x577ccd
mov eax, dword [edi + 0x1c4]
mov ecx, dword [eax + edx*4]
mov dword [esp + 0x10], ecx
lea ecx, [esp + 0x4c]
fild dword [esp + 0x10]
fmul qword [0x787518]
fstp qword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
push esi
push edi
push str.Ambient
push str.Lighting
call fcn.0050d840
push 0x3ff00000
push ebx
push str.RedTint
push str.Lighting
lea ecx, [esp + 0x5c]
call fcn.0050d840
push 0x3ff00000
push ebx
push str.GreenTint
push str.Lighting
lea ecx, [esp + 0x5c]
call fcn.0050d840
push 0x3ff00000
push ebx
push str.BlueTint
push str.Lighting
lea ecx, [esp + 0x5c]
call fcn.0050d840
push ebx
push ebx
push str.Ground
push str.Lighting
lea ecx, [esp + 0x5c]
call fcn.0050d840
mov eax, dword [esp + 0x28]
sub esp, 8
mov edx, dword [eax + 0x48]
mov eax, dword [eax + 0x18c]
mov ecx, dword [eax + edx*4]
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
lea ecx, [esp + 0x54]
mov dword [esp + 0x20], edx
fild dword [esp + 0x20]
fstp qword [esp]
push str.Level
push str.Lighting
call fcn.0050d840
push esi
push edi
push str.IonAmbient
push str.Lighting
lea ecx, [esp + 0x5c]
call fcn.0050d840
push 0x3fd33333
push 0x33333333
push str.IonRed
push str.Lighting
lea ecx, [esp + 0x5c]
call fcn.0050d840
push 0x3fd99999
push 0x9999999a
push str.IonGreen
push str.Lighting
lea ecx, [esp + 0x5c]
call fcn.0050d840
push 0x3fe80000
push ebx
push str.IonBlue
push str.Lighting
lea ecx, [esp + 0x5c]
call fcn.0050d840
push ebx
push ebx
push str.IonGround
push str.Lighting
lea ecx, [esp + 0x5c]
call fcn.0050d840
push ebx
push ebx
push str.IonLevel
push str.Lighting
lea ecx, [esp + 0x5c]
call fcn.0050d840
mov edx, dword [0xa255a0]
cmp byte [edx + 0x22fc], bl
jne 0x577e5a
or ecx, 0xffffffff
or eax, 0xffffffff
push ecx
push eax
push 0x3ff00000
push ebx
push ebx
mov ecx, 0xa5e520
call fcn.00617c20
mov eax, dword [0x7cb48c]
cmp eax, ebx
je 0x577e65
call eax
call fcn.006de7e0
call fcn.006df2a0
cmp byte [ebp + 8], bl
jne 0x577f69
mov edx, dword [0xa283a4]
mov ecx, dword [0xa255a0]
inc edx
push 0x824884
mov dword [0xa283a4], edx
call fcn.00655610
cmp byte [0xa28933], bl
je 0x577ea2
call fcn.00654250
mov dl, 1
lea ecx, [esp + 0x4c]
call fcn.00655a10
call fcn.00653cc0
mov eax, dword [0x81a8f4]
cdq
sub eax, edx
mov ecx, eax
mov eax, dword [0x81a8f0]
cdq
sub eax, edx
sar ecx, 1
sar eax, 1
add eax, ecx
mov ecx, dword [0xa255a0]
mov word [esp + 0x12], ax
lea edx, [eax + 1]
mov word [esp + 0x10], dx
mov eax, dword [esp + 0x10]
push eax
push 0x63
call fcn.0065a260
lea ecx, [esp + 0x18]
push 0x63
push ecx
mov ecx, dword [0xa255a0]
call fcn.00659fe0
mov ecx, dword [0xa255a0]
mov edx, dword [eax]
push edx
mov eax, dword [ecx + 0x20c]
push eax
call fcn.0065a260
mov ecx, dword [0xa255a0]
lea eax, [esp + 0x18]
mov edx, dword [ecx + 0x20c]
push edx
push eax
call fcn.00659fe0
push eax
mov ecx, 0x81a800
call fcn.005453b0
mov edi, dword [eax + 0x140]
add eax, 0x140
or edi, 4
mov dword [eax], edi
mov ecx, dword [0xa255a0]
lea eax, [esp + 0x18]
mov edx, dword [ecx + 0x20c]
push edx
push eax
call fcn.0065a020
push eax
mov ecx, 0x81a800
call fcn.00627850
jmp 0x5786d1
mov ecx, dword [0xa255a0]
call fcn.00652770
mov esi, dword [esp + 0x28]
cmp dword [esi + 0x17c], ebx
jne 0x577f9f
push 4
call fcn.0076d5a7
add esp, 4
cmp eax, ebx
je 0x577f97
mov ecx, eax
call fcn.00614ec0
jmp 0x577f99
xor eax, eax
mov dword [esi + 0x17c], eax
mov ecx, dword [0xa255a0]
cmp byte [ecx + 0x22fc], bl
je 0x577fbb
push 0x65
mov ecx, 0xa255a8
call fcn.006682c0
jmp 0x577fd4
or ecx, 0xffffffff
or eax, 0xffffffff
push ecx
push eax
push 0x40000000
push ebx
push ebx
mov ecx, 0xa5e520
call fcn.00617c20
mov edx, dword [0xa255a0]
mov eax, dword [esi + 0x178]
mov ecx, dword [esi + 0x38]
cmp eax, ebx
mov edi, dword [edx + 0x838]
mov dword [esp + 0x18], ecx
mov byte [esp + 0xf], 1
mov dword [esp + 0x10], edi
je 0x578023
mov edx, dword [eax + 0x64]
mov edi, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
mov dword [esp + 0x10], edi
jne 0x578023
mov edx, dword [eax + 0x68]
cmp edx, dword [esi + 0x68]
jne 0x578023
cmp edi, ecx
jne 0x578023
mov eax, dword [eax + 0x50]
mov edx, dword [esi + 0x50]
cmp eax, edx
jne 0x578023
mov byte [esp + 0xf], bl
mov eax, dword [0x7cb48c]
cmp eax, ebx
je 0x578037
call eax
mov eax, dword [0x7cb48c]
mov ecx, dword [esp + 0x18]
cmp dword [esi + 0x178], ebx
je 0x57804d
cmp ecx, edi
jne 0x57804d
cmp byte [esp + 0xf], bl
je 0x578135
mov ecx, dword [0xa28568]
lea esi, [ecx - 1]
cmp esi, ebx
jl 0x5780a8
mov edx, dword [0xa2855c]
mov eax, dword [edx + esi*4]
add eax, 4
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc]
cmp eax, 0x12
jne 0x5780a0
mov ecx, dword [0xa28568]
cmp esi, ecx
jge 0x5780a0
dec ecx
mov eax, esi
cmp esi, ecx
mov dword [0xa28568], ecx
jge 0x5780a0
mov ecx, dword [0xa2855c]
inc eax
mov edx, dword [ecx + eax*4]
mov dword [ecx + eax*4 - 4], edx
mov ecx, dword [0xa28568]
cmp eax, ecx
jl 0x578088
dec esi
jns 0x57805a
mov eax, dword [0x7cb48c]
cmp eax, ebx
je 0x5780ae
call eax
call fcn.00518d80
mov eax, dword [0x7cb48c]
cmp eax, ebx
je 0x5780be
call eax
mov eax, dword [0xa28900]
xor edi, edi
cmp eax, ebx
jle 0x578135
mov eax, dword [0xa28560]
mov ecx, dword [0xa288f4]
mov esi, dword [ecx + edi*4]
mov ecx, dword [0xa28568]
cmp ecx, eax
jl 0x57810d
cmp byte [0xa28565], bl
jne 0x5780ed
cmp eax, ebx
jne 0x57812a
mov ecx, dword [0xa2856c]
cmp ecx, ebx
jle 0x57812a
mov edx, dword [0xa28558]
add eax, ecx
push ebx
push eax
mov ecx, 0xa28558
call dword [edx + 8]
test al, al
je 0x578125
mov ecx, dword [0xa28568]
mov eax, ecx
inc ecx
mov dword [0xa28568], ecx
mov ecx, dword [0xa2855c]
mov dword [ecx + eax*4], esi
mov eax, dword [0xa28560]
mov ecx, dword [0xa28900]
inc edi
cmp edi, ecx
jl 0x5780ce
mov edx, dword [0xa255a0]
cmp byte [edx + 0x22fc], bl
je 0x578151
push 0x68
mov ecx, 0xa255a8
call fcn.006682c0
jmp 0x57816a
or ecx, 0xffffffff
or eax, 0xffffffff
push ecx
push eax
push 0x40140000
push ebx
push ebx
mov ecx, 0xa5e520
call fcn.00617c20
mov eax, dword [0x7cb48c]
cmp eax, ebx
je 0x578175
call eax
cmp byte [esp + 0xf], bl
je 0x5781e1
mov ecx, 0x81a800
call fcn.0059c1b0
push 1
push ebx
lea eax, [esp + 0x44]
push 1
push eax
mov ecx, 0x81a800
call fcn.00627830
lea ecx, [esp + 0x2c]
push ecx
mov ecx, 0x81a800
call fcn.00627d70
mov ecx, dword [0x821c8c]
cmp ecx, ebx
je 0x5781b9
mov edx, dword [ecx]
push 1
call dword [edx + 0x20]
push 0xe18
call fcn.0076d5a7
add esp, 4
cmp eax, ebx
je 0x5781d3
mov ecx, eax
call fcn.006979a0
jmp 0x5781d5
xor eax, eax
mov ecx, eax
mov dword [0x821c8c], eax
call fcn.006a0470
mov eax, dword [0xa255a0]
cmp byte [eax + 0x22fc], bl
je 0x5781fc
push 0x6d
mov ecx, 0xa255a8
call fcn.006682c0
jmp 0x578215
or ecx, 0xffffffff
or eax, 0xffffffff
push ecx
push eax
push 0x40240000
push ebx
push ebx
mov ecx, 0xa5e520
call fcn.00617c20
mov eax, dword [0x84e4b8]
cmp eax, ebx
jle 0x57823c
mov ecx, dword [0x84e4ac]
mov ecx, dword [ecx + eax*4 - 4]
cmp ecx, ebx
je 0x578233
mov edx, dword [ecx]
push 1
call dword [edx + 0x20]
mov eax, dword [0x84e4b8]
cmp eax, ebx
jg 0x57821e
mov eax, dword [0xa1e168]
cmp eax, ebx
jle 0x578263
mov ecx, dword [0xa1e15c]
mov ecx, dword [ecx + eax*4 - 4]
cmp ecx, ebx
je 0x57825a
mov edx, dword [ecx]
push 1
call dword [edx + 0x20]
mov eax, dword [0xa1e168]
cmp eax, ebx
jg 0x578245
mov eax, dword [0xa28728]
cmp eax, ebx
jle 0x57828a
mov ecx, dword [0xa2871c]
mov ecx, dword [ecx + eax*4 - 4]
cmp ecx, ebx
je 0x578281
mov edx, dword [ecx]
push 1
call dword [edx + 0x20]
mov eax, dword [0xa28728]
cmp eax, ebx
jg 0x57826c
mov eax, dword [0xa28580]
cmp eax, ebx
jle 0x5782b1
mov ecx, dword [0xa28574]
mov ecx, dword [ecx + eax*4 - 4]
cmp ecx, ebx
je 0x5782a8
mov edx, dword [ecx]
push 1
call dword [edx + 0x20]
mov eax, dword [0xa28580]
cmp eax, ebx
jg 0x578293
mov eax, dword [0x7cb48c]
cmp eax, ebx
je 0x5782bc
call eax
mov ecx, 0x81a800
call fcn.005571f0
mov ecx, 0x81a800
call fcn.00557130
cmp eax, ebx
je 0x578305
mov ecx, 0x81a800
mov byte [eax + 0x11c], bl
mov byte [eax + 0x11b], 4
mov dword [eax + 0x38], ebx
mov byte [eax + 0x11a], bl
mov dword [eax + 0x44], 0xffffffff
mov byte [eax + 0x11e], bl
call fcn.00557130
cmp eax, ebx
jne 0x5782d4
mov eax, dword [0x7cb48c]
cmp eax, ebx
je 0x578310
call eax
mov eax, dword [0xa255a0]
cmp byte [eax + 0x22fc], bl
je 0x57832b
push 0x72
mov ecx, 0xa255a8
call fcn.006682c0
jmp 0x578344
or ecx, 0xffffffff
or eax, 0xffffffff
push ecx
push eax
push 0x402e0000
push ebx
push ebx
mov ecx, 0xa5e520
call fcn.00617c20
mov ecx, 0x81a800
call fcn.0054d0e0
mov ecx, 0x81a800
call fcn.0054bf10
mov ecx, 0x81a800
call fcn.005609e0
mov ecx, dword [0xa255a0]
cmp byte [ecx + 0x22fc], bl
je 0x57837e
push 0x77
mov ecx, 0xa255a8
call fcn.006682c0
jmp 0x578397
or ecx, 0xffffffff
or eax, 0xffffffff
push ecx
push eax
push 0x40340000
push ebx
push ebx
mov ecx, 0xa5e520
call fcn.00617c20
mov eax, dword [0x7cb48c]
cmp eax, ebx
je 0x5783a2
call eax
mov ecx, dword [0xa255a0]
call fcn.0065a080
mov eax, dword [0x81a8f4]
cdq
sub eax, edx
mov ecx, eax
mov eax, dword [0x81a8f0]
cdq
sub eax, edx
sar ecx, 1
sar eax, 1
add eax, ecx
mov ecx, dword [0xa255a0]
mov word [esp + 0x16], ax
lea edx, [eax + 1]
mov word [esp + 0x14], dx
mov eax, dword [esp + 0x14]
push eax
push 0x63
call fcn.0065a260
lea ecx, [esp + 0x14]
push 0x63
push ecx
mov ecx, dword [0xa255a0]
call fcn.00659fe0
mov edx, dword [eax]
mov ecx, dword [0xa255a0]
push edx
push 0x62
call fcn.0065a260
mov ecx, dword [0xa255a0]
lea eax, [esp + 0x14]
push 0x62
push eax
call fcn.00659fe0
push eax
mov ecx, 0x81a800
call fcn.005453b0
mov edi, dword [eax + 0x140]
add eax, 0x140
or edi, 4
lea ecx, [esp + 0x9c]
push 0x62
mov dword [eax], edi
push ecx
mov ecx, dword [0xa255a0]
call fcn.0065a020
push eax
mov ecx, 0x81a800
call fcn.00627850
mov edx, dword [0xa255a0]
cmp byte [edx + 0x22fc], bl
je 0x57846f
push 0x7c
mov ecx, 0xa255a8
call fcn.006682c0
jmp 0x578488
or ecx, 0xffffffff
or eax, 0xffffffff
push ecx
push eax
push 0x40390000
push ebx
push ebx
mov ecx, 0xa5e520
call fcn.00617c20
mov eax, dword [0x7cb48c]
cmp eax, ebx
je 0x578493
call eax
mov edx, dword [0xa283a4]
mov eax, dword [0xa255a0]
mov esi, dword [esp + 0x18]
inc edx
mov dword [0xa283a4], edx
mov ecx, dword [eax + 0x838]
cmp esi, ecx
je 0x5784c6
mov ecx, esi
call fcn.00519290
mov ecx, dword [0xa255a0]
mov dword [ecx + 0x838], esi
mov edx, dword [0xa255a0]
cmp byte [edx + 0x22fc], bl
je 0x5784e5
push 0x81
mov ecx, 0xa255a8
call fcn.006682c0
jmp 0x5784fe
or ecx, 0xffffffff
or eax, 0xffffffff
push ecx
push eax
push 0x403e0000
push ebx
push ebx
mov ecx, 0xa5e520
call fcn.00617c20
mov eax, dword [0x7cb48c]
cmp eax, ebx
je 0x578509
call eax
mov edi, dword [esp + 0x28]
cmp dword [edi + 0x178], ebx
je 0x578521
cmp esi, dword [esp + 0x10]
jne 0x578521
cmp byte [esp + 0xf], bl
je 0x578544
mov eax, dword [0x8219f0]
mov ecx, dword [0x821b68]
push eax
call fcn.0063a300
mov ecx, dword [0x8219f0]
push ecx
mov ecx, dword [0xa255a0]
call fcn.00658330
mov edx, dword [0xa255a0]
cmp byte [edx + 0x22fc], bl
je 0x578563
push 0x86
mov ecx, 0xa255a8
call fcn.006682c0
jmp 0x57857c
or ecx, 0xffffffff
or eax, 0xffffffff
push ecx
push eax
push 0x40418000
push ebx
push ebx
mov ecx, 0xa5e520
call fcn.00617c20
mov eax, dword [0x7cb48c]
cmp eax, ebx
je 0x57858c
call eax
mov eax, dword [0x7cb48c]
cmp dword [edi + 0x178], ebx
je 0x5785a4
cmp esi, dword [esp + 0x10]
jne 0x5785a4
cmp byte [esp + 0xf], bl
je 0x5786c0
cmp dword [0xa1a5b8], ebx
jne 0x5785f9
mov ecx, dword [0xa1e028]
xor esi, esi
cmp ecx, ebx
jle 0x5785f9
push 0x15f90
call fcn.0076d5a7
add esp, 4
cmp eax, ebx
je 0x5785dc
mov ecx, dword [0xa1e01c]
mov edx, dword [ecx + esi*4]
mov ecx, eax
push edx
call fcn.004e0e00
jmp 0x5785de
xor eax, eax
lea ecx, [esp + 0x4c]
push ecx
mov ecx, eax
call fcn.004eaf80
mov eax, dword [0xa1e028]
inc esi
cmp esi, eax
jl 0x5785b8
mov eax, dword [0x7cb48c]
cmp eax, ebx
je 0x5785ff
call eax
mov edx, dword [0xa255a0]
mov ecx, dword [edx + 0x838]
call fcn.006da5d0
mov eax, dword [0xa255a0]
mov ecx, dword [eax + 0x838]
mov eax, dword [0x7c396c]
cmp ecx, eax
je 0x57862d
mov dl, 1
call fcn.00527980
jmp 0x578632
call fcn.00529760
mov ecx, dword [0xa255a0]
mov ecx, dword [ecx + 0x838]
call fcn.005d4e90
mov eax, dword [0x7cb48c]
cmp eax, ebx
je 0x578664
call eax
mov eax, dword [0x7cb48c]
cmp eax, ebx
je 0x578664
call eax
mov eax, dword [0x7cb48c]
cmp eax, ebx
je 0x578664
call eax
mov edx, dword [0xa255a0]
mov ecx, dword [edx + 0x838]
call fcn.00458280
mov eax, dword [0x7cb48c]
cmp eax, ebx
je 0x578680
call eax
mov eax, dword [0xa255a0]
mov ecx, dword [eax + 0x838]
call fcn.00425230
mov eax, dword [0x7cb48c]
cmp eax, ebx
je 0x57869b
call eax
mov ecx, dword [0xa255a0]
mov ecx, dword [ecx + 0x838]
call fcn.0067d590
mov eax, dword [0x7cb48c]
cmp eax, ebx
je 0x5786b7
call eax
mov dl, 1
xor cl, cl
call fcn.005293f0
mov edx, dword [0xa255a0]
mov eax, dword [edx + 0x838]
mov dword [0x7c396c], eax
mov eax, dword [0xa283a4]
mov ecx, dword [0xa255a0]
mov edi, dword [esp + 0x28]
dec eax
mov dword [0xa283a4], eax
mov al, byte [ecx + 0x22fc]
cmp al, bl
je 0x578701
push 0x8b
mov ecx, 0xa255a8
call fcn.006682c0
jmp 0x57871a
or ecx, 0xffffffff
or eax, 0xffffffff
push ecx
push eax
push 0x40440000
push ebx
push ebx
mov ecx, 0xa5e520
call fcn.00617c20
mov eax, dword [0x7cb48c]
cmp eax, ebx
je 0x578725
call eax
mov eax, dword [0xa5861c]
cmp eax, ebx
je 0x578737
push eax
call fcn.0076d2d5
add esp, 4
mov esi, dword [0x836b2c]
imul esi, esi
lea edx, [esi + esi*4]
shl edx, 4
push edx
call fcn.0076d5a7
add esp, 4
cmp eax, ebx
je 0x5787bc
dec esi
cmp esi, ebx
jl 0x5787b5
lea ecx, [eax + 8]
lea edx, [esi + 1]
mov word [ecx - 8], bx
mov word [ecx - 6], bx
mov dword [ecx], ebx
mov dword [ecx + 8], ebx
mov dword [ecx + 0x10], ebx
mov dword [ecx + 0x18], ebx
mov dword [ecx + 0x20], ebx
mov dword [ecx + 0x28], ebx
mov dword [ecx + 4], ebx
mov dword [ecx + 0xc], ebx
mov dword [ecx + 0x14], ebx
mov dword [ecx + 0x1c], ebx
mov dword [ecx + 0x24], ebx
mov dword [ecx + 0x2c], ebx
mov dword [ecx + 0x30], ebx
mov dword [ecx + 0x34], ebx
mov dword [ecx + 0x38], 0xffffffff
mov byte [ecx + 0x3c], bl
mov byte [ecx + 0x3d], bl
mov byte [ecx + 0x3e], bl
mov byte [ecx + 0x3f], bl
mov byte [ecx + 0x40], bl
mov byte [ecx + 0x41], bl
mov byte [ecx + 0x42], 1
mov byte [ecx + 0x43], bl
add ecx, 0x50
dec edx
jne 0x57875e
mov dword [0xa5861c], eax
jmp 0x5787c2
mov dword [0xa5861c], ebx
mov ecx, 0x81a800
call fcn.005571f0
mov ecx, 0x81a800
call fcn.00557130
cmp eax, ebx
je 0x57881b
mov edx, dword [eax + 0x24]
mov dword [esp + 0x18], edx
movsx ecx, word [esp + 0x1a]
imul ecx, dword [0x836b2c]
movsx esi, dx
add ecx, esi
mov esi, dword [0xa5861c]
lea ecx, [ecx + ecx*4]
shl ecx, 4
mov dword [ecx + esi], edx
mov dl, byte [edi + 0x30c]
mov ecx, 0x81a800
mov byte [eax + 0x11b], dl
call fcn.00557130
cmp eax, ebx
jne 0x5787da
mov eax, dword [0xa255a0]
cmp byte [eax + 0x22fc], bl
je 0x578839
push 0x90
mov ecx, 0xa255a8
call fcn.006682c0
jmp 0x578852
or ecx, 0xffffffff
or eax, 0xffffffff
push ecx
push eax
push 0x40468000
push ebx
push ebx
mov ecx, 0xa5e520
call fcn.00617c20
mov eax, dword [0x7cb48c]
cmp eax, ebx
je 0x57885d
call eax
mov ecx, dword [0xa57930]
mov dword [0xa58620], ebx
lea eax, [ecx - 1]
cmp eax, ebx
mov dword [esp + 0x10], eax
jl 0x5788f3
mov edx, dword [0xa57924]
mov eax, dword [esp + 0x10]
mov esi, dword [edx + eax*4]
cmp esi, ebx
je 0x5788e8
mov ecx, dword [esi]
cmp ecx, ebx
je 0x578893
mov edx, dword [ecx]
push 1
call dword [edx]
mov dword [esi], ebx
mov edx, dword [0xa57920]
lea eax, [esp + 0x18]
push eax
mov ecx, 0xa57920
mov dword [esp + 0x1c], esi
call dword [edx + 0x10]
cmp eax, 0xffffffff
je 0x5788ba
push eax
mov ecx, 0xa57920
call fcn.0058bc60
mov eax, dword [esi + 0x2c]
mov dword [esi + 0x28], vtable.VectorClass_class_Cell_.0
cmp eax, ebx
je 0x5788d9
cmp byte [esi + 0x35], bl
je 0x5788d9
push eax
call fcn.0076d2d5
add esp, 4
mov dword [esi + 0x2c], ebx
push esi
mov byte [esi + 0x35], bl
mov dword [esi + 0x30], ebx
call fcn.0076d2d5
add esp, 4
mov eax, dword [esp + 0x10]
dec eax
mov dword [esp + 0x10], eax
jns 0x578874
mov ecx, 0xa581b8
mov dword [edi + 0x304], ebx
mov dword [edi + 0x308], ebx
call fcn.0062fc90
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ebx
fild qword [esp + 0x18]
fmul qword [0x790db8]
fld dword [0x790b50]
fcompp
fnstsw ax
test ah, 0x41
jne 0x578931
mov eax, 1
jmp 0x578933
xor eax, eax
mov ecx, 0x81a800
mov byte [edi + 0x310], al
call fcn.00629370
lea eax, [esp + 0x2c]
mov ecx, 0x81a800
push eax
call fcn.00627d70
mov ecx, 0x81a800
call fcn.006291b0
mov ecx, 0x81a800
call fcn.00627f30
cmp dword [edi + 0x38], ebx
jne 0x578979
mov ecx, dword [edi + 0x48]
mov edx, dword [edi + 0x1a8]
mov eax, dword [edx + ecx*4]
jmp 0x578985
mov eax, dword [edi + 0x48]
mov ecx, dword [edi + 0x1c4]
mov eax, dword [ecx + eax*4]
mov edx, dword [0xa255a0]
mov dword [edx + 0x22a8], eax
mov eax, dword [edi + 0x48]
mov ecx, dword [edi + 0x18c]
mov edx, dword [ecx + eax*4]
mov eax, dword [0xa255a0]
mov dword [eax + 0x22c4], edx
mov eax, dword [edi + 0x38]
cmp eax, ebx
jne 0x5789bd
mov ecx, dword [edi + 0x48]
mov edx, dword [edi + 0x1e0]
mov eax, dword [edx + ecx*4]
jmp 0x5789c9
mov eax, dword [edi + 0x48]
mov ecx, dword [edi + 0x234]
mov eax, dword [ecx + eax*4]
mov edx, dword [0xa255a0]
mov dword [edx + 0x22b4], eax
mov eax, dword [edi + 0x38]
cmp eax, ebx
jne 0x5789ea
mov eax, dword [edi + 0x48]
mov ecx, dword [edi + 0x1fc]
mov eax, dword [ecx + eax*4]
jmp 0x5789f6
mov edx, dword [edi + 0x48]
mov eax, dword [edi + 0x250]
mov eax, dword [eax + edx*4]
mov ecx, dword [0xa255a0]
mov dword [ecx + 0x22b8], eax
mov eax, dword [edi + 0x38]
cmp eax, ebx
jne 0x578a17
mov edx, dword [edi + 0x48]
mov eax, dword [edi + 0x218]
mov eax, dword [eax + edx*4]
jmp 0x578a23
mov ecx, dword [edi + 0x48]
mov edx, dword [edi + 0x26c]
mov eax, dword [edx + ecx*4]
mov ecx, dword [0xa255a0]
mov dword [ecx + 0x22bc], eax
mov edx, dword [0xa255a0]
mov dword [edx + 0x22c8], 0x57
mov eax, dword [0xa255a0]
mov dword [eax + 0x22cc], 0x1e
mov ecx, dword [0xa255a0]
mov dword [ecx + 0x22d0], 0x28
mov edx, dword [0xa255a0]
mov dword [edx + 0x22d4], 0x4b
mov eax, dword [0xa255a0]
mov dword [eax + 0x22d8], ebx
mov ecx, dword [0xa255a0]
mov dword [ecx + 0x22dc], ebx
mov edx, dword [0xa255a0]
cmp byte [edx + 0x22fc], bl
je 0x578aa4
push 0x95
mov ecx, 0xa255a8
call fcn.006682c0
jmp 0x578abd
or ecx, 0xffffffff
or eax, 0xffffffff
push ecx
push eax
push 0x40490000
push ebx
push ebx
mov ecx, 0xa5e520
call fcn.00617c20
lea esi, [edi + 0x78]
push esi
call fcn.0076eb95
add esp, 4
test eax, eax
jne 0x578aed
push 0x19b5
push str.C:RA2MapGen.cpp
xor edx, edx
mov ecx, str.TXT_RANDOM_MAP_DESCRIPTION
call fcn.006eea10
push eax
push esi
call fcn.0076ec19
add esp, 8
lea ecx, [esp + 0x4c]
call fcn.0050abd0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4