Function at 0x443be0
Capabilities:
Parse credit card information
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4d844c
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x22c
push ebx
mov ebx, ecx
mov eax, dword [ebx + 0x1c]
mov eax, dword [eax + 4]
mov eax, dword [eax]
push ebp
xor ebp, ebp
cmp eax, ebp
push esi
push edi
mov dword [esp + 0x2c], ebx
je 0x443c2f
lea esp, [esp]
mov ecx, dword [eax + 8]
mov dword [ecx + 0x188], ebp
mov eax, dword [eax]
cmp eax, ebp
jne 0x443c20
mov ecx, dword [ebx + 0x20]
mov eax, dword [ecx + 4]
mov edi, dword [eax]
cmp edi, ebp
mov dword [esp + 0x68], edi
je 0x443d20
mov esi, dword [edi + 8]
lea edx, [esi + 0x24]
push 0x509098
push edx
call fcn.004c81d0
add esp, 8
test eax, eax
jne 0x443c85
mov eax, dword [esi + 8]
cmp eax, 0x34
je 0x443c85
cmp eax, 0x31
je 0x443c85
cmp eax, 0x33
je 0x443c85
cmp eax, 0x30
je 0x443c85
cmp eax, 0x4c
je 0x443c85
cmp eax, 0x4d
je 0x443c85
cmp eax, 0x4e
jne 0x443d12
push ebp
push 3
mov ecx, esi
call fcn.00419e90
mov edx, dword [eax + 0x1c]
mov edx, dword [edx + 4]
lea ecx, [eax + 0x24]
mov ebp, ecx
mov esi, dword [ebp]
mov edi, dword [ebp + 4]
mov ebp, dword [ebp + 8]
mov dword [esp + 0x84], ebp
fld dword [esp + 0x84]
fsub dword [0x4db9d4]
add edx, 4
mov dword [edx], esi
mov dword [edx + 4], edi
mov edi, dword [esp + 0x68]
fstp dword [esp + 0x84]
mov esi, dword [esp + 0x84]
mov dword [edx + 8], esi
mov eax, dword [eax + 0x20]
xor ebp, ebp
cmp eax, ebp
je 0x443d12
fld dword [ecx + 8]
lea edx, [eax + 0x10]
fsub dword [edx + 8]
fld dword [ecx + 4]
fsub dword [edx + 4]
fld dword [ecx]
fsub dword [edx]
fadd dword [eax + 4]
fstp dword [eax + 4]
fadd dword [eax + 8]
fstp dword [eax + 8]
fadd dword [eax + 0xc]
fstp dword [eax + 0xc]
mov eax, dword [ecx]
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
mov ecx, dword [ecx + 8]
mov dword [edx + 8], ecx
mov edi, dword [edi]
cmp edi, ebp
mov dword [esp + 0x68], edi
jne 0x443c43
mov ecx, dword [ebx + 0xc]
cmp dword [ecx + 0xff8], ebp
je 0x443d7b
cmp dword [ebx + 0xf8], ebp
jne 0x443d7b
cmp dword [ebx + 0xf4], ebp
jne 0x443d7b
fld qword [ebx + 0xd8]
fcomp qword [0x4db388]
fnstsw ax
test ah, 0x41
jne 0x443d7b
mov edx, dword [ecx]
fld qword [ebx + 0xd8]
fsub qword [edx + 0x278]
fst qword [ebx + 0xd8]
fcomp qword [0x4db388]
fnstsw ax
test ah, 5
jp 0x443d7b
mov dword [ebx + 0xd8], ebp
mov dword [ebx + 0xdc], ebp
cmp dword [ebx + 0x28], ebp
je 0x447674
mov eax, dword [ebx + 0x1c]
mov eax, dword [eax + 4]
mov eax, dword [eax]
cmp eax, ebp
je 0x446371
mov ecx, dword [eax]
mov esi, dword [eax + 8]
push 0
mov dword [esp + 0x13c], ecx
push 0xfe
mov ecx, esi
mov dword [ebx + 0x108], 0
call fcn.00419e90
mov dword [esp + 0x18], eax
mov eax, dword [esi + 8]
cmp eax, 0x44
je 0x443dcd
cmp eax, 0x46
jne 0x443e86
cmp byte [esi + 0x170], 1
jne 0x443e86
mov ecx, dword [esi + 0x108]
test ecx, ecx
jne 0x443e86
cmp eax, 0x46
mov ecx, esi
jne 0x443df6
push str.Test
jmp 0x443dfb
push str.Catch
call fcn.00419530
test eax, eax
mov dword [esp + 0x14], eax
je 0x443e86
mov edx, dword [ebx + 0x1c]
mov eax, dword [edx + 4]
mov edi, dword [eax]
test edi, edi
je 0x443e86
mov ebp, dword [edi + 8]
cmp ebp, esi
je 0x443e80
lea eax, [ebp + 0x24]
push 0x5090b4
push eax
call fcn.004c81d0
add esp, 8
test eax, eax
je 0x443e80
mov eax, dword [esp + 0x14]
fld dword [ebp + 0x90]
fsub dword [eax + 0x2c]
fld dword [ebp + 0x8c]
fsub dword [eax + 0x28]
fld dword [ebp + 0x88]
fsub dword [eax + 0x24]
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fld st(3)
fmul st(4)
faddp st(1)
fsqrt
fstp st(3)
fstp st(0)
fstp st(0)
fcomp dword [0x4db390]
fnstsw ax
test ah, 5
jp 0x443e80
push 0
push 0
push esi
mov ecx, ebx
call fcn.0043fd90
mov edi, dword [edi]
test edi, edi
jne 0x443e14
cmp dword [esi + 8], 0x25
jne 0x443eac
mov ecx, dword [esp + 0x18]
fld dword [ecx + 0x40]
fcomp dword [0x4db2b4]
fnstsw ax
test ah, 0x41
jne 0x443eac
push 0
push 0
push esi
mov ecx, ebx
call fcn.0043fd90
cmp dword [esi + 8], 0x2c
jne 0x4440b6
push 3
mov ecx, esi
call fcn.00418ce0
mov edx, dword [esp + 0x18]
fld dword [edx + 0x40]
mov ebp, eax
fcomp dword [0x4db2b4]
fnstsw ax
test ah, 0x41
jne 0x443fe6
fld dword [esi + 0xf4]
call fcn.004c7c20
mov eax, dword [eax*4 + 0x508a58]
mov ecx, dword [ebx + 0xc]
mov ecx, dword [ecx + 0x103c]
push eax
call fcn.00420f90
fld dword [esi + 0xf4]
call fcn.004c7c20
mov edx, dword [ebx + 0xc]
mov dword [ebx + 0xe8], eax
mov eax, dword [edx]
mov ecx, dword [eax + 0x288]
mov edx, dword [ecx + 8]
mov eax, dword [edx + 0xc]
mov ecx, dword [eax + 0xc]
push str.power_gravity_tube_on
call fcn.00463eb0
push 2
mov ecx, esi
mov edi, eax
call fcn.00418ce0
push 0
push 0
push esi
mov ecx, ebx
mov dword [eax + 0xa8], edi
call fcn.0043fd90
test ebp, ebp
je 0x4440b6
fld qword [esi + 0x138]
fcomp qword [0x4db388]
fnstsw ax
test ah, 0x44
jp 0x444068
mov ecx, dword [esi + 0x12c]
fld qword [ecx]
mov cl, byte [0x513930]
mov eax, 1
test al, cl
fstp qword [esi + 0x138]
mov dword [ebp + 0x118], eax
mov dword [ebp + 0xc4], 0xbf800000
mov dword [ebp + 0xc0], 0xbe4ccccd
jne 0x443fd2
or dword [0x513930], eax
mov edx, dword [ebx + 0xc]
mov eax, dword [edx]
mov ecx, dword [eax + 0xfc]
push str.SOUND_FX_GRAVITATION
mov dword [esp + 0x248], 0
call fcn.00453be0
mov dword [0x51392c], eax
mov dword [esp + 0x244], 0xffffffff
mov ecx, dword [0x51392c]
push 0
push 0xfffffffffffffffe
call fcn.00469220
jmp 0x444068
mov ecx, dword [ebx + 0xe4]
mov edx, dword [ecx*4 + 0x508a58]
mov eax, dword [ebx + 0xc]
mov ecx, dword [eax + 0x103c]
push edx
call fcn.00420f90
mov ecx, dword [ebx + 0xe4]
mov edx, dword [ebx + 0xc]
mov dword [ebx + 0xe8], ecx
mov eax, dword [edx]
mov ecx, dword [eax + 0x288]
mov edx, dword [ecx + 8]
mov eax, dword [edx + 0xc]
mov ecx, dword [eax + 0xc]
push str.power_gravity_tube_off
call fcn.00463eb0
push 2
mov ecx, esi
mov edi, eax
call fcn.00418ce0
test ebp, ebp
mov dword [eax + 0xa8], edi
je 0x4440b6
fld qword [esi + 0x138]
fcomp qword [0x4db388]
fnstsw ax
test ah, 0x41
jne 0x444068
xor eax, eax
mov dword [esi + 0x138], eax
mov dword [esi + 0x13c], eax
mov dword [ebp + 0x118], eax
fld qword [esi + 0x138]
fcomp qword [0x4db388]
fnstsw ax
test ah, 0x41
jne 0x4440b6
mov ecx, dword [esi + 0x12c]
fld qword [ecx]
fsub qword [esi + 0x138]
fcom qword [0x4db368]
fnstsw ax
test ah, 0x41
jne 0x4440a4
fstp st(0)
mov dword [ebp + 0x118], 0
jmp 0x4440b6
fmul qword [0x4dbb20]
fst dword [ebp + 0x148]
fstp dword [ebp + 0x14c]
lea eax, [esi + 0x24]
push 0x509108
push eax
call fcn.004036a0
add esp, 8
test eax, eax
je 0x44414f
test byte [0x513930], 2
mov edi, dword [esi + 0x80]
jne 0x444116
or dword [0x513930], 2
mov edx, dword [ebx + 0xc]
mov eax, dword [edx]
mov ecx, dword [eax + 0xfc]
push str.SOUND_FX_FUZE
mov dword [esp + 0x248], 1
call fcn.00453be0
or ebp, 0xffffffff
mov dword [0x513928], eax
mov dword [esp + 0x244], ebp
jmp 0x44411e
mov eax, dword [0x513928]
or ebp, 0xffffffff
mov ecx, dword [edi + 4]
mov edx, dword [ecx + 8]
test edx, edx
je 0x44413d
cmp dword [esi + 0x14], ebp
jne 0x44414f
push 0
push 0xfffffffffffffffe
mov ecx, eax
call fcn.00469220
mov dword [esi + 0x14], eax
jmp 0x44414f
mov ecx, dword [esi + 0x14]
cmp ecx, ebp
je 0x44414f
push ecx
mov ecx, eax
call fcn.00468f60
mov dword [esi + 0x14], ebp
mov eax, dword [esi + 8]
cmp eax, 0x2e
jne 0x4441d0
fld dword [esi + 0xf4]
fcomp dword [0x4fd1ec]
fnstsw ax
test ah, 0x44
jnp 0x4444b7
push 0
push 3
mov ecx, esi
call fcn.00419e90
add eax, 0x30
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov dword [esp + 0x7c], edx
mov edx, dword [eax + 8]
lea eax, [esp + 0x1b4]
mov dword [esp + 0x80], ecx
push eax
lea ecx, [esp + 0x80]
mov dword [esp + 0x88], edx
call fcn.00413010
fld dword [esp + 0x80]
fcomp dword [0x4dbc48]
fnstsw ax
test ah, 5
jp 0x4444b7
mov ecx, dword [ebx + 0xc]
push esi
call fcn.0042f620
jmp 0x4444b7
cmp eax, 0x3b
jne 0x44430c
cmp dword [esi + 0xf4], 0x3f800000
jne 0x4444b7
push 0
push 4
mov ecx, esi
call fcn.00419e90
mov ebp, eax
fld dword [ebp + 0x40]
mov eax, dword [ebp + 0x20]
fmul dword [0x4db298]
mov ecx, dword [eax]
fadd dword [ecx + 0x30]
fst dword [ecx + 0x34]
fld st(0)
fmulp st(1)
fst dword [ecx + 0x3c]
fsub dword [ecx + 0x38]
fdivr qword [0x4db398]
fstp dword [ecx + 0x40]
mov edx, dword [esi + 0x130]
fld qword [edx]
fmul qword [0x4dbc40]
fsubr dword [ebp + 0x40]
fst dword [ebp + 0x40]
fcomp dword [0x4fd1ec]
fnstsw ax
test ah, 0x41
jp 0x444268
fld dword [ecx + 0x30]
fst dword [ecx + 0x34]
fld st(0)
fmulp st(1)
fst dword [ecx + 0x3c]
fsub dword [ecx + 0x38]
fdivr qword [0x4db398]
fstp dword [ecx + 0x40]
mov dword [ebp + 0x40], 0
mov dword [esi + 0xf4], 0x40000000
push 0
mov ecx, esi
call fcn.00418ce0
fld dword [ebp + 0x40]
fmul dword [0x4db9c4]
mov edi, eax
fsubr dword [0x4db294]
fst dword [esp + 0x18]
fcomp dword [0x4db294]
fnstsw ax
test ah, 5
jp 0x4442cc
fld dword [esp + 0x18]
call fcn.004c7c20
fld dword [esp + 0x18]
fadd dword [0x4db294]
mov dword [edi + 0x154], eax
call fcn.004c7c20
fld dword [esp + 0x18]
fld qword [0x4db398]
mov dword [edi + 0x158], eax
call fcn.004c78aa
fstp dword [edi + 0x150]
push 0
mov ecx, esi
call fcn.00418aa0
fld dword [eax + 0xf4]
fmul dword [ebp + 0x40]
fmul dword [0x4db9c4]
fstp dword [eax + 0xd8]
mov eax, dword [eax + 0x84]
test eax, eax
je 0x4444b7
push eax
mov eax, dword [ebx + 0xc]
mov ecx, dword [eax + 0x103c]
call fcn.00421a60
jmp 0x4444b7
cmp eax, 3
jne 0x44445f
cmp dword [esi + 0xf4], 0x3f800000
jne 0x4444b7
push 0
mov ecx, esi
call fcn.00418aa0
mov ecx, dword [esi + 0x84]
mov edi, eax
mov ebp, dword [edi + 0x84]
push 0
mov dword [esp + 0x1c], ecx
push 0
mov ecx, ebp
call fcn.004206d0
push 0x509124
mov ecx, edi
call fcn.00419530
push 0
mov ecx, edi
mov dword [esp + 0x18], eax
call fcn.00418ce0
fld dword [eax + 0xe0]
fcomp dword [0x4fd1ec]
mov edx, dword [esp + 0x14]
mov ecx, dword [ebx + 0xc]
mov ecx, dword [ecx + 0x103c]
add edx, 0x24
fnstsw ax
test ah, 0x41
mov eax, dword [esp + 0x18]
jne 0x444394
push 0
push 0xbf490fdb
jmp 0x44439b
push 0x3f490fdb
push 0
push 1
push 0x3dcccccd
push edx
push eax
push ebp
call fcn.00420fc0
push str.Ammo
mov ecx, edi
call fcn.00419530
add eax, 0x24
push eax
lea edx, [esp + 0x17c]
push edx
mov ecx, ebp
mov dword [esp + 0x180], 0
mov dword [esp + 0x184], 0x42c80000
mov dword [esp + 0x188], 0
call fcn.0041fa20
mov eax, dword [esi + 0x12c]
fld qword [eax]
push 0
push 0
fstp qword [esi + 0x138]
push esi
mov ecx, ebx
mov dword [esi + 0xf4], 0x40000000
call fcn.0043fd90
test byte [0x513930], 4
jne 0x44444e
or dword [0x513930], 4
mov ecx, dword [ebx + 0xc]
mov edx, dword [ecx]
mov ecx, dword [edx + 0xfc]
push str.SOUND_FX_CATAPULT
mov dword [esp + 0x248], 2
call fcn.00453be0
mov dword [0x513924], eax
mov dword [esp + 0x244], 0xffffffff
mov ecx, dword [0x513924]
push 0
push 0xfffffffffffffffe
call fcn.00469220
jmp 0x4444b7
cmp eax, 0x2d
jne 0x4444b7
push 0
mov ecx, esi
call fcn.00418aa0
mov ebp, dword [eax + 0x84]
push str.Push
mov ecx, eax
call fcn.00419530
test ebp, ebp
mov dword [esp + 0x190], 0
mov dword [esp + 0x194], 0x3c23d70a
mov dword [esp + 0x198], 0
je 0x4444b7
add eax, 0x24
push eax
lea eax, [esp + 0x194]
push eax
mov ecx, ebp
call fcn.0041fa20
cmp dword [esi + 8], 0x13
jne 0x4445f8
xor edi, edi
push edi
push 1
mov ecx, esi
call fcn.00419e90
push edi
push 3
mov ecx, esi
mov ebp, eax
call fcn.00419e90
mov ecx, eax
mov edx, dword [ecx + 0x40]
mov dword [ebp + 0x40], edx
mov eax, dword [esi + 0x130]
fld qword [eax]
fmul qword [0x4dbb00]
fsubr dword [ecx + 0x40]
fst dword [ecx + 0x40]
fcomp dword [0x4fd1ec]
fnstsw ax
test ah, 5
jp 0x444505
mov dword [ecx + 0x40], edi
fld dword [ecx + 0x40]
fcomp dword [0x4fd1ec]
fnstsw ax
test ah, 0x41
jne 0x444529
mov edx, dword [esi + 0x130]
fld qword [edx]
fmul qword [0x4dbc38]
fsubr dword [ecx + 0x40]
fstp dword [ecx + 0x40]
fld dword [ecx + 0x40]
fcomp dword [0x4fd1ec]
fnstsw ax
test ah, 5
jp 0x44454d
mov eax, dword [esi + 0x130]
fld qword [eax]
fmul qword [0x4dbc38]
fadd dword [ecx + 0x40]
fstp dword [ecx + 0x40]
fld dword [ecx + 0x40]
fcomp dword [0x4db294]
fnstsw ax
test ah, 0x41
jne 0x444567
push edi
push edi
push esi
mov ecx, ebx
call fcn.0043fd90
mov edx, dword [ebp + 0x3c]
cmp edx, edi
je 0x4445a7
mov ecx, dword [ebx + 0x1c]
mov eax, dword [ecx + 4]
mov eax, dword [eax]
cmp eax, edi
je 0x44458f
lea ebx, [ebx]
mov ecx, dword [eax + 8]
mov dword [ecx + 0x188], edi
mov eax, dword [eax]
cmp eax, edi
jne 0x444580
push edx
push ebp
mov ecx, ebx
mov dword [esi + 0x188], 2
call fcn.00440780
jmp 0x445679
mov edx, dword [esi + 0x20]
mov eax, dword [edx + 4]
cmp dword [eax + 8], edi
push edi
jne 0x4445c6
lea ecx, [ebp + 0x30]
push ecx
mov ecx, dword [ebx + 0xc]
lea edx, [ebp + 0x24]
push edx
push esi
call fcn.00428630
jmp 0x4445cf
mov ecx, esi
call fcn.00418d70
mov eax, dword [eax]
fld dword [ebp + 0x40]
mov ecx, dword [eax + 4]
fmul dword [0x4db6e4]
fstp dword [ecx + 0x1040]
mov eax, dword [eax + 4]
fld dword [ebp + 0x40]
fmul dword [0x4db390]
fstp dword [eax + 0x1050]
jmp 0x445679
lea eax, [esi + 0x24]
push 0x509154
push eax
call fcn.004c81d0
add esp, 8
test eax, eax
je 0x444af3
push 0
push 3
mov ecx, esi
call fcn.00419e90
mov ebp, eax
mov eax, dword [ebp + 0x18]
mov ecx, dword [eax + 0x11c]
fld dword [ecx + 0xf4]
mov dword [esp + 0x18], ebp
call fcn.004c7c20
test eax, eax
mov dword [esp + 0x30], 0
je 0x445679
mov edx, dword [ebx + 0x1c]
mov eax, dword [edx + 4]
mov eax, dword [eax]
test eax, eax
mov ebp, dword [ebp + 0x20]
mov dword [esp + 0x150], eax
je 0x445679
mov eax, dword [esp + 0x150]
mov edi, dword [eax + 8]
mov eax, dword [edi + 8]
cmp eax, 0x13
je 0x4449bf
cmp eax, 0x35
je 0x4449bf
cmp eax, 0x31
je 0x444919
cmp eax, 0x33
je 0x444919
cmp eax, 0x30
je 0x444919
cmp eax, 0x4c
je 0x444919
cmp eax, 0x4d
je 0x444919
cmp eax, 0x4e
je 0x444919
lea eax, [edi + 0x24]
push 0x509164
push eax
call fcn.004c81d0
add esp, 8
test eax, eax
jne 0x444919
lea eax, [edi + 0x24]
push 0x50917c
push eax
call fcn.004036a0
add esp, 8
test eax, eax
je 0x444728
mov ecx, dword [esi + 0x12c]
fld qword [ecx]
fsub qword [esi + 0x138]
fcomp qword [0x4db6e8]
fnstsw ax
test ah, 0x41
jne 0x444abc
mov edx, dword [esp + 0x18]
add edx, 0x24
push edx
push esi
push edi
mov ecx, ebx
call fcn.004432c0
test eax, eax
je 0x444abc
mov dword [esp + 0x30], 1
jmp 0x444abc
mov eax, dword [edi + 8]
cmp eax, 0x32
jne 0x444887
push 1
mov ecx, edi
call fcn.00418aa0
push 0
mov ecx, edi
mov dword [esp + 0x18], eax
call fcn.00418aa0
test ebp, ebp
mov dword [esp + 0x5c], eax
je 0x444abc
lea eax, [esp + 0x220]
push eax
lea ecx, [esp + 0x158]
push ecx
mov ecx, dword [esp + 0x1c]
push 0
push 3
call fcn.00419e90
add eax, 0x24
push eax
mov ecx, ebp
call fcn.00407330
test eax, eax
je 0x444abc
push 0
push 3
mov ecx, edi
call fcn.00419e90
mov edx, dword [edi + 0x130]
fld qword [edx]
mov ecx, dword [esp + 0x14]
fmul dword [esp + 0x154]
mov ebx, eax
push 0
fadd dword [ebx + 0x40]
fstp dword [ebx + 0x40]
call fcn.00418ce0
mov eax, dword [eax + 0xa8]
fld dword [ebx + 0x40]
mov eax, dword [eax]
fmul dword [0x4db390]
mov eax, dword [eax]
fld dword [eax + 0x38]
mov dword [esp + 0x8c], eax
fld st(1)
fcomp dword [0x4db294]
fnstsw ax
test ah, 5
jp 0x444804
mov eax, dword [edi + 0x130]
fld qword [eax]
fmul dword [0x4db9d4]
fsubp st(1)
fcom dword [0x4db9c4]
fnstsw ax
test ah, 5
jp 0x444804
fstp st(0)
fld dword [0x4db9c4]
mov ecx, dword [esp + 0x5c]
fld dword [ecx + 0xe8]
mov ebx, dword [esp + 0x8c]
fabs
fcomp qword [0x4db398]
fnstsw ax
test ah, 5
jp 0x44482f
fld st(0)
fstp dword [ebx + 0x38]
fst dword [ebx + 0x4c]
fst dword [ebx + 0x60]
fld st(1)
fcomp dword [0x4db294]
fnstsw ax
test ah, 1
jne 0x444879
fcomp dword [0x4dbc30]
fnstsw ax
test ah, 1
jne 0x44487b
mov ecx, dword [esp + 0x2c]
fstp st(0)
push 0
push 0
push edi
mov dword [esp + 0x148], 0x3f800000
call fcn.0043fd90
fld dword [esp + 0x13c]
fstp dword [ebx + 0x74]
mov ebx, dword [esp + 0x2c]
jmp 0x444abc
fstp st(0)
fstp dword [ebx + 0x74]
mov ebx, dword [esp + 0x2c]
jmp 0x444abc
cmp eax, 0x47
jne 0x444abc
mov eax, dword [edi + 0x10]
test eax, eax
jne 0x444abc
mov eax, dword [esp + 0x18]
fld dword [eax + 0x2c]
mov edx, dword [eax + 0x24]
fld dword [eax + 0x28]
lea eax, [esp + 0x19c]
fadd dword [0x4dbae8]
push eax
lea ecx, [esp + 0x188]
push ecx
fstp dword [esp + 0x190]
push 0
mov ecx, edi
fstp dword [esp + 0x198]
mov dword [esp + 0x190], edx
mov dword [esp + 0x1a8], 0
mov dword [esp + 0x1ac], 0
mov dword [esp + 0x1b0], 0x3f800000
call fcn.00418ce0
mov ecx, eax
call fcn.004012c0
test eax, eax
je 0x444abc
push edi
mov ecx, ebx
call fcn.00443410
jmp 0x444abc
fld dword [edi + 0xf4]
fcomp dword [0x4fd1ec]
fnstsw ax
test ah, 0x44
jp 0x444abc
lea edx, [esp + 0x22c]
push edx
lea eax, [esp + 0x128]
push eax
push 0
push 3
mov ecx, edi
call fcn.00419e90
add eax, 0x24
push eax
mov ecx, ebp
call fcn.00407330
test eax, eax
je 0x444abc
fld dword [esp + 0x124]
fcomp dword [0x4dbc2c]
fnstsw ax
test ah, 0x41
jne 0x444abc
push edi
mov ecx, ebx
call fcn.0043b1c0
lea ecx, [edi + 0x24]
push 0x509170
push ecx
call fcn.004c81d0
add esp, 8
test eax, eax
je 0x444abc
fld dword [edi + 0xf8]
fcomp dword [edi + 0xf4]
fnstsw ax
test ah, 0x44
jnp 0x444abc
push 0
push 0
push edi
mov ecx, ebx
call fcn.0043fd90
jmp 0x444abc
test ebp, ebp
je 0x444abc
push 0
push 3
mov ecx, edi
call fcn.00419e90
add eax, 0x24
mov edx, dword [eax]
mov dword [esp + 0x16c], edx
mov ecx, dword [eax + 4]
mov dword [esp + 0x170], ecx
mov edx, dword [eax + 8]
mov eax, dword [esp + 0x18]
fld dword [eax + 0x2c]
add eax, 0x24
fsub dword [ebp + 0x18]
mov dword [esp + 0x174], edx
fld dword [eax + 4]
fsub dword [ebp + 0x14]
fld dword [eax]
fsub dword [ebp + 0x10]
fadd dword [ebp + 4]
fstp dword [ebp + 4]
fadd dword [ebp + 8]
fstp dword [ebp + 8]
fadd dword [ebp + 0xc]
fstp dword [ebp + 0xc]
mov ecx, dword [eax]
mov dword [ebp + 0x10], ecx
mov edx, dword [eax + 4]
mov dword [ebp + 0x14], edx
mov eax, dword [eax + 8]
lea ecx, [esp + 0x1e4]
push ecx
lea edx, [esp + 0x134]
mov dword [ebp + 0x18], eax
push edx
lea eax, [esp + 0x174]
push eax
mov ecx, ebp
call fcn.00407330
test eax, eax
je 0x444abc
push 0
push 3
mov ecx, edi
call fcn.00419e90
push 0
push 3
mov ecx, esi
mov dword [esp + 0x1c], eax
call fcn.00419e90
fld dword [esp + 0x130]
fmul dword [0x4db438]
mov ecx, dword [esp + 0x14]
fld st(0)
fstp dword [ecx + 0x40]
fcomp dword [0x4db438]
fnstsw ax
test ah, 0x41
jne 0x444a96
mov edx, ecx
mov dword [edx + 0x40], 0x41200000
cmp dword [edi + 8], 0x35
mov dword [edi + 0x188], 1
jne 0x444abc
push 0x509160
mov ecx, edi
call fcn.00419530
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0x40]
mov dword [eax + 0x40], edx
mov eax, dword [esp + 0x150]
mov eax, dword [eax]
test eax, eax
mov dword [esp + 0x150], eax
jne 0x444660
mov eax, dword [esp + 0x30]
test eax, eax
je 0x445679
mov ecx, dword [esi + 0x12c]
fld qword [ecx]
fstp qword [esi + 0x138]
jmp 0x445679
mov ecx, dword [esi + 8]
cmp ecx, 0x34
jne 0x444d90
push 0
push 3
mov ecx, esi
call fcn.00419e90
mov edx, dword [eax + 0x18]
mov dword [esp + 0x18], eax
mov eax, dword [edx + 0x11c]
fld dword [eax + 0xf4]
call fcn.004c7c20
test eax, eax
je 0x445679
mov ecx, dword [ebx + 0x1c]
mov eax, dword [ecx + 4]
mov eax, dword [eax]
test eax, eax
mov dword [esp + 0x12c], eax
je 0x445679
mov edx, dword [esp + 0x12c]
mov edi, dword [edx + 8]
push 0
push 3
mov ecx, edi
call fcn.00419e90
mov ebp, eax
cmp dword [edi + 8], 0x35
jne 0x444b8b
mov eax, dword [esp + 0x18]
push ebp
push eax
mov ecx, ebx
call fcn.0043a040
test eax, eax
je 0x444c66
push 0x509188
mov ecx, edi
call fcn.00419530
mov dword [eax + 0x40], 0x41200000
jmp 0x444c66
lea ecx, [edi + 0x24]
push 0x50918c
push ecx
call fcn.004c81d0
add esp, 8
test eax, eax
je 0x444bf9
fld dword [edi + 0xf4]
call fcn.004c7c20
test eax, eax
jne 0x444c66
mov edx, dword [esp + 0x18]
push ebp
push edx
mov ecx, ebx
call fcn.0043a040
test eax, eax
je 0x444c66
mov ecx, dword [ebx + 0xc]
push edi
call fcn.0042f620
fld dword [edi + 0xf8]
fcomp dword [edi + 0xf4]
mov dword [edi + 0x10], 0
fnstsw ax
test ah, 0x44
jnp 0x444c66
push 0
push 0
push edi
mov ecx, ebx
call fcn.0043fd90
jmp 0x444c66
mov eax, dword [edi + 8]
cmp eax, 0x31
je 0x444c1a
cmp eax, 0x33
je 0x444c1a
cmp eax, 0x30
je 0x444c1a
cmp eax, 0x4c
je 0x444c1a
cmp eax, 0x4d
je 0x444c1a
cmp eax, 0x4e
jne 0x444c66
fld dword [edi + 0xf4]
call fcn.004c7c20
test eax, eax
jne 0x444c66
mov eax, dword [esp + 0x18]
push ebp
push eax
mov ecx, ebx
call fcn.0043a040
test eax, eax
je 0x444c66
mov ebp, dword [ebp + 0x1c]
mov ebp, dword [ebp + 4]
mov eax, 1
mov dword [ebp + 0x1034], eax
mov ecx, dword [edi + 0x12c]
mov dword [edi + 0xf4], 0x3f800000
mov dword [edi + 0x10], eax
fld qword [ecx]
fstp qword [edi + 0x138]
lea edx, [edi + 0x24]
push 0x509198
push edx
call fcn.004036a0
add esp, 8
test eax, eax
je 0x444cd6
mov eax, dword [esp + 0x18]
fld dword [eax + 0x30]
lea ecx, [eax + 0x24]
mov edx, dword [ecx]
fmul dword [0x4dbae8]
mov dword [esp + 0x140], edx
mov edx, dword [ecx + 4]
mov ecx, dword [ecx + 8]
fadd dword [esp + 0x140]
mov dword [esp + 0x144], edx
lea edx, [esp + 0x140]
push edx
fstp dword [esp + 0x144]
push esi
mov dword [esp + 0x150], ecx
push edi
mov ecx, ebx
call fcn.004432c0
mov dword [ebx + 0x108], 1
jmp 0x444d73
cmp dword [edi + 8], 0x47
jne 0x444d73
mov eax, dword [edi + 0x10]
test eax, eax
jne 0x444d73
mov eax, dword [esp + 0x18]
fld dword [eax + 0x30]
lea ecx, [eax + 0x24]
mov edx, dword [ecx]
fmul dword [0x4db290]
mov dword [esp + 0xc0], edx
mov edx, dword [ecx + 4]
mov ecx, dword [ecx + 8]
fadd dword [esp + 0xc0]
mov dword [esp + 0xc4], edx
lea edx, [esp + 0x160]
push edx
fstp dword [esp + 0xc4]
lea eax, [esp + 0xc4]
push eax
mov dword [esp + 0xd0], ecx
push 0
mov ecx, edi
mov dword [esp + 0x16c], 0
mov dword [esp + 0x170], 0
mov dword [esp + 0x174], 0x3f800000
call fcn.00418ce0
mov ecx, eax
call fcn.004012c0
test eax, eax
je 0x444d73
push edi
mov ecx, ebx
call fcn.00443410
mov ecx, dword [esp + 0x12c]
mov eax, dword [ecx]
test eax, eax
mov dword [esp + 0x12c], eax
jne 0x444b41
jmp 0x445679
cmp ecx, 0x31
je 0x445094
cmp ecx, 0x33
je 0x445094
cmp ecx, 0x30
je 0x445094
cmp ecx, 0x39
je 0x445094
cmp ecx, 0x4c
je 0x445094
cmp ecx, 0x4d
je 0x445094
cmp ecx, 0x4e
je 0x445094
cmp ecx, 0x3a
je 0x444de2
cmp ecx, 0x3b
je 0x444de2
cmp ecx, 0x3d
jne 0x445679
push 4
mov ecx, esi
mov dword [esp + 0x1c], 0
call fcn.00419380
test eax, eax
jle 0x445679
jmp 0x444e00
mov edx, dword [esp + 0x18]
push edx
push 4
mov ecx, esi
call fcn.00419e90
mov ebp, dword [esp + 0x2c]
mov ebx, eax
mov eax, dword [ebx + 0x20]
mov edi, dword [eax]
cmp dword [esi + 8], 0x3b
mov dword [esp + 0x30], ebx
mov dword [esp + 0x14], edi
jne 0x444e43
fld dword [ebx + 0x40]
push ecx
fmul dword [0x4dbc28]
mov ecx, dword [ebp + 0xc]
mov ecx, dword [ecx + 0x103c]
fstp dword [esp]
push edi
call fcn.00421790
cmp dword [esi + 8], 0x3d
jne 0x444e65
fld dword [ebx + 0x40]
mov edx, dword [ebp + 0xc]
fmul dword [0x4dbc28]
push ecx
mov ecx, dword [edx + 0x103c]
fstp dword [esp]
push edi
call fcn.00421790
cmp dword [esi + 8], 0x3a
jne 0x444eb8
fld dword [ebx + 0x40]
mov eax, dword [ebp + 0xc]
fmul dword [0x4dbae4]
push ecx
mov ecx, dword [eax + 0x103c]
fabs
fstp dword [esp]
push edi
call fcn.00421790
push 0
push 0x509234
mov ecx, esi
call fcn.00418b30
fld dword [eax + 0xe8]
fabs
fcomp qword [0x4dbc20]
fnstsw ax
test ah, 0x41
jne 0x444eb8
push 0
push 0
push esi
mov ecx, ebp
call fcn.0043fd90
mov ecx, dword [ebp + 0x1c]
mov eax, dword [ecx + 4]
mov eax, dword [eax]
test eax, eax
mov dword [esp + 0x15c], eax
je 0x444fe2
jmp 0x444ee0
mov ebx, dword [esp + 0x30]
jmp 0x444ee0
mov edx, dword [esp + 0x15c]
mov ebp, dword [edx + 8]
cmp ebp, esi
je 0x444fca
cmp dword [ebp + 8], 0x3a
jne 0x445005
test edi, edi
je 0x444fca
push 0
push 4
mov ecx, ebp
call fcn.00419e90
mov ebx, eax
lea eax, [esp + 0x208]
push eax
lea ecx, [esp + 0xbc]
push ecx
mov ecx, dword [esp + 0x1c]
lea edx, [ebx + 0x24]
push edx
call fcn.00407330
test eax, eax
je 0x444fc6
fld dword [esp + 0xb8]
mov eax, dword [esp + 0x30]
fmul dword [eax + 0x40]
push 0
push 0x509248
mov ecx, ebp
fmul dword [0x4dbc30]
fstp dword [ebx + 0x40]
call fcn.00418b30
fld dword [ebp + 0x10c]
mov edi, eax
fmul dword [esi + 0x10c]
mov ecx, dword [edi + 0x130]
push 0
push 0x50925c
fmul dword [ebx + 0x40]
fchs
fsub dword [edi + 0xe8]
fmul qword [ecx]
mov ecx, ebp
fadd dword [edi + 0xe8]
fstp dword [edi + 0xe8]
call fcn.00418b30
fld dword [edi + 0xe8]
push 0
fchs
push 0xff
mov ecx, eax
fstp dword [eax + 0xf0]
call fcn.00419e90
mov ecx, dword [esp + 0x2c]
push eax
call fcn.00440190
mov dword [ebp + 0x188], 2
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x15c]
mov eax, dword [eax]
test eax, eax
mov dword [esp + 0x15c], eax
jne 0x444ed1
mov edi, dword [esp + 0x18]
inc edi
push 4
mov ecx, esi
mov dword [esp + 0x1c], edi
call fcn.00419380
cmp edi, eax
jl 0x444e00
mov ebx, dword [esp + 0x2c]
jmp 0x445679
lea edx, [ebp + 0x24]
push 0x509270
push edx
call fcn.004c81d0
add esp, 8
test eax, eax
je 0x444fca
test edi, edi
je 0x444fca
fld dword [ebp + 0xf4]
fcomp dword [0x4fd1ec]
fnstsw ax
test ah, 0x44
jnp 0x444fca
push 0
push 3
mov ecx, ebp
call fcn.00419e90
lea ecx, [esp + 0x1f0]
push ecx
lea edx, [esp + 0x68]
push edx
add eax, 0x24
push eax
mov ecx, edi
call fcn.00407330
test eax, eax
je 0x444fca
fld dword [esp + 0x64]
fmul dword [ebx + 0x40]
fabs
fcomp dword [0x4dba14]
fnstsw ax
test ah, 0x41
jne 0x444fca
mov ebx, dword [esp + 0x2c]
mov ecx, dword [ebx + 0xc]
push ebp
call fcn.0042f620
push 0
push 0
push ebp
mov ecx, ebx
call fcn.0043fd90
jmp 0x444fca
mov eax, dword [esi + 0xf4]
mov edi, 0x3f800000
cmp eax, edi
jne 0x4453a9
cmp ecx, 0x4c
je 0x445357
cmp ecx, 0x4d
je 0x445357
cmp ecx, 0x4e
je 0x445357
mov edx, dword [esi + 0x12c]
fld qword [edx]
fsub qword [esi + 0x138]
fcomp qword [0x4dba68]
fnstsw ax
test ah, 0x41
jne 0x445679
cmp ecx, 0x31
jne 0x445248
push 0
mov ecx, esi
call fcn.00418aa0
push 1
mov ecx, esi
mov ebp, eax
call fcn.00418aa0
push 0x5091a4
mov ecx, ebp
mov edi, eax
call fcn.00419530
add eax, 0x30
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x70], ecx
lea ecx, [esp + 0x1b4]
push ecx
lea ecx, [esp + 0x74]
mov dword [esp + 0x78], edx
mov dword [esp + 0x7c], eax
call fcn.00413010
push 0x3f4ccccd
lea edx, [esp + 0x200]
push edx
lea ecx, [esp + 0x78]
call fcn.00403660
fld dword [esp + 0x78]
fadd dword [edi + 0x90]
lea eax, [edi + 0xa0]
fld dword [esp + 0x74]
push 0
fadd dword [edi + 0x8c]
push 0
fld dword [esp + 0x78]
push esi
fadd dword [edi + 0x88]
mov dword [edi + 0xf4], 0x3f800000
mov dword [edi + 0xfc], 0
fstp dword [esp + 0xe4]
mov ecx, dword [esp + 0xe4]
mov dword [eax], ecx
fstp dword [esp + 0xe8]
mov edx, dword [esp + 0xe8]
mov dword [eax + 4], edx
fstp dword [esp + 0xec]
mov ecx, dword [esp + 0xec]
mov dword [eax + 8], ecx
mov ecx, ebx
call fcn.0043fd90
test byte [0x513930], 8
jne 0x445200
or dword [0x513930], 8
mov edx, dword [ebx + 0xc]
mov eax, dword [edx]
mov ecx, dword [eax + 0xfc]
push str.SOUND_FX_CANNON
mov dword [esp + 0x248], 3
call fcn.00453be0
mov dword [0x513920], eax
mov dword [esp + 0x244], 0xffffffff
mov ecx, dword [0x513920]
push 0
push 0xfffffffffffffffe
call fcn.00469220
push 0x5091c0
mov ecx, ebp
call fcn.00419530
mov ecx, dword [ebx + 0xc]
mov edi, eax
push edi
call fcn.00428f60
mov ecx, dword [esi + 0x130]
mov edi, dword [edi + 0x1c]
push ecx
mov ecx, dword [edi]
call fcn.00465140
mov edi, dword [edi]
mov dword [edi + 0x1034], 0
jmp 0x44532d
cmp ecx, 0x33
jne 0x445320
xor ebp, ebp
push ebp
mov ecx, esi
call fcn.00418aa0
mov edi, eax
push 0x5091c8
mov ecx, edi
call fcn.00419530
push 0x5091d4
mov ecx, edi
mov dword [edi + 0xf4], 0x3f800000
mov dword [edi + 0xfc], ebp
mov dword [edi + 0x100], ebp
call fcn.00419530
mov ecx, dword [ebx + 0xc]
push eax
call fcn.00428400
mov eax, dword [eax + 4]
mov dword [eax + 0x1034], 1
mov ebp, dword [edi + 0x84]
test ebp, ebp
je 0x4452c1
push 0
push 0
mov ecx, ebp
call fcn.004206d0
push 0
push 0
mov ecx, ebp
call fcn.0041ef80
mov edx, dword [edi + 0x12c]
fld qword [edx]
mov al, byte [0x513930]
test al, 0x10
fstp qword [edi + 0x138]
jne 0x44530f
or dword [0x513930], 0x10
mov eax, dword [ebx + 0xc]
mov ecx, dword [eax]
mov ecx, dword [ecx + 0xfc]
push str.SOUND_FX_ROCKET_FIRE
mov dword [esp + 0x248], 4
call fcn.00453be0
mov dword [0x51391c], eax
mov dword [esp + 0x244], 0xffffffff
mov ecx, dword [0x51391c]
push 0
push 0xfffffffffffffffe
call fcn.00469220
jmp 0x44532d
cmp ecx, 0x30
jne 0x44532d
push esi
mov ecx, ebx
call fcn.00443750
push 0
push 3
mov ecx, esi
call fcn.00419e90
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + 4]
mov dword [eax + 0x1034], 0
mov dword [esi + 0xf4], 0x40000000
jmp 0x445679
fld qword [0x4db388]
add ecx, 0xffffffb4
sub ecx, 0
je 0x44537f
dec ecx
je 0x445375
dec ecx
jne 0x445387
fstp st(0)
fld qword [0x4db398]
jmp 0x445387
fstp st(0)
fld qword [0x4dba68]
jmp 0x445387
fstp st(0)
fld qword [0x4dbbc0]
mov edx, dword [esi + 0x12c]
fld qword [edx]
fsub qword [esi + 0x138]
fcomp st(1)
fnstsw ax
fstp st(0)
test ah, 0x41
jne 0x445679
jmp 0x445325
cmp dword [esi + 0xf4], 0x40000000
jne 0x445679
cmp ecx, 0x31
jne 0x4454d1
push 1
mov ecx, esi
call fcn.00418aa0
mov ebp, eax
cmp dword [ebp + 0xf4], edi
jne 0x445679
mov eax, dword [ebp + 0x108]
test eax, eax
je 0x445679
push 0
mov ecx, ebp
call fcn.00418ce0
mov edi, dword [ebp + 0x84]
push 0x5091f4
mov ecx, esi
mov dword [esp + 0x60], eax
call fcn.00419530
add eax, 0x30
test edi, edi
mov ecx, dword [eax]
mov dword [esp + 0x4c], ecx
mov edx, dword [eax + 4]
mov ecx, dword [ebp + 0x104]
mov dword [esp + 0x50], edx
mov eax, dword [eax + 8]
mov dword [esp + 0xf4], ecx
fld dword [esp + 0xf4]
mov dword [esp + 0x54], eax
fmul dword [esp + 0x54]
fld dword [esp + 0xf4]
fmul dword [esp + 0x50]
fld dword [esp + 0x4c]
fmul dword [esp + 0xf4]
fstp dword [esp + 0xe8]
mov edx, dword [esp + 0xe8]
mov dword [esp + 0x4c], edx
fstp dword [esp + 0xec]
mov eax, dword [esp + 0xec]
mov dword [esp + 0x50], eax
fstp dword [esp + 0xf0]
mov ecx, dword [esp + 0xf0]
mov dword [esp + 0x54], ecx
je 0x4454ae
push 0
push 0
mov ecx, edi
call fcn.004206d0
mov edx, dword [esp + 0x5c]
add edx, 0xb0
push edx
mov ecx, edi
call fcn.0041f990
lea eax, [esp + 0x4c]
push eax
mov ecx, edi
call fcn.0041f9d0
mov dword [ebp + 0x104], 0
mov dword [ebp + 0xf4], 0x40000000
mov dword [esi + 0xf4], 0x40400000
jmp 0x445679
cmp ecx, 0x33
jne 0x445679
push 0
mov ecx, esi
call fcn.00418aa0
mov ebp, eax
mov edi, dword [ebp + 0x84]
push 0x509200
mov ecx, esi
call fcn.00419530
add eax, 0x30
test edi, edi
mov ecx, dword [eax]
mov dword [esp + 0x40], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x44], edx
mov eax, dword [eax + 8]
mov dword [esp + 0x48], eax
mov ecx, dword [ebp + 0x104]
mov dword [esp + 0xbc], ecx
fld dword [esp + 0xbc]
fmul dword [esp + 0x48]
fld dword [esp + 0xbc]
fmul dword [esp + 0x44]
fld dword [esp + 0x40]
fmul dword [esp + 0xbc]
fstp dword [esp + 0xf8]
mov edx, dword [esp + 0xf8]
mov dword [esp + 0x40], edx
fstp dword [esp + 0xfc]
mov eax, dword [esp + 0xfc]
mov dword [esp + 0x44], eax
fstp dword [esp + 0x100]
mov ecx, dword [esp + 0x100]
mov dword [esp + 0x48], ecx
je 0x445599
lea edx, [esp + 0x1d8]
push edx
mov ecx, edi
call fcn.0041f810
lea eax, [esp + 0x1d8]
push eax
lea ecx, [esp + 0x44]
push ecx
mov ecx, edi
call fcn.0041fa20
mov edx, dword [ebp + 0x12c]
fld qword [edx]
fsub qword [ebp + 0x138]
fcomp qword [0x4dba68]
fnstsw ax
test ah, 0x41
jne 0x445679
push 0x50920c
mov ecx, ebp
call fcn.00419530
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + 4]
push 0x509214
mov ecx, ebp
mov dword [eax + 0x1034], 0
call fcn.00419530
mov ecx, dword [ebx + 0xc]
push eax
call fcn.00428290
push 0
push 0
mov ecx, esi
call fcn.00418aa0
mov ecx, eax
call fcn.00419a60
mov eax, dword [ebx + 0xc]
mov ecx, dword [eax + 0x103c]
push edi
call fcn.00421a60
push 0
push 0
push esi
mov ecx, ebx
mov dword [esi + 0xf4], 0x40400000
call fcn.0043fd90
test byte [0x513930], 0x20
jne 0x445660
or dword [0x513930], 0x20
mov ecx, dword [ebx + 0xc]
mov edx, dword [ecx]
mov ecx, dword [edx + 0xfc]
push str.SOUND_FX_ROCKET_EXPLODE
mov dword [esp + 0x248], 5
call fcn.00453be0
mov dword [0x513918], eax
mov dword [esp + 0x244], 0xffffffff
mov ecx, dword [0x513918]
push 0
push 0xfffffffffffffffe
call fcn.00469220
mov dword [ebp + 0x84], 0
mov eax, dword [esi + 8]
cmp eax, 0x53
je 0x446260
cmp eax, 0x55
je 0x446260
cmp eax, 0x56
jne 0x4457a8
push 1
mov ecx, esi
call fcn.00418ce0
mov ecx, eax
fld dword [ecx + 0xdc]
fcomp dword [0x4fd1ec]
fnstsw ax
test ah, 0x41
jne 0x4462f4
mov eax, dword [esi + 0x130]
fld qword [eax]
fmul qword [0x4db6e8]
fsubr dword [ecx + 0xdc]
fst dword [ecx + 0xdc]
fcomp dword [0x4fd1ec]
fnstsw ax
test ah, 5
jp 0x4462f4
push 0
push 0
mov dword [ecx + 0xdc], 0
push esi
mov ecx, ebx
call fcn.0043fd90
test byte [0x513930], 0x40
jne 0x44573a
or dword [0x513930], 0x40
mov ecx, dword [ebx + 0xc]
mov edx, dword [ecx]
mov ecx, dword [edx + 0xfc]
push 0x50927c
mov dword [esp + 0x248], 6
call fcn.00453be0
mov dword [0x513914], eax
mov dword [esp + 0x244], 0xffffffff
mov ecx, dword [0x513914]
push 0
push 0xfffffffffffffffe
call fcn.00469220
fild dword [esi + 0x10]
fcomp dword [0x4db294]
fnstsw ax
test ah, 0x44
jp 0x44578d
mov eax, dword [ebx + 0xc]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x288]
mov eax, dword [edx + 8]
mov ecx, dword [eax + 0xc]
mov ecx, dword [ecx + 0xc]
push 0x509294
call fcn.00463eb0
push 2
mov ecx, esi
mov edi, eax
call fcn.00418ce0
mov dword [eax + 0xa8], edi
jmp 0x4462f4
mov edx, dword [ebx + 0xc]
mov eax, dword [edx]
mov ecx, dword [eax + 0x288]
mov edx, dword [ecx + 8]
mov eax, dword [edx + 0xc]
mov ecx, dword [eax + 0xc]
push 0x509298
jmp 0x445772
cmp eax, 0x57
jne 0x445980
push 0
push 0xfe
mov ecx, esi
call fcn.00419e90
mov ecx, dword [eax + 0x40]
mov dword [esp + 0x6c], ecx
fld dword [esp + 0x6c]
fcomp dword [0x4fd1ec]
fnstsw ax
test ah, 0x44
jnp 0x4462f4
xor ebp, ebp
push ebp
mov ecx, esi
call fcn.00418aa0
push ebp
mov ecx, esi
mov edi, eax
call fcn.00418ce0
mov ecx, eax
fld dword [ecx + 0xdc]
fcomp dword [0x4fd1ec]
fnstsw ax
test ah, 0x41
jne 0x44586d
fld dword [esp + 0x6c]
fcomp dword [0x4db438]
fnstsw ax
test ah, 0x41
jne 0x44581d
mov dword [esp + 0x6c], 0x41200000
mov edx, dword [esi + 0x130]
fld qword [edx]
fmul dword [esp + 0x6c]
fmul qword [0x4dbc18]
fld dword [ecx + 0xdc]
fsub st(1)
fstp dword [ecx + 0xdc]
fadd st(0), st(0)
fadd dword [edi + 0xf4]
fstp dword [edi + 0xf4]
fld dword [ecx + 0xdc]
fcomp dword [0x4fd1ec]
fnstsw ax
test ah, 5
jp 0x44595a
mov dword [ecx + 0xdc], ebp
jmp 0x44595a
fld dword [ecx + 0xdc]
fcomp dword [0x4fd1ec]
fnstsw ax
test ah, 0x44
jp 0x44595a
cmp dword [esi + 0x10], ebp
jne 0x44595a
push ebp
push ebp
push esi
mov ecx, ebx
mov dword [esi + 0x10], 1
call fcn.0043fd90
mov dword [edi + 0xfc], ebp
mov dword [edi + 0x100], ebp
mov ebp, dword [edi + 0x84]
test ebp, ebp
mov dword [esp + 0x118], 0
mov dword [esp + 0x11c], 0x41a00000
mov dword [esp + 0x120], 0
je 0x445906
push 0
push 0
mov ecx, ebp
call fcn.004206d0
lea eax, [esp + 0x1c0]
push eax
mov ecx, ebp
call fcn.0041f810
lea ecx, [esp + 0x1c0]
push ecx
lea edx, [esp + 0x11c]
push edx
mov ecx, ebp
call fcn.0041fa20
mov al, byte [0x513930]
test al, al
js 0x445949
or dword [0x513930], 0x80
mov eax, dword [ebx + 0xc]
mov ecx, dword [eax]
mov ecx, dword [ecx + 0xfc]
push str.SOUND_FX_TOASTER
mov dword [esp + 0x248], 7
call fcn.00453be0
mov dword [0x513910], eax
mov dword [esp + 0x244], 0xffffffff
mov ecx, dword [0x513910]
push 0
push 0xfffffffffffffffe
call fcn.00469220
xor ebp, ebp
push ebp
mov ecx, edi
call fcn.00418ce0
fld dword [edi + 0xf4]
mov eax, dword [eax + 0xa8]
fmul dword [0x4db390]
mov eax, dword [eax]
mov eax, dword [eax]
fstp dword [eax + 0x74]
jmp 0x4462f4
cmp eax, 0x5b
jne 0x445a3f
push 0
push 0xfe
mov ecx, esi
call fcn.00419e90
mov edx, dword [eax + 0x40]
push 0
mov ecx, esi
mov dword [esp + 0x2c], edx
call fcn.00418aa0
fld dword [esp + 0x28]
fcomp dword [0x4fd1ec]
mov ecx, eax
fnstsw ax
test ah, 0x44
jnp 0x4462f4
fld dword [esp + 0x28]
fcomp dword [0x4db438]
fnstsw ax
test ah, 0x41
jne 0x4459d7
mov dword [esp + 0x28], 0x41200000
fld dword [esp + 0x28]
mov edx, dword [ecx + 0x80]
fmul dword [0x4db298]
fstp dword [esp + 0x28]
fld dword [ecx + 0xe4]
fcomp dword [0x4fd1ec]
fnstsw ax
test ah, 0x41
jne 0x445a21
fld dword [esp + 0x28]
mov eax, dword [ebx + 0xc]
push ecx
fchs
mov ecx, dword [eax + 0x103c]
fstp dword [esp]
push 0x3f000000
push edx
call fcn.00420f50
jmp 0x4462f4
mov ecx, dword [esp + 0x28]
push ecx
push 0x3f000000
push edx
mov edx, dword [ebx + 0xc]
mov ecx, dword [edx + 0x103c]
call fcn.00420f50
jmp 0x4462f4
cmp eax, 0x3d
jne 0x445af9
push 0
push 0xfe
mov ecx, esi
call fcn.00419e90
mov eax, dword [eax + 0x40]
mov dword [esp + 0x58], eax
fld dword [esp + 0x58]
fcomp dword [0x4db438]
fnstsw ax
test ah, 0x41
jne 0x445a76
mov dword [esp + 0x58], 0x41200000
fld dword [esp + 0x58]
mov ecx, dword [esi + 0x130]
fmul dword [0x4db390]
push 0
push 4
fsub dword [esi + 0xf4]
fmul qword [ecx]
mov ecx, esi
fadd dword [esi + 0xf4]
fstp dword [esi + 0xf4]
call fcn.00419e90
fld dword [esp + 0x58]
mov edx, dword [eax + 0x20]
fmul dword [0x4db9d4]
mov eax, dword [edx]
push ecx
mov ecx, dword [ebx + 0xc]
mov ecx, dword [ecx + 0x103c]
fstp dword [esp]
push eax
call fcn.00421790
push 1
push 4
mov ecx, esi
call fcn.00419e90
fld dword [esp + 0x58]
mov edx, dword [eax + 0x20]
fmul dword [0x4dbc14]
mov eax, dword [edx]
push ecx
fstp dword [esp]
push eax
mov eax, dword [ebx + 0xc]
mov ecx, dword [eax + 0x103c]
call fcn.00421790
jmp 0x4462f4
cmp eax, 0x3c
jne 0x445da3
push 0
push 4
mov ecx, esi
call fcn.00419e90
mov ecx, dword [ebx + 0x1c]
mov dword [esp + 0x30], eax
mov eax, dword [ecx + 4]
mov eax, dword [eax]
test eax, eax
mov dword [esp + 0x110], eax
mov dword [esp + 0x20], 0
je 0x445c24
jmp 0x445b40
mov eax, dword [esp + 0x110]
lea esp, [esp]
mov ebp, dword [eax + 8]
cmp ebp, esi
je 0x445c0c
mov eax, dword [ebp + 8]
cmp eax, 0x3a
je 0x445b61
cmp eax, 0x3b
je 0x445b61
cmp eax, 0x3d
jne 0x445c0c
push 4
mov ecx, ebp
mov dword [esp + 0x18], 0
call fcn.00419380
test eax, eax
jle 0x445c0c
lea ebx, [ebx]
mov edx, dword [esp + 0x14]
push edx
push 4
mov ecx, ebp
call fcn.00419e90
mov edi, eax
mov eax, dword [edi + 0x20]
mov ecx, dword [eax]
lea edx, [esp + 0x214]
push edx
lea eax, [esp + 0xe8]
push eax
mov eax, dword [esp + 0x38]
add eax, 0x24
push eax
call fcn.00407330
test eax, eax
je 0x445bf2
mov eax, dword [esp + 0x30]
fld dword [eax + 0x24]
add eax, 0x24
fcomp dword [edi + 0x24]
fnstsw ax
test ah, 0x41
jne 0x445bda
fld dword [esp + 0xe4]
fchs
fstp dword [esp + 0xe4]
fld dword [esp + 0xe4]
fmul dword [edi + 0x40]
fmul dword [0x4db298]
fadd dword [esp + 0x20]
fstp dword [esp + 0x20]
mov edi, dword [esp + 0x14]
inc edi
push 4
mov ecx, ebp
mov dword [esp + 0x18], edi
call fcn.00419380
cmp edi, eax
jl 0x445b80
mov ecx, dword [esp + 0x110]
mov eax, dword [ecx]
test eax, eax
mov dword [esp + 0x110], eax
jne 0x445b32
push 1
mov ecx, esi
call fcn.00418aa0
push 0
push 0
mov ecx, esi
mov dword [esp + 0x38], eax
call fcn.00418aa0
mov ecx, eax
call fcn.00418aa0
mov edi, eax
push 0
mov ecx, edi
call fcn.00418aa0
mov edx, dword [esp + 0x30]
mov ebp, eax
xor eax, eax
mov dword [edi + 0x104], eax
mov dword [ebp + 0x104], eax
fld dword [edx + 0xf0]
fmul dword [0x4db9d4]
mov ecx, dword [edi + 0x108]
cmp ecx, eax
fabs
fst dword [edi + 0x104]
je 0x445cf7
mov eax, dword [ebp + 0x108]
fstp dword [ebp + 0x104]
test eax, eax
je 0x445cf9
fld dword [esi + 0xf4]
mov eax, dword [ebp + 0x98]
fcomp dword [0x4fd1ec]
cmp eax, 0x3ec28f5c
fnstsw ax
jne 0x445cd1
test ah, 0x44
jp 0x445cf9
fld dword [esp + 0x20]
fabs
fcomp qword [0x4dbac0]
fnstsw ax
test ah, 1
jne 0x445cf9
push 0
push 0
push esi
mov ecx, ebx
call fcn.0043fd90
jmp 0x445cf9
test ah, 0x44
jnp 0x445cf9
fld dword [esp + 0x20]
fabs
fcomp qword [0x4dbac0]
fnstsw ax
test ah, 5
jp 0x445cf9
push 0
push 0
push esi
mov ecx, ebx
call fcn.0043fd90
jmp 0x445cf9
fstp st(0)
mov eax, dword [esp + 0x30]
fld dword [eax + 0xf0]
fcomp dword [0x4fd1ec]
fnstsw ax
test ah, 0x41
jne 0x445d17
mov eax, 0x3ec28f5c
jmp 0x445d19
xor eax, eax
mov dword [edi + 0xb0], eax
push 0x5092b4
mov ecx, esi
mov dword [ebp + 0xb0], eax
call fcn.00419530
mov edi, dword [eax + 0x1c]
test edi, edi
je 0x4462f4
fld dword [esp + 0x20]
mov eax, dword [edi + 4]
fmul dword [0x4dbc10]
add eax, 0x34
mov dword [esp + 0xa4], 0
mov edx, dword [esp + 0xa4]
fstp dword [esp + 0xa0]
mov ecx, dword [esp + 0xa0]
mov dword [eax], ecx
mov dword [esp + 0xa8], 0x3f800000
mov ecx, dword [esp + 0xa8]
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
push 0x5092bc
mov ecx, esi
call fcn.00419530
mov ecx, dword [edi + 4]
add eax, 0x24
push eax
call fcn.00439df0
jmp 0x4462f4
cmp eax, 0x4b
je 0x445db6
cmp eax, 0x29
je 0x445db6
cmp eax, 0x49
jne 0x4462f4
push 0
push 2
mov ecx, esi
call fcn.00419e90
mov edx, dword [ebx + 0x1c]
mov edi, eax
mov eax, dword [edx + 4]
mov eax, dword [eax]
test eax, eax
mov dword [esp + 0xd0], eax
mov dword [esp + 0x1c], 0
mov dword [esp + 0x24], 0
je 0x445ffd
lea ebx, [ebx]
mov eax, dword [esp + 0xd0]
mov ebp, dword [eax + 8]
cmp ebp, esi
je 0x445fcc
mov eax, dword [ebp + 8]
cmp eax, 0x25
jne 0x445f56
push 0
push 2
mov ecx, ebp
call fcn.00419e90
fld dword [edi + 0x2c]
lea ebx, [eax + 0x24]
mov ecx, ebx
mov edx, dword [ecx]
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x3c], ecx
fsub dword [esp + 0x3c]
fld dword [edi + 0x28]
mov dword [esp + 0x38], eax
fsub dword [esp + 0x38]
mov dword [esp + 0x34], edx
fld dword [edi + 0x24]
fsub dword [esp + 0x34]
fstp dword [esp + 0xac]
mov edx, dword [esp + 0xac]
mov dword [esp + 0x34], edx
fstp dword [esp + 0xb0]
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x38], eax
fstp dword [esp + 0xb4]
mov ecx, dword [esp + 0xb4]
mov dword [esp + 0x3c], ecx
lea ecx, [esp + 0x34]
call fcn.00402c20
fstp dword [esp + 0x14]
push 0
push 0xfe
mov ecx, ebp
call fcn.00419e90
mov ebp, eax
cmp dword [esi + 8], 0x49
jne 0x445f3b
mov edx, dword [edi + 0x20]
mov ecx, dword [edi + 0x1c]
lea eax, [esp + 0x1a8]
mov dword [esp + 0x5c], edx
push eax
lea edx, [esp + 0x10c]
push edx
push ebx
mov dword [esp + 0x114], 0
mov dword [esp + 0x110], 0
call fcn.00407330
test eax, eax
je 0x445f07
fld dword [ebp + 0x40]
fmul dword [0x4db390]
fmul dword [esp + 0x108]
fld dword [esp + 0x14]
fmul dword [0x4db6e4]
fdivp st(1)
fadd dword [esp + 0x24]
fstp dword [esp + 0x24]
jmp 0x445fcc
lea eax, [esp + 0x1a8]
push eax
lea ecx, [esp + 0x108]
push ecx
mov ecx, dword [esp + 0x64]
push ebx
call fcn.00407330
test eax, eax
je 0x445fcc
fld dword [ebp + 0x40]
fmul dword [0x4db390]
fmul dword [esp + 0x104]
jmp 0x445f44
fld dword [ebp + 0x40]
fmul dword [0x4db390]
fld dword [esp + 0x14]
fmul dword [0x4db6e4]
fdivp st(1)
fadd dword [esp + 0x1c]
jmp 0x445fc8
cmp eax, 0x4a
jne 0x445fcc
fld dword [ebp + 0xf4]
fcomp dword [0x4fd1ec]
fnstsw ax
test ah, 0x44
jnp 0x445fcc
push 0
push 2
mov ecx, ebp
call fcn.00419e90
mov ebx, eax
mov ecx, dword [ebx + 0x20]
lea edx, [esp + 0x1cc]
push edx
lea eax, [esp + 0x64]
push eax
lea edx, [edi + 0x24]
push edx
mov dword [esp + 0x6c], 0
call fcn.00407330
cmp dword [esi + 8], 0x49
jne 0x445fc0
fld dword [ebx + 0x30]
fcomp dword [0x4fd1ec]
fnstsw ax
test ah, 0x41
jne 0x445fc0
fld dword [esp + 0x24]
fadd dword [esp + 0x60]
fstp dword [esp + 0x24]
jmp 0x445fcc
fld dword [esp + 0x1c]
fadd dword [esp + 0x60]
fstp dword [esp + 0x1c]
mov eax, dword [esp + 0xd0]
mov eax, dword [eax]
test eax, eax
mov dword [esp + 0xd0], eax
jne 0x445df0
fld dword [esp + 0x1c]
fcomp dword [0x4db294]
fnstsw ax
test ah, 0x41
jne 0x445ffd
mov dword [esp + 0x1c], 0x3f800000
mov eax, dword [esi + 8]
cmp eax, 0x4b
jne 0x44608d
fld dword [esp + 0x1c]
push 0
fmul dword [0x4db438]
mov ecx, esi
fstp dword [esp + 0x20]
call fcn.00418ce0
fld dword [esp + 0x1c]
mov ecx, eax
fmul dword [0x4db390]
fsubr dword [0x4db294]
fsub dword [ecx + 0x150]
fmul dword [0x4db298]
fcom dword [0x4db298]
fnstsw ax
test ah, 0x41
jne 0x446053
fstp st(0)
fld dword [0x4db298]
mov edx, dword [esi + 0x130]
mov ebx, dword [esp + 0x2c]
fmul qword [edx]
fadd dword [ecx + 0x150]
fst dword [ecx + 0x150]
fcomp dword [0x4db298]
fnstsw ax
test ah, 0x41
jp 0x4462f4
push 0
push 0
push esi
mov ecx, ebx
call fcn.0043fd90
jmp 0x4462f4
cmp eax, 0x29
jne 0x4460fb
fld dword [esp + 0x1c]
push 0
fmul dword [0x4db438]
push 0xfe
mov ecx, esi
fstp dword [esp + 0x24]
call fcn.00419e90
fld dword [esp + 0x1c]
mov ebx, dword [esp + 0x2c]
fcomp dword [0x4db294]
mov edi, eax
mov eax, dword [esp + 0x1c]
mov dword [edi + 0x40], eax
fnstsw ax
test ah, 0x41
jne 0x4460d8
push 0
push 0
push esi
mov ecx, ebx
call fcn.0043fd90
mov eax, dword [edi + 0x3c]
test eax, eax
je 0x4462f4
push eax
push edi
mov ecx, ebx
mov dword [esi + 0x188], 2
call fcn.0043ae50
jmp 0x4462f4
cmp eax, 0x49
jne 0x4462f0
push 0
push 2
mov ecx, esi
call fcn.00419e90
mov ecx, dword [esp + 0x1c]
mov edi, eax
mov dword [edi + 0x40], ecx
push 2
mov ecx, esi
call fcn.00418ce0
fld dword [esp + 0x1c]
mov eax, dword [eax + 0xa8]
fmul dword [0x4db440]
mov eax, dword [eax]
mov edx, dword [esp + 0x1c]
mov dword [eax + 0x128], edx
mov ecx, edx
mov dword [eax + 0x13c], ecx
fstp dword [eax + 0x150]
add edi, 0x24
mov edx, edi
mov eax, dword [edx]
mov dword [esp + 0x94], eax
mov ecx, dword [edx + 4]
mov dword [esp + 0x98], ecx
mov edx, dword [edx + 8]
push 2
mov ecx, esi
mov dword [esp + 0xa0], edx
call fcn.00418ce0
fld dword [eax + 0x148]
fsub dword [eax + 0xbc]
mov ebx, dword [esp + 0x2c]
fsubr dword [esp + 0x94]
fstp dword [esp + 0x94]
fld dword [esp + 0x1c]
fcomp dword [0x4db298]
fnstsw ax
test ah, 1
jne 0x4461ba
mov eax, dword [esp + 0x1c]
push eax
lea ecx, [esp + 0x98]
push ecx
push esi
mov ecx, ebx
call fcn.004434e0
push 3
mov ecx, esi
call fcn.00418ce0
fld dword [esp + 0x24]
mov eax, dword [eax + 0xa8]
fmul dword [0x4db440]
mov eax, dword [eax]
mov edx, dword [esp + 0x24]
mov dword [eax + 0x128], edx
mov ecx, edx
mov dword [eax + 0x13c], ecx
fstp dword [eax + 0x150]
mov edx, dword [edi]
mov dword [esp + 0x94], edx
mov eax, dword [edi + 4]
mov dword [esp + 0x98], eax
mov ecx, dword [edi + 8]
mov dword [esp + 0x9c], ecx
push 3
mov ecx, esi
call fcn.00418ce0
fld dword [eax + 0x148]
fsub dword [eax + 0xbc]
fld dword [esp + 0x94]
fsub st(1)
fstp dword [esp + 0x94]
fstp st(0)
fld dword [esp + 0x24]
fcomp dword [0x4db298]
fnstsw ax
test ah, 1
jne 0x4462f4
mov edx, dword [esp + 0x24]
push edx
lea eax, [esp + 0x98]
push eax
push esi
mov ecx, ebx
call fcn.004434e0
jmp 0x4462f4
cmp dword [esi + 0x188], 2
mov eax, dword [esi + 0x80]
je 0x4462f4
mov ecx, dword [ebx + 0xc]
mov ecx, dword [ecx + 0x103c]
push eax
call fcn.00420f80
fld st(0)
fabs
fcomp dword [0x4dbc0c]
fnstsw ax
test ah, 0x41
jne 0x4462ec
push 0
fstp dword [esi + 0xf0]
push 0xff
mov ecx, esi
call fcn.00419e90
mov edi, eax
mov eax, dword [edi + 0x3c]
test eax, eax
je 0x4462e2
mov eax, dword [eax + 0x18]
mov ecx, dword [eax + 0x11c]
cmp dword [ecx + 0x74], 1
je 0x4462c8
push 1
call fcn.00417e80
jmp 0x4462ca
mov eax, ecx
cmp dword [eax + 8], 0x53
jne 0x4462e2
fld dword [esi + 0xf0]
fmul dword [0x4dbc08]
fstp dword [esi + 0xf0]
push edi
mov ecx, ebx
call fcn.00440190
jmp 0x4462f4
fstp st(0)
jmp 0x4462f4
mov ebx, dword [esp + 0x2c]
mov ecx, dword [esi + 8]
cmp ecx, 0x27
je 0x446315
cmp ecx, 0x38
je 0x446315
cmp ecx, 0x4c
je 0x446315
cmp ecx, 0x4d
je 0x446315
cmp ecx, 0x4e
je 0x446315
cmp ecx, 0x30
jne 0x446351
fild dword [esi + 0x10]
fcomp dword [0x4db294]
fnstsw ax
test ah, 0x44
jp 0x446332
cmp ecx, 0x38
jne 0x446332
push esi
mov ecx, ebx
call fcn.00443750
cmp dword [esi + 0x10], 2
jne 0x446351
mov eax, dword [esi + 0x84]
test eax, eax
je 0x446351
mov edx, dword [ebx + 0xc]
mov ecx, dword [edx + 0x103c]
push eax
call fcn.00421a60
mov eax, dword [ebx + 0x108]
test eax, eax
je 0x446362
mov dword [esi + 0x10], 1
mov eax, dword [esp + 0x138]
test eax, eax
jne 0x443d94
mov eax, dword [ebx + 0x1c]
mov eax, dword [eax + 4]
mov eax, dword [eax]
test eax, eax
je 0x447674
mov ecx, dword [eax]
mov esi, dword [eax + 8]
xor edi, edi
push edi
mov dword [esp + 0x13c], ecx
push 0xfe
mov ecx, esi
call fcn.00419e90
mov ebp, eax
mov eax, dword [esi + 8]
cmp eax, 0x20
mov dword [esp + 0xb8], ebp
jne 0x4463e4
push edi
push 0xfe
mov ecx, esi
call fcn.00419e90
mov ecx, dword [eax + 0x3c]
cmp ecx, edi
mov dword [eax + 0x40], 0x41200000
je 0x446d81
push ecx
push eax
mov ecx, ebx
mov dword [esi + 0x188], 2
call fcn.0043ae50
jmp 0x446d81
cmp eax, 0x43
jne 0x4464d0
push edi
mov ecx, esi
call fcn.00418aa0
cmp dword [esi + 0x10], 1
jne 0x446d81
mov ebp, dword [eax + 0x84]
cmp ebp, edi
je 0x446457
push edi
push edi
mov ecx, ebp
call fcn.004206d0
push str.Direction
mov ecx, esi
call fcn.00419530
add eax, 0x30
mov edx, dword [eax]
mov dword [esp + 0x70], edx
fld dword [esp + 0x70]
mov ecx, dword [eax + 4]
fmul dword [0x4db2b0]
mov dword [esp + 0x74], ecx
mov edx, dword [eax + 8]
lea eax, [esp + 0x70]
fstp dword [esp + 0x70]
mov dword [esp + 0x78], edx
push eax
mov ecx, ebp
mov dword [esp + 0x7c], 0
call fcn.0041f9d0
mov ecx, dword [esi + 0x12c]
fld qword [ecx]
push edi
push edi
fstp qword [esi + 0x138]
push esi
mov ecx, ebx
mov dword [esi + 0x10], 2
call fcn.0043fd90
mov ecx, dword [0x513930]
mov eax, 0x100
test eax, ecx
jne 0x4464bd
or ecx, eax
mov dword [0x513930], ecx
mov edx, dword [ebx + 0xc]
mov eax, dword [edx]
mov ecx, dword [eax + 0xfc]
push str.SOUND_FX_CROSSBOW
mov dword [esp + 0x248], 8
call fcn.00453be0
mov dword [0x51390c], eax
mov dword [esp + 0x244], 0xffffffff
mov ecx, dword [0x51390c]
push edi
push 0xfffffffffffffffe
call fcn.00469220
jmp 0x446d81
lea ecx, [esi + 0x24]
push 0x5092e4
push ecx
call fcn.004c81d0
add esp, 8
test eax, eax
jne 0x446d81
mov eax, dword [esi + 8]
cmp eax, 0x2d
jne 0x44659b
push edi
mov ecx, esi
call fcn.00418aa0
mov ebp, eax
fld dword [ebp + 0xd8]
fabs
fcomp qword [0x4dbb70]
fnstsw ax
test ah, 0x41
jp 0x446589
push edi
push edi
push esi
mov ecx, ebx
call fcn.0043fd90
cmp dword [ebp + 0x10], edi
jne 0x446d81
mov eax, dword [0x513930]
test ah, 2
jne 0x44656f
mov ecx, eax
or ecx, 0x200
mov dword [0x513930], ecx
mov edx, dword [ebx + 0xc]
mov eax, dword [edx]
mov ecx, dword [eax + 0xfc]
push str.SOUND_FX_PUSH_BUTTON
mov dword [esp + 0x248], 9
call fcn.00453be0
mov dword [0x513908], eax
mov dword [esp + 0x244], 0xffffffff
mov ecx, dword [0x513908]
push edi
push 0xfffffffffffffffe
call fcn.00469220
mov dword [ebp + 0x10], 1
jmp 0x446d81
cmp dword [ebp + 0x10], 1
jne 0x446d81
mov dword [ebp + 0x10], edi
jmp 0x446d81
cmp eax, 0x21
jne 0x4466fa
push 0
mov ecx, esi
call fcn.00418aa0
mov edi, eax
fld dword [edi + 0xe8]
fcomp dword [0x4fd1ec]
fnstsw ax
test ah, 0x44
jnp 0x446d81
mov eax, dword [edi + 0x84]
test eax, eax
je 0x4465df
mov ecx, dword [ebx + 0xc]
mov ecx, dword [ecx + 0x103c]
push eax
call fcn.00421a60
fld dword [edi + 0xd0]
fcomp dword [0x4db3a0]
fnstsw ax
test ah, 0x41
jp 0x446d81
push 0
push 0
push esi
mov ecx, ebx
mov dword [edi + 0xd0], 0xbf800000
mov dword [edi + 0xe8], 0
call fcn.0043fd90
push 1
push 0xfe
mov ecx, esi
call fcn.00419e90
fld dword [ebp + 0x40]
fcomp dword [0x4fd1ec]
mov ecx, eax
fnstsw ax
test ah, 0x44
jp 0x44664a
fld dword [ecx + 0x40]
fcomp dword [0x4fd1ec]
fnstsw ax
test ah, 0x44
jnp 0x446d81
push 0
mov ecx, esi
call fcn.00418ce0
fld dword [eax + 0xf0]
fcomp dword [0x4db3a0]
fnstsw ax
test ah, 0x44
jp 0x446d81
push 0x50930c
mov ecx, esi
call fcn.00419530
mov edi, dword [eax + 0x1c]
test edi, edi
jne 0x446688
mov ecx, dword [ebx + 0xc]
push eax
call fcn.00429090
mov edi, eax
mov eax, dword [edi + 4]
mov ebp, 1
mov dword [eax + 0x1034], ebp
mov edx, dword [esi + 0x130]
mov ecx, dword [edi + 4]
push edx
call fcn.00465140
mov edi, dword [edi + 4]
push 0x509314
mov ecx, esi
mov dword [edi + 0x1034], 0
call fcn.00419530
mov edi, dword [eax + 0x1c]
test edi, edi
jne 0x4466d0
mov ecx, dword [ebx + 0xc]
push eax
call fcn.00429090
mov edi, eax
mov eax, dword [edi + 4]
mov dword [eax + 0x1034], ebp
mov eax, dword [esi + 0x130]
mov ecx, dword [edi + 4]
push eax
call fcn.00465140
mov edi, dword [edi + 4]
mov dword [edi + 0x1034], 0
jmp 0x446d81
cmp eax, 0x23
jne 0x44685a
mov ecx, dword [ebx + 0x1c]
mov eax, dword [ecx + 4]
mov eax, dword [eax]
cmp eax, edi
je 0x44671f
nop
mov ecx, dword [eax + 8]
mov dword [ecx + 0x188], edi
mov eax, dword [eax]
cmp eax, edi
jne 0x446710
push 0
push str.tmo_power_motor_rotor
mov ecx, esi
call fcn.00418b30
fld dword [ebp + 0x40]
fchs
mov edi, eax
fst dword [edi + 0xf0]
fabs
fcomp qword [0x4db368]
fnstsw ax
test ah, 0x41
jne 0x446755
push 0
push 0
push esi
mov ecx, ebx
call fcn.0043fd90
mov ecx, dword [0x513930]
mov eax, 0x400
test eax, ecx
jne 0x4467a1
or ecx, eax
mov dword [0x513930], ecx
mov edx, dword [ebx + 0xc]
mov eax, dword [edx]
mov ecx, dword [eax + 0xfc]
push str.SOUND_FX_MOTOR
mov dword [esp + 0x248], 0xa
call fcn.00453be0
mov ecx, eax
mov dword [0x513904], ecx
mov dword [esp + 0x244], 0xffffffff
jmp 0x4467a7
mov ecx, dword [0x513904]
fld dword [edi + 0xf0]
fabs
fcomp qword [0x4db398]
fnstsw ax
test ah, 0x41
mov eax, dword [esi + 0x14]
jne 0x446825
cmp eax, 0xffffffff
jne 0x4467d2
push 0
push 0xfffffffffffffffe
call fcn.00469220
mov dword [esi + 0x14], eax
jmp 0x4467ec
push eax
call fcn.00468dd0
test eax, eax
jne 0x4467ec
mov ecx, dword [esi + 0x14]
push eax
push ecx
mov ecx, dword [0x513904]
call fcn.00469220
fld dword [edi + 0xf0]
fabs
fmul qword [0x4dbc00]
call fcn.004c7c20
mov ecx, 0x64
sub ecx, eax
cmp ecx, 0x186a0
jbe 0x446813
mov ecx, 0x186a0
mov edx, dword [esi + 0x14]
push edx
push ecx
mov ecx, dword [0x513904]
call fcn.00468f00
jmp 0x446837
cmp eax, 0xffffffff
je 0x446837
push eax
call fcn.00468f60
mov dword [esi + 0x14], 0xffffffff
push 0
push 0xff
mov ecx, edi
call fcn.00419e90
test eax, eax
je 0x446d81
push eax
mov ecx, ebx
call fcn.00440190
jmp 0x446d81
cmp eax, 0x58
jne 0x446a3f
push 1
mov ecx, esi
call fcn.00418aa0
mov ebp, eax
push 2
mov ecx, esi
mov dword [esp + 0x24], ebp
call fcn.00418aa0
mov edi, eax
mov eax, dword [ebp + 0xf0]
mov dword [edi + 0xec], eax
mov ecx, dword [ebx + 0xc]
mov edx, dword [ecx]
mov ecx, dword [edx + 0xfc]
push str.SOUND_FX_GRAMOPHONE_FOWARD
call fcn.00453be0
mov dword [0x513900], eax
mov eax, dword [ebx + 0xc]
mov ecx, dword [eax]
mov ecx, dword [ecx + 0xfc]
push str.SOUND_FX_GRAMOPHONE_BACKWARD
call fcn.00453be0
mov edx, dword [0x513900]
mov ecx, eax
mov eax, dword [edi + 0x10]
xor ebp, ebp
cmp eax, 1
mov dword [0x5138fc], ecx
jne 0x4468d2
mov ebp, edx
cmp eax, 2
jne 0x4468d9
mov ebp, ecx
mov eax, dword [esp + 0x20]
fld dword [eax + 0xf0]
fabs
fcomp qword [0x4db398]
fnstsw ax
test ah, 0x41
jne 0x446a14
cmp dword [esi + 0x10], 1
jne 0x446a14
mov eax, dword [esi + 0x14]
cmp eax, 0xffffffff
jne 0x446939
mov eax, dword [esp + 0x20]
fld dword [eax + 0xf0]
push 0
fcomp dword [0x4fd1ec]
push 0xfffffffffffffffe
fnstsw ax
test ah, 5
jp 0x446998
mov ecx, edx
mov dword [edi + 0x10], 1
call fcn.00469220
mov ebp, dword [0x513900]
jmp 0x4469aa
test ebp, ebp
je 0x4469e0
push eax
mov ecx, ebp
call fcn.00468dd0
test eax, eax
jne 0x4469ad
mov eax, dword [esi + 0x14]
cmp eax, 0xffffffff
je 0x44695d
push eax
mov ecx, ebp
call fcn.00468f60
mov ecx, dword [esp + 0x20]
fld dword [ecx + 0xf0]
push 0
fcomp dword [0x4fd1ec]
push 0xfffffffffffffffe
fnstsw ax
test ah, 5
jp 0x446992
mov ecx, dword [0x513900]
mov dword [edi + 0x10], 1
call fcn.00469220
mov ebp, dword [0x513900]
jmp 0x4469aa
mov ecx, dword [0x5138fc]
mov dword [edi + 0x10], 2
call fcn.00469220
mov ebp, dword [0x5138fc]
mov dword [esi + 0x14], eax
test ebp, ebp
je 0x4469e0
mov edx, dword [esp + 0x20]
fld dword [edx + 0xf0]
fabs
fmul qword [0x4dbbf8]
call fcn.004c7c20
cmp eax, 0x186a0
jbe 0x4469d4
mov eax, 0x186a0
mov ecx, dword [esi + 0x14]
push ecx
push eax
mov ecx, ebp
call fcn.00468f00
fld dword [0x4dbbf0]
mov edx, dword [esp + 0x20]
fsub dword [edx + 0xf0]
fabs
fcomp qword [0x4db398]
fnstsw ax
test ah, 0x41
jp 0x446d81
push 0
push 0
push esi
mov ecx, ebx
call fcn.0043fd90
jmp 0x446d81
mov eax, dword [esi + 0x14]
cmp eax, 0xffffffff
je 0x446d81
test ebp, ebp
je 0x446a2c
push eax
mov ecx, ebp
call fcn.00468f60
mov dword [edi + 0x10], 0
mov dword [esi + 0x14], 0xffffffff
jmp 0x446d81
cmp eax, 0x3d
jne 0x446c36
push 0
mov ecx, esi
call fcn.00418aa0
fld dword [ebp + 0x40]
fmul dword [0x4dbad4]
mov edi, eax
mov eax, dword [edi + 0x130]
push 0
fsub dword [edi + 0xf0]
push 4
mov ecx, esi
fmul qword [eax]
fadd dword [edi + 0xf0]
fstp dword [edi + 0xf0]
call fcn.00419e90
mov ecx, dword [edi + 0xf0]
mov ebp, dword [eax + 0x1c]
mov dword [eax + 0x40], ecx
fld dword [edi + 0xf0]
fabs
mov dword [esp + 0x64], eax
mov eax, dword [eax + 0x20]
mov edx, dword [eax]
mov eax, dword [0x513930]
test ah, 8
fmul dword [0x4db9d4]
fstp dword [edx + 0x50]
jne 0x446af4
mov ecx, eax
or ecx, 0x800
mov dword [0x513930], ecx
mov eax, dword [ebx + 0xc]
mov ecx, dword [eax]
mov ecx, dword [ecx + 0xfc]
push str.SOUND_FX_HOOVER
mov dword [esp + 0x248], 0xb
call fcn.00453be0
mov ecx, eax
mov dword [0x5138f8], ecx
mov dword [esp + 0x244], 0xffffffff
jmp 0x446afa
mov ecx, dword [0x5138f8]
fld dword [edi + 0xf0]
fabs
fcomp qword [0x4db398]
fnstsw ax
test ah, 0x41
mov eax, dword [esi + 0x14]
jne 0x446b78
cmp eax, 0xffffffff
jne 0x446b25
push 0
push 0xfffffffffffffffe
call fcn.00469220
mov dword [esi + 0x14], eax
jmp 0x446b3f
push eax
call fcn.00468dd0
test eax, eax
jne 0x446b3f
mov edx, dword [esi + 0x14]
mov ecx, dword [0x5138f8]
push eax
push edx
call fcn.00469220
fld dword [edi + 0xf0]
fabs
fmul qword [0x4dbbe8]
call fcn.004c7c20
mov ecx, 0x64
sub ecx, eax
cmp ecx, 0x186a0
jbe 0x446b66
mov ecx, 0x186a0
mov eax, dword [esi + 0x14]
push eax
push ecx
mov ecx, dword [0x5138f8]
call fcn.00468f00
jmp 0x446b8a
cmp eax, 0xffffffff
je 0x446b8a
push eax
call fcn.00468f60
mov dword [esi + 0x14], 0xffffffff
test ebp, ebp
je 0x446be6
mov ecx, dword [esp + 0x64]
add ecx, 0x30
push ecx
mov ecx, dword [ebp]
call fcn.00439be0
fld dword [edi + 0xf0]
mov eax, dword [ebp]
fabs
fmul dword [0x4db6e4]
fstp dword [eax + 0x1040]
mov eax, dword [ebp]
fld dword [edi + 0xf0]
fabs
fmul dword [0x4dbbe0]
fstp dword [eax + 0x1050]
mov eax, dword [ebp]
mov dword [eax + 0x1058], 0x3ecccccd
mov ebp, dword [ebp]
mov dword [ebp + 0x1034], 1
fld dword [edi + 0xf0]
fabs
fcomp qword [0x4db368]
fnstsw ax
test ah, 0x41
jne 0x446c07
push 0
push 0
push esi
mov ecx, ebx
call fcn.0043fd90
push 1
push 4
mov ecx, esi
call fcn.00419e90
mov edx, dword [edi + 0xf0]
mov dword [eax + 0x40], edx
fld dword [edi + 0xf0]
mov eax, dword [eax + 0x20]
fabs
mov eax, dword [eax]
fmul dword [0x4db9d4]
fstp dword [eax + 0x50]
jmp 0x446d81
cmp eax, 0x26
jne 0x446d51
push 0
push str.tmo_power_bell_clapper
mov ecx, esi
call fcn.00418b30
fld dword [ebp + 0x40]
fabs
mov edi, eax
fst dword [esp + 0x20]
fcomp dword [0x4db438]
fnstsw ax
test ah, 0x41
jne 0x446c6f
mov dword [esp + 0x20], 0x41200000
jmp 0x446c80
fld dword [esp + 0x20]
fcomp dword [0x4db294]
fnstsw ax
test ah, 0x41
jne 0x446c8c
push 0
push 0
push esi
mov ecx, ebx
call fcn.0043fd90
mov ecx, dword [edi + 0x130]
fld qword [ecx]
fmul dword [esp + 0x20]
fmul qword [0x4dba30]
fst dword [esp + 0x64]
fadd dword [edi + 0xf4]
fld qword [0x4db280]
call fcn.004c78aa
fst dword [edi + 0xf4]
fsin
mov ecx, dword [0x513930]
mov eax, 0x1000
test eax, ecx
fmul qword [0x4db6e8]
fstp dword [edi + 0xd8]
jne 0x446d12
or ecx, eax
mov dword [0x513930], ecx
mov edx, dword [ebx + 0xc]
mov eax, dword [edx]
mov ecx, dword [eax + 0xfc]
push str.SOUND_FX_BELLRING
mov dword [esp + 0x248], 0xc
call fcn.00453be0
mov ecx, eax
or edi, 0xffffffff
mov dword [0x5138f4], ecx
mov dword [esp + 0x244], edi
jmp 0x446d1b
mov ecx, dword [0x5138f4]
or edi, 0xffffffff
fld dword [esp + 0x20]
fcomp dword [0x4db294]
fnstsw ax
test ah, 0x41
jne 0x446d3f
cmp dword [esi + 0x14], edi
jne 0x446d81
push 0
push 0xfffffffffffffffe
call fcn.00469220
mov dword [esi + 0x14], eax
jmp 0x446d81
mov eax, dword [esi + 0x14]
cmp eax, edi
je 0x446d81
push eax
call fcn.00468f60
mov dword [esi + 0x14], edi
jmp 0x446d81
cmp eax, 0x27
jne 0x446d81
fld dword [ebp + 0x40]
fabs
fcom dword [0x4db438]
fnstsw ax
test ah, 0x41
je 0x446d77
fcomp dword [0x4db2b4]
fnstsw ax
test ah, 1
jne 0x446d81
jmp 0x446d79
fstp st(0)
push esi
mov ecx, ebx
call fcn.00443750
cmp dword [esi + 8], 0x2a
jne 0x446f06
push 0
push 0xfe
mov ecx, esi
call fcn.00419e90
mov ecx, dword [eax + 0x40]
mov dword [esp + 0x28], ecx
fld dword [esp + 0x28]
fcomp dword [0x4db294]
fnstsw ax
test ah, 0x41
jne 0x446f06
push 0
push 0
push esi
mov ecx, ebx
call fcn.0043fd90
mov edx, dword [esi + 0x12c]
fld qword [edx]
fsub qword [esi + 0x138]
fcomp qword [0x4db398]
fnstsw ax
test ah, 0x41
jne 0x446e40
mov ecx, dword [0x513930]
mov eax, 0x2000
test eax, ecx
jne 0x446e23
or ecx, eax
mov dword [0x513930], ecx
mov eax, dword [ebx + 0xc]
mov ecx, dword [eax]
mov ecx, dword [ecx + 0xfc]
push str.SOUND_FX_POWER_LIGHTNING
mov dword [esp + 0x248], 0xd
call fcn.00453be0
mov dword [0x5138f0], eax
mov dword [esp + 0x244], 0xffffffff
mov ecx, dword [0x5138f0]
push 0
push 0xfffffffffffffffe
call fcn.00469220
mov edx, dword [esi + 0x12c]
fld qword [edx]
fstp qword [esi + 0x138]
fld dword [esp + 0x28]
fcomp dword [0x4db298]
fnstsw ax
test ah, 0x41
jne 0x446f06
fld dword [esp + 0x28]
fcomp dword [0x4db438]
fnstsw ax
test ah, 0x41
jne 0x446e6e
mov dword [esp + 0x28], 0x41200000
mov edi, dword [ebx + 0xc]
mov eax, dword [edi]
fld qword [eax + 0x270]
fld qword [0x4db398]
call fcn.004c78aa
fld dword [esp + 0x28]
fmul dword [0x4db390]
mov ecx, dword [edi + 0x1054]
push ecx
lea edx, [esi + 0x88]
fmulp st(1)
push edx
mov ecx, edi
fstp dword [esp + 0x30]
mov eax, dword [esp + 0x30]
push eax
call fcn.0042d430
mov ecx, dword [ebx + 0xc]
mov edx, dword [ecx + 0x1054]
mov ebp, dword [edx + 8]
test ebp, ebp
jbe 0x446f06
xor edi, edi
mov eax, dword [ebx + 0xc]
mov ecx, dword [eax + 0x1054]
mov edx, dword [ecx + 0x14]
add edx, edi
mov eax, dword [edx]
mov dword [esp + 0x118], eax
mov ecx, dword [edx + 4]
push 0x3f000000
lea eax, [esp + 0x11c]
mov dword [esp + 0x120], ecx
mov edx, dword [edx + 8]
push eax
push esi
mov ecx, ebx
mov dword [esp + 0x12c], edx
call fcn.004434e0
add edi, 0xc
dec ebp
jne 0x446ec0
mov eax, dword [esi + 8]
cmp eax, 0x28
jne 0x446fbd
push 1
push 0xfe
mov ecx, esi
call fcn.00419e90
push 0
mov ecx, esi
mov edi, eax
call fcn.00418aa0
fld dword [edi + 0x40]
mov ecx, dword [esp + 0xb8]
mov edx, dword [ecx + 0x40]
mov dword [esp + 0x24], edx
fcomp dword [esp + 0x24]
mov ebp, eax
fnstsw ax
test ah, 0x41
jne 0x446f50
mov eax, dword [edi + 0x40]
mov dword [esp + 0x24], eax
fld dword [esp + 0x24]
fcomp dword [0x4db438]
fnstsw ax
test ah, 0x41
jne 0x446f6b
mov dword [esp + 0x24], 0x41200000
jmp 0x446f7c
fld dword [esp + 0x24]
fcomp dword [0x4db294]
fnstsw ax
test ah, 0x41
jne 0x446f88
push 0
push 0
push esi
mov ecx, ebx
call fcn.0043fd90
fld dword [esp + 0x24]
mov ecx, dword [ebp + 0x130]
fmul dword [0x4dbb50]
fsubr dword [0x4dba78]
fsub dword [ebp + 0xe4]
fmul dword [0x4db2b4]
fmul qword [ecx]
fadd dword [ebp + 0xe4]
fstp dword [ebp + 0xe4]
jmp 0x447226
cmp eax, 4
jne 0x447038
cmp dword [esi + 0xf4], 0x3f800000
jne 0x447226
xor edi, edi
push edi
mov ecx, esi
call fcn.00418ce0
mov ecx, eax
mov dword [ecx + 0x154], edi
mov dword [ecx + 0x158], 1
mov edx, dword [esi + 0x12c]
fld qword [edx]
fsub qword [esi + 0x138]
fmul qword [0x4dbbd8]
fld st(0)
fsin
fmul qword [0x4db368]
fstp dword [ecx + 0x150]
fcomp qword [0x4dbaa8]
fnstsw ax
test ah, 1
jne 0x447226
mov dword [ecx + 0x150], edi
mov dword [esi + 0xf4], 0x40000000
jmp 0x447226
cmp eax, 0x3a
jne 0x44709a
push 0
push str.tmo_windmill_wings
mov ecx, esi
call fcn.00418b30
mov edi, eax
mov eax, dword [edi + 0x130]
fld qword [eax]
push 0
fld dword [edi + 0xe8]
fmul dword [0x4db298]
push str.tmo_windmill_wheel
mov ecx, esi
fmulp st(1)
fsubr dword [edi + 0xe8]
fstp dword [edi + 0xe8]
call fcn.00418b30
fld dword [edi + 0xe8]
fchs
fstp dword [eax + 0xf0]
mov dword [esi + 0x188], 1
jmp 0x447226
cmp eax, 0x13
jne 0x4470f4
push 0
push 3
mov ecx, esi
call fcn.00419e90
mov ecx, dword [esi + 0x188]
test ecx, ecx
jne 0x4470cd
mov ecx, dword [esi + 0x130]
fld qword [ecx]
fld dword [eax + 0x40]
fmul dword [0x4db298]
fmulp st(1)
fsubr dword [eax + 0x40]
fstp dword [eax + 0x40]
push 2
mov ecx, esi
call fcn.00418ce0
mov edx, dword [eax + 0xa8]
mov eax, dword [edx]
mov eax, dword [eax + 8]
mov dword [eax + 0x5c], 0x40a00000
mov dword [eax + 0x70], 0x42480000
jmp 0x447226
cmp eax, 0x35
jne 0x4471f3
push 0x509400
mov ecx, esi
call fcn.00419530
mov ecx, eax
mov eax, dword [esi + 0x130]
fld qword [eax]
mov edi, dword [ecx + 0x1c]
fld dword [ecx + 0x40]
fmul dword [0x4db298]
fmulp st(1)
fsubr dword [ecx + 0x40]
fst dword [ecx + 0x40]
fcomp dword [0x4db438]
fnstsw ax
test ah, 0x41
jne 0x44713b
mov dword [ecx + 0x40], 0x41200000
fld dword [ecx + 0x40]
mov eax, dword [edi + 4]
fstp dword [eax + 0x1040]
mov eax, dword [edi + 4]
fld dword [ecx + 0x40]
mov ecx, dword [0x513930]
fmul dword [0x4dbbbc]
fstp dword [eax + 0x1050]
mov eax, 0x4000
test eax, ecx
jne 0x4471a1
or ecx, eax
mov dword [0x513930], ecx
mov ecx, dword [ebx + 0xc]
mov edx, dword [ecx]
mov ecx, dword [edx + 0xfc]
push str.SOUND_FX_FLASK
mov dword [esp + 0x248], 0xe
call fcn.00453be0
or ebp, 0xffffffff
mov dword [0x5138ec], eax
mov dword [esp + 0x244], ebp
jmp 0x4471a4
or ebp, 0xffffffff
mov eax, dword [edi + 4]
cmp dword [eax + 0x28], 5
jbe 0x4471b9
push 0
push 0
push esi
mov ecx, ebx
call fcn.0043fd90
mov ecx, dword [edi + 4]
cmp dword [ecx + 0x28], 1
jbe 0x4471db
cmp dword [esi + 0x14], ebp
jne 0x447226
mov ecx, dword [0x5138ec]
push 0
push 0xfffffffffffffffe
call fcn.00469220
mov dword [esi + 0x14], eax
jmp 0x447226
mov eax, dword [esi + 0x14]
cmp eax, ebp
je 0x447226
mov ecx, dword [0x5138ec]
push eax
call fcn.00468f60
mov dword [esi + 0x14], ebp
jmp 0x447226
lea edx, [esi + 0x24]
push 0x509414
push edx
call fcn.004036a0
add esp, 8
test eax, eax
je 0x447226
mov eax, dword [ebx + 0xc]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x27c]
mov eax, dword [ecx + 0x278]
mov ecx, dword [esi + 0x80]
push edx
push eax
call fcn.004255a0
mov eax, dword [esi + 8]
cmp eax, 0x37
jne 0x44724b
mov ecx, dword [esi + 4]
mov eax, dword [ecx]
test eax, eax
je 0x44762d
jmp 0x447240
mov eax, dword [eax]
test eax, eax
jne 0x447240
jmp 0x44762d
cmp eax, 0x47
jne 0x447468
fld dword [esi + 0xf4]
fcomp dword [0x4db33c]
fnstsw ax
test ah, 5
jp 0x44762d
push 0
mov ecx, esi
call fcn.00418ce0
lea edx, [esp + 0x34]
push edx
lea ecx, [esp + 0x1d0]
push ecx
lea ecx, [eax + 0x68]
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0x3f800000
mov dword [esp + 0x44], 0
call fcn.0044db60
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov dword [esp + 0xac], edx
mov edx, dword [eax + 8]
push 0
mov dword [esp + 0xb4], ecx
push 4
mov ecx, esi
mov dword [esp + 0xbc], edx
call fcn.00419e90
fld dword [esp + 0xac]
fmul dword [0x4dbbd0]
add eax, 0x24
mov ecx, dword [eax]
fld dword [esp + 0xb0]
fmul dword [0x4dbbd0]
mov dword [esp + 0x40], ecx
fld dword [esp + 0xb4]
mov edx, dword [eax + 4]
fmul dword [0x4dbbd0]
mov dword [esp + 0x44], edx
mov eax, dword [eax + 8]
mov dword [esp + 0x48], eax
fstp dword [esp + 0x1b0]
fxch st(1)
fadd dword [esp + 0x40]
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
fstp dword [esp + 0xa0]
mov ecx, dword [esp + 0xa0]
fld dword [esp + 0x44]
mov dword [esp + 0x40], ecx
mov ecx, dword [esi + 0x84]
fadd st(1)
fstp dword [esp + 0xa4]
mov edx, dword [esp + 0xa4]
fstp st(0)
mov dword [esp + 0x44], edx
fld dword [esp + 0x48]
fadd dword [esp + 0x1b0]
fstp dword [esp + 0xa8]
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x48], eax
mov eax, dword [ebx + 0xe8]
test eax, eax
jne 0x4473db
fld dword [esp + 0x34]
fmul dword [0x4dbbcc]
fstp dword [esp + 0xf8]
mov edx, dword [esp + 0xf8]
fld dword [esp + 0x38]
mov dword [esp + 0x4c], edx
fmul dword [0x4dbbcc]
fstp dword [esp + 0xfc]
fld dword [esp + 0x3c]
mov eax, dword [esp + 0xfc]
fmul dword [0x4dbbcc]
mov dword [esp + 0x50], eax
fstp dword [esp + 0x100]
mov edx, dword [esp + 0x100]
mov dword [esp + 0x54], edx
jmp 0x447434
cmp eax, 1
jne 0x447434
fld dword [esp + 0x34]
fmul dword [0x4db298]
fstp dword [esp + 0xe8]
mov eax, dword [esp + 0xe8]
fld dword [esp + 0x38]
mov dword [esp + 0x4c], eax
fmul dword [0x4db298]
fstp dword [esp + 0xec]
fld dword [esp + 0x3c]
mov edx, dword [esp + 0xec]
fmul dword [0x4db298]
mov dword [esp + 0x50], edx
fstp dword [esp + 0xf0]
mov eax, dword [esp + 0xf0]
mov dword [esp + 0x54], eax
test ecx, ecx
je 0x447447
lea edx, [esp + 0x40]
push edx
lea eax, [esp + 0x50]
push eax
call fcn.0041fa20
fild dword [esi + 0x10]
fcomp dword [0x4db294]
fnstsw ax
test ah, 0x44
jp 0x44762d
push esi
mov ecx, ebx
call fcn.00443410
jmp 0x44762d
cmp eax, 0x3e
jne 0x44762d
fld dword [esi + 0xf4]
fcomp dword [0x4db33c]
fnstsw ax
test ah, 5
jp 0x44762d
push 0
push 0xc
mov ecx, esi
call fcn.00419e90
lea edi, [eax + 0x24]
mov ecx, edi
mov edx, dword [ecx]
mov dword [esp + 0xcc], edx
mov eax, dword [ecx + 4]
mov dword [esp + 0xd0], eax
mov ecx, dword [ecx + 8]
mov eax, dword [ebx + 0xe8]
test eax, eax
mov dword [esp + 0xd4], ecx
mov ecx, dword [esi + 0x84]
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0
mov dword [esp + 0x90], 0
jne 0x44751f
mov edx, eax
mov dword [esp + 0xd8], eax
mov dword [esp + 0xdc], 0x424a6666
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 0x88], edx
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], edx
jmp 0x44756f
cmp eax, 1
jne 0x44756f
mov dword [esp + 0xc0], 0
mov eax, dword [esp + 0xc0]
mov dword [esp + 0xc4], 0x41200000
mov edx, dword [esp + 0xc4]
mov dword [esp + 0xc8], 0
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x8c], edx
mov dword [esp + 0x90], eax
lea edx, [esp + 0xcc]
push edx
lea eax, [esp + 0x8c]
push eax
call fcn.0041fa20
fld dword [esi + 0xf4]
fcomp dword [0x4fd1ec]
fnstsw ax
test ah, 0x44
jnp 0x44762d
push 0
mov ecx, esi
call fcn.00418aa0
add eax, 0x11c
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x7c], ecx
fld dword [esp + 0x7c]
mov ecx, dword [edi]
fchs
mov dword [esp + 0x80], edx
fld dword [esp + 0x80]
fchs
mov dword [esp + 0xcc], ecx
mov edx, dword [edi + 4]
fxch st(1)
mov ecx, dword [esi + 0x84]
fadd st(0), st(0)
test ecx, ecx
mov dword [esp + 0x84], eax
fstp dword [esp + 0x10c]
mov dword [esp + 0xd0], edx
mov eax, dword [edi + 8]
fadd st(0), st(0)
mov dword [esp + 0xd4], eax
mov dword [esp + 0x114], 0
fstp dword [esp + 0x110]
je 0x44762d
lea edx, [esp + 0xcc]
push edx
lea eax, [esp + 0x110]
push eax
call fcn.0041fa20
fld dword [esi + 0x8c]
fcomp dword [0x4dbbc8]
fnstsw ax
test ah, 5
jp 0x447665
mov eax, dword [esi + 0x84]
test eax, eax
je 0x447659
mov ecx, dword [ebx + 0xc]
mov ecx, dword [ecx + 0x103c]
push eax
call fcn.00421a60
mov edx, dword [ebx + 0x1c]
push esi
push edx
mov ecx, ebx
call fcn.0043c190
mov eax, dword [esp + 0x138]
test eax, eax
jne 0x446381
mov ecx, dword [esp + 0x23c]
pop edi
mov dword fs:[0], ecx
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret