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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x98
mov eax, 0xbf800000
push ebx
mov dword [esp + 0x84], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x78], eax
mov eax, dword [0x9df4c0]
xor ebx, ebx
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x94], ebx
mov dword [esp + 0x98], ebx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], ebx
fld dword [eax + 8]
fcomp dword [0x497058]
push ebp
push esi
push edi
fnstsw ax
test ah, 0x40
jne 0x457992
mov eax, dword [0xc3c3cc]
mov dword [esp + 0x50], ebx
cmp eax, ebx
jle 0x457992
mov dword [esp + 0x1c], 0xc3a2c0
mov ebp, 0x4000
mov edx, dword [0xc3c1b0]
mov ecx, dword [esp + 0x1c]
lea eax, [edx*8]
mov ecx, dword [ecx]
sub eax, edx
mov dword [0x9ea9fc], ecx
lea eax, [eax + eax*2]
lea edx, [edx + eax*2]
mov eax, dword [0xc38860]
lea edx, [eax + edx*8]
cmp ecx, edx
jne 0x45736b
mov eax, dword [0xc3ed3c]
fld dword [eax + 8]
fcomp dword [0x497058]
fnstsw ax
test ah, 0x40
je 0x457359
cmp dword [0x9df160], ebx
jne 0x457359
cmp dword [0xc3ed2c], ebx
je 0x457970
fld dword [ecx + 0x7c]
fmul qword [0x497168]
fstp dword [ecx + 0x7c]
mov ecx, dword [0x9ea9fc]
mov edx, dword [ecx + 0x88]
mov eax, dword [edx + 0x44]
dec eax
je 0x45791c
dec eax
jne 0x457970
mov eax, dword [ecx + 0x58]
fld dword [0x9df460]
mov dword [0x9ea9f0], eax
mov edx, dword [ecx + 0x5c]
fsub dword [0x9ea9f0]
mov dword [0x9ea9f4], edx
mov eax, dword [ecx + 0x60]
mov dword [0x9ea9f8], eax
fstp dword [0x9ea9a0]
fld dword [0x9df464]
fsub dword [0x9ea9f4]
fstp dword [0x9ea9a4]
fld dword [0x9df468]
fsub dword [0x9ea9f8]
fstp dword [0x9ea9a8]
call fcn.0044f960
test eax, eax
je 0x457970
mov ecx, dword [0x9ea9fc]
add ecx, 0x58
push ecx
call fcn.00455ea0
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov eax, dword [0xc3f008]
add esp, 4
lea edx, [esp + 0x90]
cmp eax, ebx
mov dword [esp + 0x40], edx
je 0x457577
fld dword [0x9df930]
call fcn.0048c3f4
fld dword [0x9df934]
mov esi, eax
mov dword [esp + 0x34], esi
call fcn.0048c3f4
fld dword [0x9df938]
mov edi, eax
mov dword [esp + 0x38], edi
call fcn.0048c3f4
mov dword [esp + 0x3c], eax
mov dword [esp + 0x30], eax
lea eax, [esp + 0x9c]
lea ecx, [esp + 0x78]
lea edx, [esp + 0x84]
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], edx
mov esi, 0xc38020
fld dword [esi - 0x30]
fcomp qword [0xc3b960]
fnstsw ax
test ah, 1
jne 0x457563
cmp dword [esi], ebx
jne 0x457563
mov eax, dword [0x9ea9fc]
fld dword [eax + 0x58]
fsub dword [esi - 0x40]
fstp dword [esp + 0x54]
fld dword [eax + 0x5c]
fsub dword [esi - 0x3c]
fstp dword [esp + 0x58]
fld dword [eax + 0x60]
fsub dword [esi - 0x38]
lea eax, [esp + 0x54]
push eax
fstp dword [esp + 0x60]
call fcn.00430ffa
fsubr dword [esi - 0x34]
add esp, 4
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fcomp dword [0x497058]
fnstsw ax
test ah, 0x41
jne 0x457563
fild dword [esp + 0x20]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fadd dword [esp + 0x18]
call fcn.0048c3f4
mov dword [esp + 0x20], eax
mov eax, dword [0xc3f008]
cmp eax, ebx
je 0x457563
fld dword [esp + 0x18]
call fcn.0048c3f4
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fstp dword [esp + 0x18]
fld dword [esi - 0x20]
fmul dword [esp + 0x18]
fild dword [esp + 0x34]
fstp dword [esp + 0x14]
fadd dword [esp + 0x14]
call fcn.0048c3f4
fld dword [esi - 0x1c]
fmul dword [esp + 0x18]
fild dword [esp + 0x38]
mov dword [esp + 0x34], eax
fstp dword [esp + 0x14]
fadd dword [esp + 0x14]
call fcn.0048c3f4
fld dword [esi - 0x18]
fmul dword [esp + 0x18]
fild dword [esp + 0x3c]
mov dword [esp + 0x38], eax
fstp dword [esp + 0x14]
fadd dword [esp + 0x14]
call fcn.0048c3f4
mov dword [esp + 0x3c], eax
add esi, 0x44
cmp esi, 0xc388a0
jl 0x457470
jmp 0x4575fc
mov esi, 0xc38020
fld dword [esi - 0x30]
fcomp qword [0xc3b960]
fnstsw ax
test ah, 1
jne 0x4575f1
cmp dword [esi], ebx
jne 0x4575f1
mov eax, dword [0x9ea9fc]
lea ecx, [esp + 0x54]
push ecx
fld dword [eax + 0x58]
fsub dword [esi - 0x40]
fstp dword [esp + 0x58]
fld dword [eax + 0x5c]
fsub dword [esi - 0x3c]
fstp dword [esp + 0x5c]
fld dword [eax + 0x60]
fsub dword [esi - 0x38]
fstp dword [esp + 0x60]
call fcn.00430ffa
fsubr dword [esi - 0x34]
add esp, 4
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fcomp dword [0x497058]
fnstsw ax
test ah, 0x41
jne 0x4575f1
fild dword [esp + 0x20]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fadd dword [esp + 0x18]
call fcn.0048c3f4
mov dword [esp + 0x20], eax
add esi, 0x44
cmp esi, 0xc388a0
jl 0x45757c
cmp dword [0x9df244], ebx
jne 0x4576ec
mov ecx, dword [esp + 0x20]
mov eax, 0x80
cmp ecx, eax
jle 0x457619
mov dword [esp + 0x20], eax
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
add edx, eax
cmp edx, 0xc0
jle 0x457636
mov ecx, 0xc0
sub ecx, eax
mov dword [esp + 0x24], ecx
cmp dword [0xc3f008], ebx
je 0x4576ec
mov edi, dword [esp + 0x34]
lea esi, [edi + edi]
cmp esi, 0xc0
jle 0x45765c
mov edx, 0xc0
sub edx, edi
mov dword [esp + 0x28], edx
mov eax, dword [esp + 0x38]
lea edx, [eax + eax]
cmp edx, 0xc0
jle 0x457676
mov ecx, 0xc0
sub ecx, eax
mov dword [esp + 0x2c], ecx
mov eax, dword [esp + 0x3c]
lea ecx, [eax + eax]
cmp ecx, 0xc0
jle 0x457698
mov edi, dword [esp + 0x3c]
mov eax, 0xc0
sub eax, edi
mov edi, dword [esp + 0x34]
mov dword [esp + 0x30], eax
fld dword [0xc3eff8]
fcomp dword [0x497058]
fnstsw ax
test ah, 0x40
je 0x4576ec
cmp esi, 0x80
jle 0x4576be
mov eax, 0x80
sub eax, edi
mov dword [esp + 0x28], eax
cmp edx, 0x80
jle 0x4576d5
mov eax, dword [esp + 0x38]
mov edx, 0x80
sub edx, eax
mov dword [esp + 0x2c], edx
cmp ecx, 0x80
jle 0x4576ec
mov ecx, dword [esp + 0x3c]
mov eax, 0x80
sub eax, ecx
mov dword [esp + 0x30], eax
cmp dword [0xc3914c], ebx
jne 0x45790d
cmp dword [0xc3b938], ebx
jne 0x45790d
cmp dword [0x9df160], ebx
jne 0x45790d
mov edx, dword [0x9ea9fc]
mov edi, str.progs_flame.mdl
mov ecx, 0x10
xor eax, eax
mov esi, dword [edx + 0x88]
repe cmpsb byte [esi], byte es:[edi]
jne 0x4577b5
mov ecx, dword [0x9df344]
cmp dword [ecx + 8], 0x40000000
jne 0x457753
mov eax, dword [edx + 0xa8]
or eax, ebp
mov dword [edx + 0xa8], eax
mov edx, dword [0x9ea9fc]
mov eax, dword [0x9df344]
cmp dword [eax + 8], 0x40400000
jne 0x4577b5
mov esi, dword [edx + 0xa8]
push 0x3fe66666
or esi, ebp
push 0x60000000
mov dword [edx + 0xa8], esi
mov eax, dword [0x9ea9fc]
mov ecx, dword [eax + 0x58]
mov dword [esp + 0x68], ecx
mov edx, dword [eax + 0x5c]
mov dword [esp + 0x6c], edx
mov ecx, dword [eax + 0x60]
mov dword [esp + 0x70], ecx
lea edx, [esp + 0x68]
fld dword [esp + 0x70]
fadd dword [0x497064]
push edx
push eax
fstp dword [esp + 0x78]
call fcn.0045a5e0
mov edx, dword [0x9ea9fc]
add esp, 0x10
mov esi, dword [edx + 0x88]
mov edi, str.progs_flame2.mdl
mov ecx, 0x11
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x457873
cmp dword [edx + 0x140], 0xc
je 0x457970
mov dword [edx + 0x140], ebx
mov ecx, dword [0x9df344]
cmp dword [ecx + 8], 0x40000000
jne 0x457811
mov eax, dword [0x9ea9fc]
mov ecx, dword [eax + 0xa8]
or ecx, 0x20
mov dword [eax + 0xa8], ecx
mov edx, dword [0x9ea9fc]
mov dword [edx + 0x140], ebx
mov eax, dword [0x9df344]
cmp dword [eax + 8], 0x40400000
jne 0x45786d
mov eax, dword [0x9ea9fc]
push 0x3ff00000
push ebx
mov ecx, dword [eax + 0x58]
mov dword [esp + 0x74], ecx
mov edx, dword [eax + 0x5c]
mov dword [esp + 0x78], edx
mov ecx, dword [eax + 0x60]
mov dword [esp + 0x7c], ecx
lea edx, [esp + 0x74]
fld dword [esp + 0x7c]
fsub dword [0x4973e0]
push edx
fstp dword [esp + 0x80]
mov dword [eax + 0x140], 0xf
mov eax, dword [0x9ea9fc]
push eax
call fcn.0045a5e0
add esp, 0x10
mov edx, dword [0x9ea9fc]
mov esi, dword [edx + 0x88]
mov edi, str.progs_flamebig.mdl
mov ecx, 0x13
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x4578b3
mov ecx, dword [0x9df344]
fld dword [ecx + 8]
fcomp dword [0x497064]
fnstsw ax
test ah, 0x41
jne 0x4578b3
mov eax, dword [edx + 0xa8]
or al, 0x20
mov dword [edx + 0xa8], eax
mov edx, dword [0x9ea9fc]
mov eax, dword [edx + 0x88]
mov edi, str.progs_candle.mdl
mov esi, eax
mov ecx, 0x11
xor ebp, ebp
repe cmpsb byte [esi], byte es:[edi]
je 0x4578dd
mov esi, eax
mov edi, str.progs_flamecan.mdl
mov ecx, 0x13
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x457908
mov ecx, dword [0x9df344]
fld dword [ecx + 8]
fcomp dword [0x497064]
fnstsw ax
test ah, 0x41
jne 0x457908
mov eax, dword [edx + 0xa8]
mov ebp, 0x4000
or eax, ebp
mov dword [edx + 0xa8], eax
jmp 0x45790d
mov ebp, 0x4000
lea edx, [esp + 0x20]
push edx
call fcn.004521f0
add esp, 4
jmp 0x457970
mov eax, dword [ecx + 0x58]
fld dword [0x9df460]
mov dword [0x9ea9f0], eax
mov edx, dword [ecx + 0x5c]
fsub dword [0x9ea9f0]
mov dword [0x9ea9f4], edx
mov eax, dword [ecx + 0x60]
mov dword [0x9ea9f8], eax
fstp dword [0x9ea9a0]
fld dword [0x9df464]
fsub dword [0x9ea9f4]
fstp dword [0x9ea9a4]
fld dword [0x9df468]
fsub dword [0x9ea9f8]
fstp dword [0x9ea9a8]
call fcn.00462620
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x1c]
mov ecx, dword [0xc3c3cc]
inc eax
add edx, 4
cmp eax, ecx
mov dword [esp + 0x50], eax
mov dword [esp + 0x1c], edx
jl 0x457303
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret