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

Disassembly:
sub esp, 0x268
push ebp
push edi
mov edi, dword [esp + 0x274]
push 0
push edi
lea eax, [esp + 0x10]
push eax
mov ebp, ecx
call fcn.005386b0
test eax, eax
je 0x54c970
push str.Error_creating_view_from_scene_file
push 0xffffffffffffffff
push ebp
call fcn.00533f30
add esp, 0xc
pop edi
or eax, 0xffffffff
pop ebp
add esp, 0x268
ret 0xc
fldz
mov ecx, dword [esp + 8]
fst dword [esp + 0x34]
push ebx
mov ebx, dword [esp + 0x280]
fst dword [esp + 0x48]
fst dword [esp + 0x3c]
push esi
fst dword [esp + 0x48]
mov esi, 0x48
fst dword [esp + 0x50]
mov dword [ecx + 0x314], ebp
fst dword [esp + 0x58]
mov ecx, ebx
fst dword [esp + 0x38]
mov dword [esp + 0x44], esi
fst dword [esp + 0x1c]
mov dword [esp + 0x54], esi
fst dword [esp + 0x30]
mov dword [esp + 0x28], esi
fstp dword [esp + 0x18]
mov dword [esp + 0x14], 0x460
call fcn.0054c8d0
cmp eax, 1
je 0x54ccca
jmp 0x54c9e0
mov eax, dword [ebx]
cmp eax, 3
je 0x54ccc6
cmp eax, 2
je 0x54ccb6
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push edi
push str.VIEW
mov ecx, ebx
call fcn.0054bfb0
test eax, eax
je 0x54ca29
mov edx, dword [esp + 0x10]
push ebx
push edx
push edi
mov ecx, ebp
call fcn.0054c930
test eax, eax
jne 0x54cdd5
push 0
lea eax, [esp + 0x4c]
push eax
lea ecx, [esp + 0x58]
push ecx
lea edx, [esp + 0x64]
push edx
push 0x639024
mov ecx, ebx
call fcn.0054c3e0
push 0x5d08ec
mov ecx, ebx
call fcn.0054bca0
test eax, eax
je 0x54ca8b
mov eax, dword [ebx + 0x80c]
lea ecx, [esp + 0x34]
add eax, 1
push ecx
push eax
mov dword [esp + 0x3c], eax
call fcn.00590ffc
fstp dword [esp + 0x6c]
mov eax, dword [esp + 0x3c]
lea edx, [esp + 0x3c]
add eax, 1
push edx
push eax
call fcn.00590ffc
fstp dword [esp + 0x6c]
add esp, 0x10
push 0
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x5c]
push ecx
lea edx, [esp + 0x34]
push edx
push str.COLOR
mov ecx, ebx
call fcn.0054c2f0
push str.CLIPPLANES
mov ecx, ebx
call fcn.0054bca0
test eax, eax
je 0x54caed
mov eax, dword [ebx + 0x80c]
lea ecx, [esp + 0x20]
add eax, 1
push ecx
push eax
mov dword [esp + 0x28], eax
call fcn.00590ffc
fstp dword [esp + 0x70]
mov eax, dword [esp + 0x28]
lea edx, [esp + 0x28]
add eax, 1
push edx
push eax
call fcn.00590ffc
fstp dword [esp + 0x70]
add esp, 0x10
push 0
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x54]
push ecx
lea edx, [esp + 0x4c]
push edx
push str.ORIENT
mov ecx, ebx
call fcn.0054c3e0
push 0
lea eax, [esp + 0x70]
push eax
lea ecx, [esp + 0x7c]
push ecx
lea edx, [esp + 0x7c]
push edx
push 0x639018
mov ecx, ebx
call fcn.0054c3e0
push str.SIZE
mov ecx, ebx
call fcn.0054bca0
test eax, eax
je 0x54cba6
mov eax, dword [ebx + 0x80c]
lea ecx, [esp + 0x2c]
add eax, 1
push ecx
push eax
mov dword [esp + 0x34], eax
call fcn.00590ffc
fstp dword [esp + 0x20]
mov eax, dword [esp + 0x34]
lea edx, [esp + 0x34]
add eax, 1
push edx
push eax
call fcn.00590ffc
fst dword [esp + 0x40]
fld1
mov ecx, dword [0xa47b78]
fld dword [esp + 0x28]
add esp, 0x10
fcom st(1)
fnstsw ax
test ah, 0x41
jp 0x54cb8d
fimul dword [ecx + 0x2600]
fstp dword [esp + 0x18]
jmp 0x54cb8f
fstp st(0)
fcomp st(1)
fnstsw ax
test ah, 1
jne 0x54cba4
fimul dword [ecx + 0x2604]
fstp dword [esp + 0x30]
jmp 0x54cba6
fstp st(0)
push str.CENTER
mov ecx, ebx
call fcn.0054bca0
test eax, eax
je 0x54cc25
mov eax, dword [ebx + 0x80c]
lea ecx, [esp + 0x24]
add eax, 1
push ecx
push eax
mov dword [esp + 0x2c], eax
call fcn.00590ffc
fstp dword [esp + 0x24]
mov eax, dword [esp + 0x2c]
lea edx, [esp + 0x2c]
add eax, 1
push edx
push eax
call fcn.00590ffc
fst dword [esp + 0x48]
fld1
mov ecx, dword [0xa47b78]
fld dword [esp + 0x2c]
add esp, 0x10
fcom st(1)
fnstsw ax
test ah, 0x41
jp 0x54cc0c
fimul dword [ecx + 0x2600]
fstp dword [esp + 0x1c]
jmp 0x54cc0e
fstp st(0)
fcomp st(1)
fnstsw ax
test ah, 1
jne 0x54cc23
fimul dword [ecx + 0x2604]
fstp dword [esp + 0x38]
jmp 0x54cc25
fstp st(0)
push 0
push 0
push 0
push 0
push 0
push 0
push 0
lea eax, [esp + 0x94]
push eax
push str.CLEAR
mov ecx, ebx
call fcn.0054bfb0
test eax, eax
je 0x54cc6b
mov edi, str.TRUE
lea esi, [esp + 0x78]
mov ecx, 5
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x54cc66
or dword [esp + 0x14], 2
jmp 0x54cc6b
and dword [esp + 0x14], 0xfffffffd
push 0
push 0
push 0
push 0
push 0
push 0
push 0
lea eax, [esp + 0x194]
push eax
push str.BGMAP
mov ecx, ebx
call fcn.0054bfb0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
lea ecx, [esp + 0x94]
push ecx
push str.SEPARATESURFACE
mov ecx, ebx
call fcn.0054bfb0
mov edi, dword [esp + 0x27c]
mov ecx, ebx
call fcn.0054c8d0
cmp eax, 1
jne 0x54c9e0
mov esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x10]
push 0
call fcn.00537f10
fld dword [esp + 0x30]
mov ecx, dword [esp + 0x10]
push 0
sub esp, 0x10
fst dword [esp + 0xc]
fld dword [esp + 0x2c]
fst dword [esp + 8]
fld dword [0x5ad750]
fmul st(2), st(0)
fld dword [esp + 0x4c]
fsubrp st(3)
fxch st(2)
fstp dword [esp + 4]
fmulp st(1)
fsubr dword [esp + 0x30]
fstp dword [esp]
call fcn.00537560
fld dword [esp + 0x5c]
mov ecx, dword [esp + 0x10]
fld dword [0x638fb4]
push 0
fmul st(1), st(0)
sub esp, 8
fxch st(1)
fstp dword [esp + 4]
fmul dword [esp + 0x70]
fstp dword [esp]
call fcn.00537390
fld dword [esp + 0x60]
mov ecx, dword [esp + 0x10]
push 0
sub esp, 8
fstp dword [esp + 4]
fld dword [esp + 0x74]
fstp dword [esp]
call fcn.00537f20
mov ecx, dword [esp + 0x10]
shl esi, 8
add esi, dword [esp + 0x54]
shl esi, 8
add esi, dword [esp + 0x44]
push esi
call fcn.005376f0
fld dword [esp + 0x3c]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
sub esp, 0x18
fstp dword [esp + 0x14]
mov dword [edx], eax
fld dword [esp + 0x64]
mov ecx, dword [esp + 0x28]
fstp dword [esp + 0x10]
fld dword [esp + 0x58]
fstp dword [esp + 0xc]
fld dword [esp + 0x60]
fstp dword [esp + 8]
fld dword [esp + 0x68]
fstp dword [esp + 4]
fld dword [esp + 0x70]
fstp dword [esp]
call fcn.00538180
mov ecx, dword [esp + 0x280]
test ecx, ecx
je 0x54cdc6
mov edx, dword [esp + 0x10]
push edx
call fcn.00538390
pop esi
pop ebx
pop edi
xor eax, eax
pop ebp
add esp, 0x268
ret 0xc
pop esi
pop ebx
pop edi
or eax, 0xffffffff
pop ebp
add esp, 0x268
ret 0xc