Function at 0x402b60
Capabilities:
Contain obfuscated stackstrings
Parse pe header
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4c57a7
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x54
test byte [0x500b00], 1
push ebx
push ebp
push esi
push edi
mov ebx, ecx
jne 0x403afc
or dword [0x500b00], 1
push str.Music3
mov ecx, 0x4fe800
mov dword [esp + 0x70], 0
call fcn.0042aa80
push 0x4ccb72
mov ecx, 0x4fe808
mov byte [esp + 0x70], 1
call fcn.0042aa80
push fcn.0042a980
push fcn.0042a870
push 0x9e
push 8
push 0x4fe810
mov byte [esp + 0x80], 2
call fcn.004801f9
push str.Sound
mov ecx, 0x4fed00
mov byte [esp + 0x70], 3
call fcn.0042aa80
push str.BallExplosion
mov ecx, 0x4fed08
mov byte [esp + 0x70], 4
call fcn.0042aa80
push str.Sound
mov ecx, 0x4fed10
mov byte [esp + 0x70], 5
call fcn.0042aa80
push str.BallExplosion1
mov ecx, 0x4fed18
mov byte [esp + 0x70], 6
call fcn.0042aa80
push str.Sound
mov ecx, 0x4fed20
mov byte [esp + 0x70], 7
call fcn.0042aa80
push str.BallExplosion2
mov ecx, 0x4fed28
mov byte [esp + 0x70], 8
call fcn.0042aa80
push str.Sound
mov ecx, 0x4fed30
mov byte [esp + 0x70], 9
call fcn.0042aa80
push str.BallExplosion3
mov ecx, 0x4fed38
mov byte [esp + 0x70], 0xa
call fcn.0042aa80
push str.Sound
mov ecx, 0x4fed40
mov byte [esp + 0x70], 0xb
call fcn.0042aa80
push str.BallExplosion4
mov ecx, 0x4fed48
mov byte [esp + 0x70], 0xc
call fcn.0042aa80
push str.Sound
mov ecx, 0x4fed50
mov byte [esp + 0x70], 0xd
call fcn.0042aa80
push str.BallExplosion5
mov ecx, 0x4fed58
mov byte [esp + 0x70], 0xe
call fcn.0042aa80
push str.Sound
mov ecx, 0x4fed60
mov byte [esp + 0x70], 0xf
call fcn.0042aa80
push str.BallHit
mov ecx, 0x4fed68
mov byte [esp + 0x70], 0x10
call fcn.0042aa80
push str.Sound
mov ecx, 0x4fed70
mov byte [esp + 0x70], 0x11
call fcn.0042aa80
push str.BallHit2
mov ecx, 0x4fed78
mov byte [esp + 0x70], 0x12
call fcn.0042aa80
push str.Sound
mov ecx, 0x4fed80
mov byte [esp + 0x70], 0x13
call fcn.0042aa80
push str.BallLocoAngry
mov ecx, 0x4fed88
mov byte [esp + 0x70], 0x14
call fcn.0042aa80
push str.Sound
mov ecx, 0x4fed90
mov byte [esp + 0x70], 0x15
call fcn.0042aa80
push str.BallLocoPop
mov ecx, 0x4fed98
mov byte [esp + 0x70], 0x16
call fcn.0042aa80
push str.Sound
mov ecx, 0x4feda0
mov byte [esp + 0x70], 0x17
call fcn.0042aa80
push str.BallNew
mov ecx, 0x4feda8
mov byte [esp + 0x70], 0x18
call fcn.0042aa80
push str.Sound
mov ecx, 0x4fedb0
mov byte [esp + 0x70], 0x19
call fcn.0042aa80
push str.BallNew2
mov ecx, 0x4fedb8
mov byte [esp + 0x70], 0x1a
call fcn.0042aa80
push str.Sound
mov ecx, 0x4fedc0
mov byte [esp + 0x70], 0x1b
call fcn.0042aa80
push str.BallReload
mov ecx, 0x4fedc8
mov byte [esp + 0x70], 0x1c
call fcn.0042aa80
push str.Sound
mov ecx, 0x4fedd0
mov byte [esp + 0x70], 0x1d
call fcn.0042aa80
push str.BallThrow
mov ecx, 0x4fedd8
mov byte [esp + 0x70], 0x1e
call fcn.0042aa80
push str.Sound
mov ecx, 0x4fede0
mov byte [esp + 0x70], 0x1f
call fcn.0042aa80
push str.BallThrow2
mov ecx, 0x4fede8
mov byte [esp + 0x70], 0x20
call fcn.0042aa80
push str.Sound
mov ecx, 0x4fedf0
mov byte [esp + 0x70], 0x21
call fcn.0042aa80
push str.BallTrainLocoMerge
mov ecx, 0x4fedf8
mov byte [esp + 0x70], 0x22
call fcn.0042aa80
push str.Sound
mov ecx, 0x4fee00
mov byte [esp + 0x70], 0x23
call fcn.0042aa80
push str.BallTrainMerge
mov ecx, 0x4fee08
mov byte [esp + 0x70], 0x24
call fcn.0042aa80
push str.Sound
mov ecx, 0x4fee10
mov byte [esp + 0x70], 0x25
call fcn.0042aa80
push str.BallTrainRoll
mov ecx, 0x4fee18
mov byte [esp + 0x70], 0x26
call fcn.0042aa80
push str.Sound
mov ecx, 0x4fee20
mov byte [esp + 0x70], 0x27
call fcn.0042aa80
push str.BallTrainRun
mov ecx, 0x4fee28
mov byte [esp + 0x70], 0x28
call fcn.0042aa80
push str.Sound
mov ecx, 0x4fee30
mov byte [esp + 0x70], 0x29
call fcn.0042aa80
push str.BonusStarCatch
mov ecx, 0x4fee38
mov byte [esp + 0x70], 0x2a
call fcn.0042aa80
push str.Sound
mov ecx, 0x4fee40
mov byte [esp + 0x70], 0x2b
call fcn.0042aa80
push str.BonusStarNew
mov ecx, 0x4fee48
mov byte [esp + 0x70], 0x2c
call fcn.0042aa80
push str.Music
mov ecx, 0x4fee50
mov byte [esp + 0x70], 0x2d
call fcn.0042aa80
push str.BukaStartMus
mov ecx, 0x4fee58
mov byte [esp + 0x70], 0x2e
call fcn.0042aa80
mov byte [esp + 0x6c], 0x2f
push str.Music
mov ecx, 0x4fee60
call fcn.0042aa80
push str.BukWinEnd
mov ecx, 0x4fee68
mov byte [esp + 0x70], 0x30
call fcn.0042aa80
push str.Music
mov ecx, 0x4fee70
mov byte [esp + 0x70], 0x31
call fcn.0042aa80
push str.BukWinStart
mov ecx, 0x4fee78
mov byte [esp + 0x70], 0x32
call fcn.0042aa80
push fcn.0042a980
push fcn.0042a870
push 0x70
push 8
push 0x4fee80
mov byte [esp + 0x80], 0x33
call fcn.004801f9
push str.Music
mov ecx, 0x4ff200
mov byte [esp + 0x70], 0x34
call fcn.0042aa80
push str.ButterflyBookMusic
mov ecx, 0x4ff208
mov byte [esp + 0x70], 0x35
call fcn.0042aa80
push str.Sound
mov ecx, 0x4ff210
mov byte [esp + 0x70], 0x36
call fcn.0042aa80
push str.CannonExplosion
mov ecx, 0x4ff218
mov byte [esp + 0x70], 0x37
call fcn.0042aa80
push str.Sound
mov ecx, 0x4ff220
mov byte [esp + 0x70], 0x38
call fcn.0042aa80
push str.CannonFire
mov ecx, 0x4ff228
mov byte [esp + 0x70], 0x39
call fcn.0042aa80
push str.Sound
mov ecx, 0x4ff230
mov byte [esp + 0x70], 0x3a
call fcn.0042aa80
push str.CannonNew
mov ecx, 0x4ff238
mov byte [esp + 0x70], 0x3b
call fcn.0042aa80
push str.Sound
mov ecx, 0x4ff240
mov byte [esp + 0x70], 0x3c
call fcn.0042aa80
push str.ClickButton
mov ecx, 0x4ff248
mov byte [esp + 0x70], 0x3d
call fcn.0042aa80
push str.Sound
mov ecx, 0x4ff250
mov byte [esp + 0x70], 0x3e
call fcn.0042aa80
push str.ExtraLife
mov ecx, 0x4ff258
mov byte [esp + 0x70], 0x3f
call fcn.0042aa80
push str.Sound
mov ecx, 0x4ff260
mov byte [esp + 0x70], 0x40
call fcn.0042aa80
push str.FireballReload
mov ecx, 0x4ff268
mov byte [esp + 0x70], 0x41
call fcn.0042aa80
push fcn.0042a980
push fcn.0042a870
push 0x92
push 8
push 0x4ff270
mov byte [esp + 0x80], 0x42
call fcn.004801f9
push str.Music
mov ecx, 0x4ff700
mov byte [esp + 0x70], 0x43
call fcn.0042aa80
push str.GameplayMusicDanger
mov ecx, 0x4ff708
mov byte [esp + 0x70], 0x44
call fcn.0042aa80
push str.Sound
mov ecx, 0x4ff710
mov byte [esp + 0x70], 0x45
call fcn.0042aa80
push str.LocoFollow
mov ecx, 0x4ff718
mov byte [esp + 0x70], 0x46
call fcn.0042aa80
push str.Sound
mov ecx, 0x4ff720
mov byte [esp + 0x70], 0x47
call fcn.0042aa80
push str.LocoRun
mov ecx, 0x4ff728
mov byte [esp + 0x70], 0x48
call fcn.0042aa80
push str.Sound
mov ecx, 0x4ff730
mov byte [esp + 0x70], 0x49
call fcn.0042aa80
push str.LostLifeHole
mov ecx, 0x4ff738
mov byte [esp + 0x70], 0x4a
call fcn.0042aa80
push str.Sound
mov ecx, 0x4ff740
mov byte [esp + 0x70], 0x4b
call fcn.0042aa80
push str.MulticolorAction
mov ecx, 0x4ff748
mov byte [esp + 0x70], 0x4c
call fcn.0042aa80
push str.Sound
mov ecx, 0x4ff750
mov byte [esp + 0x70], 0x4d
call fcn.0042aa80
mov byte [esp + 0x6c], 0x4e
push str.MulticolorReload
mov ecx, 0x4ff758
call fcn.0042aa80
push str.Sound
mov ecx, 0x4ff760
mov byte [esp + 0x70], 0x4f
call fcn.0042aa80
push str.PistolFire
mov ecx, 0x4ff768
mov byte [esp + 0x70], 0x50
call fcn.0042aa80
push str.Sound
mov ecx, 0x4ff770
mov byte [esp + 0x70], 0x51
call fcn.0042aa80
push str.PistolNew
mov ecx, 0x4ff778
mov byte [esp + 0x70], 0x52
call fcn.0042aa80
push str.Sound
mov ecx, 0x4ff780
mov byte [esp + 0x70], 0x53
call fcn.0042aa80
push str.PowerUpCannonCatch
mov ecx, 0x4ff788
mov byte [esp + 0x70], 0x54
call fcn.0042aa80
push str.Sound
mov ecx, 0x4ff790
mov byte [esp + 0x70], 0x55
call fcn.0042aa80
push str.PowerUpComplete
mov ecx, 0x4ff798
mov byte [esp + 0x70], 0x56
call fcn.0042aa80
push str.Sound
mov ecx, 0x4ff7a0
mov byte [esp + 0x70], 0x57
call fcn.0042aa80
push str.PowerUpFireballCatch
mov ecx, 0x4ff7a8
mov byte [esp + 0x70], 0x58
call fcn.0042aa80
push str.Sound
mov ecx, 0x4ff7b0
mov byte [esp + 0x70], 0x59
call fcn.0042aa80
push str.PowerUpFireballShot
mov ecx, 0x4ff7b8
mov byte [esp + 0x70], 0x5a
call fcn.0042aa80
push str.Sound
mov ecx, 0x4ff7c0
mov byte [esp + 0x70], 0x5b
call fcn.0042aa80
push str.PowerUpMulticolorCatch
mov ecx, 0x4ff7c8
mov byte [esp + 0x70], 0x5c
call fcn.0042aa80
push str.Sound
mov ecx, 0x4ff7d0
mov byte [esp + 0x70], 0x5d
call fcn.0042aa80
mov byte [esp + 0x6c], 0x5e
push str.PowerUpNew
mov ecx, 0x4ff7d8
call fcn.0042aa80
push str.Sound
mov ecx, 0x4ff7e0
mov byte [esp + 0x70], 0x5f
call fcn.0042aa80
push str.PowerUpPistolCatch
mov ecx, 0x4ff7e8
mov byte [esp + 0x70], 0x60
call fcn.0042aa80
push str.Sound
mov ecx, 0x4ff7f0
mov byte [esp + 0x70], 0x61
call fcn.0042aa80
push str.PowerUpReverseCatch
mov ecx, 0x4ff7f8
mov byte [esp + 0x70], 0x62
call fcn.0042aa80
push str.Sound
mov ecx, 0x4ff800
mov byte [esp + 0x70], 0x63
call fcn.0042aa80
push str.PowerUpScopeCatch
mov ecx, 0x4ff808
mov byte [esp + 0x70], 0x64
call fcn.0042aa80
push str.Sound
mov ecx, 0x4ff810
mov byte [esp + 0x70], 0x65
call fcn.0042aa80
push str.PowerUpScopeEnd
mov ecx, 0x4ff818
mov byte [esp + 0x70], 0x66
call fcn.0042aa80
push str.Sound
mov ecx, 0x4ff820
mov byte [esp + 0x70], 0x67
call fcn.0042aa80
push str.PowerUpSlowdownCatch
mov ecx, 0x4ff828
mov byte [esp + 0x70], 0x68
call fcn.0042aa80
push str.Sound
mov ecx, 0x4ff830
mov byte [esp + 0x70], 0x69
call fcn.0042aa80
push str.PowerUpThunderCatch
mov ecx, 0x4ff838
mov byte [esp + 0x70], 0x6a
call fcn.0042aa80
push str.Sound
mov ecx, 0x4ff840
mov byte [esp + 0x70], 0x6b
call fcn.0042aa80
push str.ProgressComplete
mov ecx, 0x4ff848
mov byte [esp + 0x70], 0x6c
call fcn.0042aa80
push 0x4cc83c
mov ecx, 0x4ff850
mov byte [esp + 0x70], 0x6d
call fcn.0042aa80
push str.Textures
mov ecx, 0x4ff858
mov byte [esp + 0x70], 0x6e
call fcn.0042aa80
push 0x4cc83c
mov ecx, 0x4ff860
mov byte [esp + 0x70], 0x6f
call fcn.0042aa80
push str.TexturesA
mov ecx, 0x4ff868
mov byte [esp + 0x70], 0x70
call fcn.0042aa80
push 0x4cc83c
mov ecx, 0x4ff870
mov byte [esp + 0x70], 0x71
call fcn.0042aa80
push str.TexturesA2
mov ecx, 0x4ff878
mov byte [esp + 0x70], 0x72
call fcn.0042aa80
push fcn.0042a980
push fcn.0042a870
push 0x70
push 8
push 0x4ff880
mov byte [esp + 0x80], 0x73
call fcn.004801f9
push str.Mesh
mov ecx, 0x4ffc00
mov byte [esp + 0x70], 0x74
call fcn.0042aa80
push str.BallBlue
mov ecx, 0x4ffc08
mov byte [esp + 0x70], 0x75
call fcn.0042aa80
push str.Mesh
mov ecx, 0x4ffc10
mov byte [esp + 0x70], 0x76
call fcn.0042aa80
push str.BallCyan
mov ecx, 0x4ffc18
mov byte [esp + 0x70], 0x77
call fcn.0042aa80
push str.Mesh
mov ecx, 0x4ffc20
mov byte [esp + 0x70], 0x78
call fcn.0042aa80
push str.BallFireball
mov ecx, 0x4ffc28
mov byte [esp + 0x70], 0x79
call fcn.0042aa80
push str.Mesh
mov ecx, 0x4ffc30
mov byte [esp + 0x70], 0x7a
call fcn.0042aa80
push str.BallFireballFree
mov ecx, 0x4ffc38
mov byte [esp + 0x70], 0x7b
call fcn.0042aa80
push str.Mesh
mov ecx, 0x4ffc40
mov byte [esp + 0x70], 0x7c
call fcn.0042aa80
push str.BallGreen
mov ecx, 0x4ffc48
mov byte [esp + 0x70], 0x7d
call fcn.0042aa80
mov byte [esp + 0x6c], 0x7e
push str.Mesh
mov ecx, 0x4ffc50
call fcn.0042aa80
push str.BallLocomotive
mov ecx, 0x4ffc58
mov byte [esp + 0x70], 0x7f
call fcn.0042aa80
push str.Mesh
mov ecx, 0x4ffc60
mov byte [esp + 0x70], 0x80
call fcn.0042aa80
push str.BallLocomotiveAngry
mov ecx, 0x4ffc68
mov byte [esp + 0x70], 0x81
call fcn.0042aa80
push str.Mesh
mov ecx, 0x4ffc70
mov byte [esp + 0x70], 0x82
call fcn.0042aa80
push str.BallLocomotiveDown
mov ecx, 0x4ffc78
mov byte [esp + 0x70], 0x83
call fcn.0042aa80
push str.Mesh
mov ecx, 0x4ffc80
mov byte [esp + 0x70], 0x84
call fcn.0042aa80
push str.BallLocomotiveLostEnd
mov ecx, 0x4ffc88
mov byte [esp + 0x70], 0x85
call fcn.0042aa80
push str.Mesh
mov ecx, 0x4ffc90
mov byte [esp + 0x70], 0x86
call fcn.0042aa80
push str.BallLocomotiveLostMid
mov ecx, 0x4ffc98
mov byte [esp + 0x70], 0x87
call fcn.0042aa80
push str.Mesh
mov ecx, 0x4ffca0
mov byte [esp + 0x70], 0x88
call fcn.0042aa80
push str.BallLocomotiveLostStart
mov ecx, 0x4ffca8
mov byte [esp + 0x70], 0x89
call fcn.0042aa80
push str.Mesh
mov ecx, 0x4ffcb0
mov byte [esp + 0x70], 0x8a
call fcn.0042aa80
push str.BallLocomotiveRun
mov ecx, 0x4ffcb8
mov byte [esp + 0x70], 0x8b
call fcn.0042aa80
push str.Mesh
mov ecx, 0x4ffcc0
mov byte [esp + 0x70], 0x8c
call fcn.0042aa80
push str.BallMulticolor
mov ecx, 0x4ffcc8
mov byte [esp + 0x70], 0x8d
call fcn.0042aa80
mov byte [esp + 0x6c], 0x8e
push str.Mesh
mov ecx, 0x4ffcd0
call fcn.0042aa80
push str.BallRed
mov ecx, 0x4ffcd8
mov byte [esp + 0x70], 0x8f
call fcn.0042aa80
push str.Mesh
mov ecx, 0x4ffce0
mov byte [esp + 0x70], 0x90
call fcn.0042aa80
push str.BallViolet
mov ecx, 0x4ffce8
mov byte [esp + 0x70], 0x91
call fcn.0042aa80
push str.Mesh
mov ecx, 0x4ffcf0
mov byte [esp + 0x70], 0x92
call fcn.0042aa80
push str.BallWhite
mov ecx, 0x4ffcf8
mov byte [esp + 0x70], 0x93
call fcn.0042aa80
push str.Mesh
mov ecx, 0x4ffd00
mov byte [esp + 0x70], 0x94
call fcn.0042aa80
push str.BallYellow
mov ecx, 0x4ffd08
mov byte [esp + 0x70], 0x95
call fcn.0042aa80
push str.Mesh
mov ecx, 0x4ffd10
mov byte [esp + 0x70], 0x96
call fcn.0042aa80
push str.BonusStar
mov ecx, 0x4ffd18
mov byte [esp + 0x70], 0x97
call fcn.0042aa80
push str.Mesh
mov ecx, 0x4ffd20
mov byte [esp + 0x70], 0x98
call fcn.0042aa80
push str.BukBallThrow
mov ecx, 0x4ffd28
mov byte [esp + 0x70], 0x99
call fcn.0042aa80
push str.Mesh
mov ecx, 0x4ffd30
mov byte [esp + 0x70], 0x9a
call fcn.0042aa80
push str.BukLose
mov ecx, 0x4ffd38
mov byte [esp + 0x70], 0x9b
call fcn.0042aa80
push str.Mesh
mov ecx, 0x4ffd40
mov byte [esp + 0x70], 0x9c
call fcn.0042aa80
push str.BukLostTryAgain
mov ecx, 0x4ffd48
mov byte [esp + 0x70], 0x9d
call fcn.0042aa80
push str.Mesh
mov ecx, 0x4ffd50
mov byte [esp + 0x70], 0x9e
call fcn.0042aa80
push str.BukMortarFire
mov ecx, 0x4ffd58
mov byte [esp + 0x70], 0x9f
call fcn.0042aa80
push fcn.0042a980
push fcn.0042a870
push 0x74
push 8
push 0x4ffd60
mov byte [esp + 0x80], 0xa0
call fcn.004801f9
push str.Mesh
mov ecx, 0x500100
mov byte [esp + 0x70], 0xa1
call fcn.0042aa80
push str.BukMortarStart
mov ecx, 0x500108
mov byte [esp + 0x70], 0xa2
call fcn.0042aa80
push str.Mesh
mov ecx, 0x500110
mov byte [esp + 0x70], 0xa3
call fcn.0042aa80
push str.BukMortarWingFlap
mov ecx, 0x500118
mov byte [esp + 0x70], 0xa4
call fcn.0042aa80
push str.Mesh
mov ecx, 0x500120
mov byte [esp + 0x70], 0xa5
call fcn.0042aa80
push str.BukPistolFire
mov ecx, 0x500128
mov byte [esp + 0x70], 0xa6
call fcn.0042aa80
push str.Mesh
mov ecx, 0x500130
mov byte [esp + 0x70], 0xa7
call fcn.0042aa80
push str.BukPistolMortarChange
mov ecx, 0x500138
mov byte [esp + 0x70], 0xa8
call fcn.0042aa80
push str.Mesh
mov ecx, 0x500140
mov byte [esp + 0x70], 0xa9
call fcn.0042aa80
push str.BukPistolStart
mov ecx, 0x500148
mov byte [esp + 0x70], 0xaa
call fcn.0042aa80
push str.Mesh
mov ecx, 0x500150
mov byte [esp + 0x70], 0xab
call fcn.0042aa80
push str.BukPistolWingFlap
mov ecx, 0x500158
mov byte [esp + 0x70], 0xac
call fcn.0042aa80
push str.Mesh
mov ecx, 0x500160
mov byte [esp + 0x70], 0xad
call fcn.0042aa80
mov byte [esp + 0x6c], 0xae
push str.BukStartLeft2
mov ecx, 0x500168
call fcn.0042aa80
push str.Mesh
mov ecx, 0x500170
mov byte [esp + 0x70], 0xaf
call fcn.0042aa80
push str.BukStartLeft
mov ecx, 0x500178
mov byte [esp + 0x70], 0xb0
call fcn.0042aa80
push fcn.0042a980
push fcn.0042a870
push 0x90
push 8
push 0x500180
mov byte [esp + 0x80], 0xb1
call fcn.004801f9
push str.Mesh
mov ecx, 0x500600
mov byte [esp + 0x70], 0xb2
call fcn.0042aa80
push str.BukWinEnd
mov ecx, 0x500608
mov byte [esp + 0x70], 0xb3
call fcn.0042aa80
push str.Mesh
mov ecx, 0x500610
mov byte [esp + 0x70], 0xb4
call fcn.0042aa80
push str.BukWingFlap
mov ecx, 0x500618
mov byte [esp + 0x70], 0xb5
call fcn.0042aa80
push str.Mesh
mov ecx, 0x500620
mov byte [esp + 0x70], 0xb6
call fcn.0042aa80
push str.BukWinStart
mov ecx, 0x500628
mov byte [esp + 0x70], 0xb7
call fcn.0042aa80
push str.Mesh
mov ecx, 0x500630
mov byte [esp + 0x70], 0xb8
call fcn.0042aa80
push str.CannonBall
mov ecx, 0x500638
mov byte [esp + 0x70], 0xb9
call fcn.0042aa80
push str.Mesh
mov ecx, 0x500640
mov byte [esp + 0x70], 0xba
call fcn.0042aa80
push str.Prison
mov ecx, 0x500648
mov byte [esp + 0x70], 0xbb
call fcn.0042aa80
push str.Mesh
mov ecx, 0x500650
mov byte [esp + 0x70], 0xbc
call fcn.0042aa80
push str.Wasp
mov ecx, 0x500658
mov byte [esp + 0x70], 0xbd
call fcn.0042aa80
push fcn.0042a980
push fcn.0042a870
push 0x94
push 8
push 0x500660
mov byte [esp + 0x80], 0xbe
call fcn.004801f9
push 0x4cba60
call fcn.004801e7
add esp, 4
mov dword [esp + 0x6c], 0xffffffff
cmp dword [ebx + 0x594], 7
jge 0x403d33
lea ecx, [esp + 0x40]
call fcn.0042b2a0
mov dword [esp + 0x14], 0
lea ebx, [ebx]
mov ebp, dword [ebx + 0x594]
mov ecx, dword [esp + 0x14]
lea ebp, [ebp + ebp*4]
shl ebp, 4
add ebp, ecx
shl ebp, 4
mov esi, dword [ebp + 0x4fe804]
lea eax, [ebp + 0x4fe800]
mov edi, str.Sound
mov ecx, 6
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x403b7b
push edx
mov ecx, dword [ebx + 0x2ec]
push 1
lea eax, [ebp + 0x4fe808]
push eax
call fcn.0043fee0
test eax, eax
je 0x403cfe
mov ecx, eax
call fcn.0043fac0
jmp 0x403cfe
mov esi, dword [eax + 4]
mov edi, str.Music
mov ecx, 6
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x403b92
push 1
jmp 0x403b53
push str.Music3
mov ecx, eax
call fcn.004027d0
test al, al
je 0x403c3f
push str.GameplayMusic3
lea ecx, [esp + 0x2c]
call fcn.0042aa80
push str.GameplayMusic2
lea ecx, [esp + 0x24]
mov dword [esp + 0x70], 0xbf
call fcn.0042aa80
push str.GameplayMusic
lea ecx, [esp + 0x1c]
mov byte [esp + 0x70], 0xc0
call fcn.0042aa80
mov ecx, dword [ebx + 0x2ec]
lea edx, [esp + 0x28]
push edx
lea eax, [esp + 0x24]
push eax
lea edx, [esp + 0x20]
push edx
mov byte [esp + 0x78], 0xc1
call fcn.00440030
lea ecx, [esp + 0x18]
mov esi, eax
mov byte [esp + 0x6c], 0xc0
call fcn.0042a980
lea ecx, [esp + 0x20]
mov byte [esp + 0x6c], 0xbf
call fcn.0042a980
lea ecx, [esp + 0x28]
mov dword [esp + 0x6c], 0xffffffff
call fcn.0042a980
test esi, esi
je 0x403cfe
mov ecx, esi
call fcn.0043fac0
jmp 0x403cfe
lea esi, [ebp + 0x4fe800]
push 0x4cc83c
mov ecx, esi
call fcn.004027d0
test al, al
je 0x403c71
mov ecx, dword [ebx + 0x2e4]
push 0x4eada4
lea eax, [ebp + 0x4fe808]
push eax
call fcn.00431460
jmp 0x403cfe
push str.Mesh
mov ecx, esi
call fcn.004027d0
test al, al
je 0x403d10
push 0x4ccb72
lea ecx, [esp + 0x3c]
call fcn.0042aa80
push 0x4ccb72
lea ecx, [esp + 0x34]
mov dword [esp + 0x70], 0xc2
call fcn.0042aa80
mov ebp, dword [esp + 0x14]
mov ecx, dword [ebx + 0x2e8]
lea edx, [esp + 0x38]
push edx
lea eax, [esp + 0x34]
push eax
mov eax, dword [ebx + 0x594]
lea edx, [eax + eax*4]
shl edx, 4
add edx, ebp
shl edx, 4
add edx, 0x4fe808
push edx
mov byte [esp + 0x78], 0xc3
call fcn.0043d1e0
lea ecx, [esp + 0x30]
mov byte [esp + 0x6c], 0xc2
call fcn.0042a980
lea ecx, [esp + 0x38]
mov dword [esp + 0x6c], 0xffffffff
call fcn.0042a980
mov eax, dword [esp + 0x14]
inc eax
cmp eax, 0x50
mov dword [esp + 0x14], eax
jl 0x403b20
lea ecx, [esp + 0x40]
call fcn.0042b350
mov eax, dword [ebx + 0x594]
fstp dword [eax*4 + 0x4fe7e0]
mov eax, dword [ebx + 0x594]
inc eax
mov dword [ebx + 0x594], eax
mov ecx, dword [esp + 0x64]
pop edi
xor eax, eax
mov dword fs:[0], ecx
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret