Function at 0x41a810
Capabilities:
Contain obfuscated stackstrings
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x1a0
push ebx
push ebp
mov ebx, ecx
push esi
lea esi, [ebx + 0x4e8]
push edi
mov ecx, esi
mov dword [esp + 0x18], ebx
call fcn.0044aac0
test eax, eax
jbe 0x41a894
push 0
mov ecx, esi
call fcn.0044aad0
test eax, eax
mov ecx, esi
push 0
je 0x41a85c
call fcn.0044aad0
lea edx, [esp + 0xb0]
mov edi, edi
mov cl, byte [eax]
inc eax
mov byte [edx], cl
inc edx
test cl, cl
jne 0x41a850
jmp 0x41a872
call fcn.0044b700
lea edx, [esp + 0xb0]
mov cl, byte [eax]
inc eax
mov byte [edx], cl
inc edx
test cl, cl
jne 0x41a868
fld dword [ebx + 0x508]
fcomp dword [0x4a2974]
fnstsw ax
test ah, 0x41
jne 0x41a894
lea eax, [esp + 0xb0]
push eax
mov ecx, ebx
call fcn.00419d50
mov ecx, ebx
call fcn.00419190
mov edi, eax
test edi, edi
mov dword [esp + 0x24], edi
je 0x41aadb
mov ecx, dword [0x4b3118]
mov eax, dword [ecx + 0x64]
mov edx, dword [eax + 0x15c]
imul edx, edx, 0x34
add edx, eax
mov al, byte [edx + edi + 0x43]
test al, al
jne 0x41aadb
mov ecx, dword [ecx + 0x44]
push str.FFText
call fcn.00402320
mov ecx, dword [eax + 4]
mov dword [esp + 0x1c], eax
mov eax, dword [ecx]
cmp eax, ecx
mov dword [esp + 0x14], eax
je 0x41a9c5
jmp 0x41a8f0
mov ecx, dword [0x4b3118]
mov eax, dword [eax + 8]
mov edi, dword [ecx + 4]
mov ebp, dword [eax + 0x58]
mov esi, dword [edi + 0xcac]
mov ecx, ebp
mov bl, byte [ecx]
mov dl, bl
cmp bl, byte [esi]
jne 0x41a92b
test dl, dl
je 0x41a927
mov bl, byte [ecx + 1]
mov dl, bl
cmp bl, byte [esi + 1]
jne 0x41a92b
add ecx, 2
add esi, 2
test dl, dl
jne 0x41a907
xor ecx, ecx
jmp 0x41a930
sbb ecx, ecx
sbb ecx, 0xffffffff
test ecx, ecx
je 0x41a9a2
mov esi, dword [edi + 0xcb0]
mov ecx, ebp
lea esp, [esp]
mov bl, byte [ecx]
mov dl, bl
cmp bl, byte [esi]
jne 0x41a964
test dl, dl
je 0x41a960
mov bl, byte [ecx + 1]
mov dl, bl
cmp bl, byte [esi + 1]
jne 0x41a964
add ecx, 2
add esi, 2
test dl, dl
jne 0x41a940
xor ecx, ecx
jmp 0x41a969
sbb ecx, ecx
sbb ecx, 0xffffffff
test ecx, ecx
je 0x41a9a2
mov esi, dword [edi + 0xd5c]
mov ecx, ebp
mov bl, byte [ecx]
mov dl, bl
cmp bl, byte [esi]
jne 0x41a999
test dl, dl
je 0x41a995
mov bl, byte [ecx + 1]
mov dl, bl
cmp bl, byte [esi + 1]
jne 0x41a999
add ecx, 2
add esi, 2
test dl, dl
jne 0x41a975
xor ecx, ecx
jmp 0x41a99e
sbb ecx, ecx
sbb ecx, 0xffffffff
test ecx, ecx
jne 0x41a9a6
mov byte [eax + 0x19], 1
mov edx, dword [esp + 0x14]
mov eax, dword [edx]
mov ecx, dword [esp + 0x1c]
cmp eax, dword [ecx + 4]
mov dword [esp + 0x14], eax
jne 0x41a8f0
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 0x24]
mov edx, dword [0x4b3118]
mov dword [esp + 0x2c], str.Bonus_
mov dword [esp + 0x30], 0x3f000000
mov dword [esp + 0x34], 0x3f19999a
mov dword [esp + 0x38], 0x3ecccccd
mov dword [esp + 0x3c], 0x3e4ccccd
mov eax, dword [edx + 4]
mov ecx, dword [eax + 0xd50]
push 0xa4
mov dword [esp + 0x30], ecx
call fcn.00459630
mov esi, eax
add esp, 4
test esi, esi
je 0x41aa34
mov ecx, esi
call fcn.00402190
push 0x190
push str.Helvetica
lea ecx, [esi + 0x30]
mov dword [esi], 0x4a224c
call fcn.00448910
jmp 0x41aa36
xor esi, esi
mov eax, dword [0x4b3118]
mov ecx, dword [eax + 0x44]
lea edx, [esp + 0x2c]
push edx
push esi
call fcn.00402460
mov edx, dword [0x4b3118]
lea ecx, [esp + 0x4c]
push ecx
mov byte [esp + 0x50], 0xff
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0x3f800000
mov byte [esp + 0x5c], 0
mov byte [esp + 0x5d], 0
mov dword [esp + 0x60], 0x3f800000
mov dword [esp + 0x64], 0x4e6e6b28
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
mov byte [esp + 0x5e], 0
mov ecx, dword [edx + 0xc]
push str.sapphire.ogg
call fcn.0042b760
mov eax, dword [0x4b3118]
mov ecx, dword [eax + 0x64]
mov edx, dword [ecx + 0x15c]
dec edi
push edi
push edx
call fcn.0045f6b0
mov al, byte [ebx + 0x610]
test al, al
je 0x41ac70
mov eax, dword [esp + 0x18]
mov dl, byte [eax + 0x2d]
mov cl, byte [eax + 0x2c]
mov byte [esp + 0x21], dl
mov edx, dword [eax + 0x34]
and edx, 0x80000001
mov byte [esp + 0x2b], cl
mov cl, byte [eax + 0x2e]
mov byte [esp + 0x22], cl
jns 0x41ab12
dec edx
or edx, 0xfffffffe
inc edx
mov ebp, dword [esp + 0x18]
je 0x41ab24
mov al, byte [ebp + 0x30]
mov bl, byte [ebp + 0x2f]
mov byte [esp + 0x10], al
jmp 0x41ab32
mov eax, dword [esp + 0x18]
mov cl, byte [eax + 0x2f]
mov bl, byte [eax + 0x30]
mov byte [esp + 0x10], cl
mov dl, byte [ebp + 0x31]
mov eax, dword [ebp + 0x28]
lea ecx, [esp + 0x13]
push ecx
mov byte [esp + 0x27], dl
mov byte [eax + 0x20cc], 1
mov ecx, dword [ebp + 0x28]
lea edx, [esp + 0x4f]
push edx
lea eax, [esp + 0x52]
push eax
mov byte [esp + 0x1e], bl
call fcn.0041f220
test bl, bl
mov byte [esp + 0x11], 0
jbe 0x41ac70
mov al, byte [esp + 0x13]
nop
mov cl, byte [esp + 0x10]
xor bl, bl
test cl, cl
jbe 0x41ac5a
movzx ecx, byte [esp + 0x23]
movzx edx, byte [esp + 0x22]
lea edi, [ecx + edx]
mov dword [esp + 0x1c], edi
nop
movzx edx, al
lea ecx, [edi - 1]
cmp ecx, edx
jge 0x41ac4c
movzx ecx, al
cmp edi, ecx
mov dword [esp + 0x14], edi
jge 0x41ac48
mov al, byte [esp + 0x21]
mov ecx, dword [ebp + 0x28]
xor edx, edx
mov dl, byte [esp + 0x11]
add dl, al
push edi
xor eax, eax
mov al, bl
push edx
add al, byte [esp + 0x33]
push eax
call fcn.0041cf50
mov esi, eax
test esi, esi
je 0x41ac3e
fld dword [esi + 0x600]
fcomp dword [0x4a7e1c]
fnstsw ax
test ah, 1
jne 0x41ac3e
fild dword [esp + 0x14]
fmul dword [0x4a3688]
fstp dword [esp + 0x14]
call fcn.00463e18
mov edx, dword [esi]
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
lea eax, [esp + 0x2c]
push eax
mov ecx, esi
fmul dword [0x4a2400]
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0x3f800000
mov dword [esp + 0x38], 0
fmul dword [0x4a201c]
fsubr dword [esp + 0x18]
fstp dword [esi + 0x600]
call dword [edx + 0x14]
mov byte [esi + 0x18], 1
mov al, byte [esp + 0x13]
inc edi
jmp 0x41ab9e
mov edi, dword [esp + 0x1c]
mov cl, byte [esp + 0x10]
inc bl
cmp bl, cl
jb 0x41ab90
mov cl, byte [esp + 0x11]
mov dl, byte [esp + 0x12]
inc cl
cmp cl, dl
mov byte [esp + 0x11], cl
jb 0x41ab70
mov ebp, dword [esp + 0x18]
mov al, byte [ebp + 0x60f]
test al, al
mov ebx, 0x3f800000
je 0x41ad17
mov ecx, dword [ebp + 0x28]
push 1
push 9
push ebp
call fcn.00420470
push 0x3c
mov dword [esp + 0x48], 0x3e4ccccd
mov dword [esp + 0x3c], 0x3f666666
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0x3e4ccccd
mov dword [esp + 0x38], 0x3e4ccccd
call fcn.00459630
mov esi, eax
xor edi, edi
add esp, 4
cmp esi, edi
je 0x41acff
mov ecx, esi
call fcn.00402190
mov dword [esi], 0x4a2978
mov eax, 0x3f000000
mov dword [esi + 0x1c], edi
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], eax
mov dword [esi + 0x34], edi
mov dword [esi + 0x30], ebx
mov dword [esi + 0x2c], ebx
mov dword [esi + 0x28], ebx
jmp 0x41ad01
xor esi, esi
mov edx, dword [0x4b3118]
lea ecx, [esp + 0x2c]
push ecx
mov ecx, dword [edx + 0x44]
push esi
call fcn.00402460
jmp 0x41ad19
xor edi, edi
mov eax, dword [ebp + 0x29c]
cmp eax, edi
je 0x41ae08
cmp eax, 1
je 0x41ad59
push 8
push str.TREASURE
lea ecx, [ebp + 0x4e8]
call fcn.0044a950
push eax
call fcn.0049b0e8
add esp, 0xc
test eax, eax
jne 0x41ae02
mov dword [ebp + 0x29c], 1
lea ecx, [ebp + 0x4e8]
call fcn.0044a950
lea edx, [esp + 0xb0]
jmp 0x41ad70
mov cl, byte [eax]
inc eax
mov byte [edx], cl
inc edx
test cl, cl
jne 0x41ad70
mov ecx, ebp
call fcn.00419270
test al, al
je 0x41af5d
lea eax, [esp + 0xb0]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x41ad93
sub eax, edx
lea eax, [esp + eax + 0xb0]
push 0x380
mov byte [eax - 8], 0x70
mov byte [eax - 7], 0x72
mov byte [eax - 6], 0x6f
mov byte [eax - 5], 0x6a
call fcn.00459630
mov esi, eax
add esp, 4
cmp esi, edi
je 0x41aeae
mov ecx, esi
call fcn.00402190
lea edi, [esi + 0x48]
mov ecx, edi
mov dword [esi], 0x4a2998
call fcn.004085a0
push 0
lea ecx, [esi + 0x270]
mov dword [edi], 0x4a22f4
mov dword [edi + 4], 1
call fcn.0044c9b0
xor edi, edi
jmp 0x41aeb0
mov dword [ebp + 0x29c], edi
mov ecx, ebp
call fcn.00419270
test al, al
jne 0x41ad59
mov ecx, ebp
call fcn.004192e0
test al, al
jne 0x41ad59
mov ecx, ebp
call fcn.00418b30
test al, al
je 0x41ae43
mov ecx, dword [ebp + 0x28]
push 1
push 1
push ebp
call fcn.00420470
jmp 0x41b11b
mov al, byte [ebp + 0x60d]
test al, al
jne 0x41ae9c
mov ecx, ebp
call fcn.004190d0
test al, al
jne 0x41ae9c
mov al, byte [ebp + 0x60e]
test al, al
je 0x41ae74
mov ecx, dword [ebp + 0x28]
push 1
push 3
push ebp
call fcn.00420470
jmp 0x41b11b
mov ecx, ebp
call fcn.00419610
cmp eax, edi
mov ecx, dword [ebp + 0x28]
push 1
je 0x41ae90
push eax
push ebp
call fcn.00420470
jmp 0x41b11b
push edi
push ebp
call fcn.00420470
jmp 0x41b11b
mov ecx, dword [ebp + 0x28]
push 1
push 2
push ebp
call fcn.00420470
jmp 0x41b11b
xor esi, esi
mov eax, dword [0x4b3118]
mov ecx, dword [eax + 0x40]
push edi
push esi
call fcn.00402460
mov esi, eax
mov eax, dword [ebp + 0x4dc]
fld dword [eax + 8]
mov edx, dword [esi]
fld dword [eax + 4]
mov ecx, esi
fld dword [eax]
lea eax, [esp + 0x2c]
fsub dword [0x4a2020]
push eax
fstp dword [esp + 0x30]
fstp dword [esp + 0x34]
fstp dword [esp + 0x38]
call dword [edx + 0x10]
mov dword [esi + 0x268], 7
mov eax, dword [ebp + 0x34]
cmp eax, 3
ja case.default.0x41aeff
jmp dword [eax*4 + 0x41b848]
sub esp, 0xc
mov eax, esp
mov dword [eax], 0xbf800000
mov dword [eax + 8], edi
jmp 0x41af3a
sub esp, 0xc
mov eax, esp
mov dword [eax + 8], ebx
jmp 0x41af38
sub esp, 0xc
mov eax, esp
mov dword [eax], ebx
mov dword [eax + 8], edi
jmp 0x41af3a
sub esp, 0xc
mov eax, esp
mov dword [eax + 8], 0xbf800000
mov dword [eax], edi
mov ecx, esi
mov dword [eax + 4], edi
call fcn.00417200
lea ecx, [esp + 0xb0]
push ecx
mov ecx, esi
mov dword [esi + 0x26c], 0x42200000
call fcn.00417c20
lea eax, [esp + 0xb0]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x41af67
sub eax, edx
mov byte [esp + eax + 0xb2], cl
mov ecx, ebp
mov byte [esp + eax + 0xa8], 0x61
mov byte [esp + eax + 0xa9], 0x63
mov byte [esp + eax + 0xaa], 0x74
mov byte [esp + eax + 0xab], 0x69
mov byte [esp + eax + 0xac], 0x76
mov byte [esp + eax + 0xad], 0x65
mov byte [esp + eax + 0xae], 0x2e
mov byte [esp + eax + 0xaf], 0x64
mov byte [esp + eax + 0xb0], 0x6d
mov byte [esp + eax + 0xb1], 0x66
call fcn.004192e0
test al, al
je 0x41afdc
mov eax, 9
push 1
push eax
jmp 0x41b021
mov ecx, ebp
call fcn.00419270
test al, al
je case.default.0x41afef
mov eax, dword [ebp + 0x34]
cmp eax, 3
ja case.default.0x41afef
jmp dword [eax*4 + 0x41b858]
mov eax, 8
push 1
push eax
jmp 0x41b021
mov eax, 0xb
push 1
push eax
jmp 0x41b021
mov eax, 7
push 1
push eax
jmp 0x41b021
mov eax, 0xc
push 1
push eax
jmp 0x41b021
push 1
push edi
mov ecx, dword [ebp + 0x28]
push ebp
call fcn.00420470
lea eax, [ebp + 0x4f4]
mov ecx, dword [eax]
lea edx, [esp + 0xb0]
mov dword [esp + 0x4c], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x34], eax
mov dword [esp + 0x64], eax
mov eax, dword [ebp + 0x34]
mov byte [esp + 0x68], al
and eax, 0x80000001
mov dword [esp + 0x58], 0x3f800000
mov dword [esp + 0x50], 1
mov dword [esp + 0x54], 0x3f000000
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], edx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], edx
jns 0x41b086
dec eax
or eax, 0xfffffffe
inc eax
je 0x41b090
mov al, byte [ebp + 0x30]
mov cl, byte [ebp + 0x2f]
jmp 0x41b096
mov al, byte [ebp + 0x2f]
mov cl, byte [ebp + 0x30]
mov edx, dword [ebp + 0x28]
mov byte [edx + 0x20cc], 1
push 0x14c
mov byte [esp + 0x6d], al
mov byte [esp + 0x6e], cl
call fcn.00459630
mov esi, eax
add esp, 4
cmp esi, edi
je 0x41b0d3
mov ecx, esi
call fcn.00402190
push edi
lea ecx, [esi + 0x3c]
mov dword [esi], 0x4a2dc4
call fcn.0044c9b0
jmp 0x41b0d5
xor esi, esi
mov ecx, dword [0x4b3118]
mov ecx, dword [ecx + 0x44]
lea eax, [esp + 0x4c]
push eax
push esi
call fcn.00402460
mov edx, dword [ebp + 0x510]
mov ecx, dword [ebp + 0x508]
lea esi, [eax + 0x3c]
mov eax, dword [ebp + 0x50c]
push edx
push eax
push ecx
mov ecx, esi
call fcn.00449330
push 0x4a5b74
lea edx, [ebp + 0x56c]
push edx
mov ecx, esi
call fcn.004490c0
fld dword [ebp + 0x508]
mov eax, dword [ebp + 0x5c]
fcomp dword [0x4a2974]
mov ecx, dword [ebp + 0x60]
mov edx, dword [ebp + 0x64]
mov dword [esp + 0x98], eax
mov byte [esp + 0x80], 0xff
fnstsw ax
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0x3f800000
test ah, 0x41
mov byte [esp + 0x8c], 0
mov byte [esp + 0x8d], 0
mov dword [esp + 0x94], 0x4e6e6b28
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xac], 0
mov byte [esp + 0x8e], 1
mov dword [esp + 0x9c], ecx
mov dword [esp + 0xa0], edx
mov dword [esp + 0x90], 0x41000000
jne 0x41b357
mov al, byte [ebp + 0x604]
test al, al
jne 0x41b342
mov ecx, ebp
call fcn.00418b30
test al, al
je 0x41b1f6
mov ecx, dword [0x4b3118]
mov ecx, dword [ecx + 0xc]
lea eax, [esp + 0x80]
push eax
push str.waterhit.ogg
call fcn.0042b760
jmp 0x41b357
mov ecx, ebp
call fcn.00419220
test al, al
je 0x41b220
mov eax, dword [0x4b3118]
mov ecx, dword [eax + 0xc]
lea edx, [esp + 0x80]
push edx
push str.IC_treasurechest.ogg
call fcn.0042b760
jmp 0x41b357
mov ecx, ebp
call fcn.00418bd0
test al, al
je 0x41b24b
mov edx, dword [0x4b3118]
lea ecx, [esp + 0x80]
push ecx
mov ecx, dword [edx + 0xc]
push str.goldbreak.ogg
call fcn.0042b760
jmp 0x41b357
mov ecx, ebp
call fcn.004190d0
test al, al
je 0x41b276
mov ecx, dword [0x4b3118]
mov ecx, dword [ecx + 0xc]
lea eax, [esp + 0x80]
push eax
push str.IC_powderkeg.ogg
call fcn.0042b760
jmp 0x41b357
mov ecx, ebp
call fcn.00419140
test al, al
je 0x41b2a0
mov eax, dword [0x4b3118]
mov ecx, dword [eax + 0xc]
lea edx, [esp + 0x80]
push edx
push str.IC_powerupbox.ogg
call fcn.0042b760
jmp 0x41b357
mov ecx, ebp
call fcn.00419270
test al, al
je 0x41b2c4
mov ecx, dword [0x4b3118]
mov ecx, dword [ecx + 0xc]
push edi
push str.IC_cannon.ogg
call fcn.0042b760
jmp 0x41b357
mov ecx, ebp
call fcn.004192e0
test al, al
je 0x41b2f0
mov edx, dword [0x4b3118]
push edi
mov dword [esp + 0x94], 0x41800000
mov ecx, dword [edx + 0xc]
push str.IC_spring.ogg
call fcn.0042b760
jmp 0x41b357
mov ecx, ebp
call fcn.00418c70
mov ecx, dword [0x4b3118]
mov edx, dword [ecx + 0xc]
test al, al
push edi
lea eax, [esp + 0x84]
je 0x41b327
push str.jewel3.ogg
push str.jewel2.ogg
push str.jewel1.ogg
push eax
push edx
call fcn.0042b950
add esp, 0x18
jmp 0x41b357
push str.brick3.ogg
push str.brick2.ogg
push str.brick1.ogg
push eax
push edx
call fcn.0042b950
add esp, 0x18
jmp 0x41b357
mov eax, dword [ebp + 0x4dc]
mov ecx, dword [0x4b3118]
mov ecx, dword [ecx + 0x38]
push eax
call fcn.00408080
mov ecx, dword [ebp + 0x614]
cmp ecx, edi
je 0x41b371
call fcn.00416c70
mov dword [ebp + 0x614], edi
jmp 0x41b492
mov edx, dword [0x4b3118]
mov eax, dword [edx + 0x44]
fld dword [eax + 0x34]
fcomp dword [0x4a7e1c]
fnstsw ax
test ah, 5
jp 0x41b492
call fcn.00463e18
mov ecx, dword [0x4b3118]
mov edx, dword [ecx + 0x44]
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fmul dword [0x4a2400]
fmul dword [0x4a2284]
fld dword [edx + 0x2c]
fmul dword [0x4a2318]
fxch st(1)
fcompp
fnstsw ax
test ah, 5
jp 0x41b492
mov eax, dword [ecx + 0x40]
mov cl, byte [eax + 0xa3d]
test cl, cl
je 0x41b492
mov ecx, ebp
call fcn.00419220
test al, al
jne 0x41b492
mov ecx, ebp
call fcn.004190d0
test al, al
jne 0x41b492
mov ecx, ebp
call fcn.004192e0
test al, al
jne 0x41b492
push 0x15
mov ecx, ebp
call fcn.00418ce0
test al, al
jne 0x41b492
mov ecx, ebp
call fcn.00418c70
test al, al
jne 0x41b492
mov ecx, ebp
call fcn.00419270
test al, al
jne 0x41b492
mov ecx, ebp
call fcn.00419190
test eax, eax
jne 0x41b492
mov ecx, dword [0x4b3118]
mov edx, dword [ecx + 0x44]
push 0x5a0
mov dword [edx + 0x34], 0x40400000
call fcn.00459630
add esp, 4
cmp eax, edi
je 0x41b45e
mov ecx, eax
call fcn.004086b0
jmp 0x41b460
xor eax, eax
push edi
push eax
mov eax, dword [0x4b3118]
mov ecx, dword [eax + 0x44]
call fcn.00402460
mov esi, eax
push 0x4b3490
mov ecx, esi
call fcn.004163d0
mov eax, dword [ebp + 0x4dc]
mov edx, dword [esi]
push eax
mov ecx, esi
call dword [edx + 0x10]
mov ecx, esi
call fcn.00416c70
mov eax, dword [0x4b3118]
mov ecx, dword [eax + 0x40]
mov dl, byte [ecx + 0xa4c]
test dl, dl
jne 0x41b565
mov ecx, ebp
call fcn.00418c70
test al, al
je 0x41b4ec
mov edx, dword [0x4b34f4]
mov eax, dword [0x4b3118]
mov ecx, dword [eax + 0x3c]
push edx
call fcn.00430a10
mov ecx, dword [0x4b3118]
mov ecx, dword [ecx + 0x3c]
call fcn.0040ab90
mov edx, dword [0x4b3118]
mov ecx, dword [edx + 0x60]
mov edx, dword [ecx + 0x18c]
mov dword [edx + 8], eax
jmp 0x41b5e1
mov al, byte [ebp + 0x604]
test al, al
je 0x41b52f
mov eax, dword [0x4b34f0]
mov ecx, dword [0x4b3118]
mov ecx, dword [ecx + 0x3c]
push eax
call fcn.00430a10
mov edx, dword [0x4b3118]
mov ecx, dword [edx + 0x3c]
call fcn.0040ab90
mov ecx, dword [0x4b3118]
mov edx, dword [ecx + 0x60]
mov ecx, dword [edx + 0x18c]
mov dword [ecx + 8], eax
jmp 0x41b5e1
mov edx, dword [0x4b34ec]
mov eax, dword [0x4b3118]
mov ecx, dword [eax + 0x3c]
push edx
call fcn.00430a10
mov ecx, dword [0x4b3118]
mov ecx, dword [ecx + 0x3c]
call fcn.0040ab90
mov edx, dword [0x4b3118]
mov ecx, dword [edx + 0x60]
mov edx, dword [ecx + 0x18c]
mov dword [edx + 8], eax
jmp 0x41b5e1
mov eax, dword [eax + 0x40]
mov esi, dword [eax + 0xb38]
mov ecx, dword [0x4b34f0]
add esi, ecx
mov dword [eax + 0xb38], esi
mov eax, dword [0x4b3118]
mov edx, dword [eax + 0x40]
mov ecx, dword [edx + 0xb38]
mov edx, dword [eax + 4]
mov eax, dword [edx + 0xca0]
push ecx
push eax
lea ecx, [esp + 0xb8]
push 0x4a2294
push ecx
call fcn.00463c2f
mov eax, dword [0x4b3118]
mov ecx, dword [eax + 0x40]
add esp, 0x10
lea edx, [esp + 0xb0]
push edx
add ecx, 0xa50
call fcn.00448450
mov edx, dword [0x4b3118]
lea ecx, [esp + 0xb0]
push ecx
mov ecx, dword [edx + 0x40]
add ecx, 0xac4
call fcn.00448450
mov eax, dword [0x4b3118]
cmp dword [eax + 0x34], edi
jne 0x41b80e
mov ecx, dword [eax + 0x44]
push str.PlayArea
mov dword [esp + 0x20], edi
call fcn.00402320
mov eax, dword [eax + 4]
mov eax, dword [eax]
mov ecx, dword [eax + 8]
push str.Grid
call fcn.00402320
mov dword [esp + 0x7c], eax
mov eax, dword [eax + 4]
mov ecx, dword [eax]
cmp ecx, eax
mov dword [esp + 0x14], ecx
je 0x41b7cc
jmp 0x41b630
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 8]
push str.Brick
call fcn.00402320
mov dword [esp + 0x24], eax
mov eax, dword [eax + 4]
mov ebx, dword [eax]
cmp ebx, eax
je 0x41b7af
mov esi, dword [ebx + 8]
mov al, byte [esi + 0x19]
test al, al
jne 0x41b7a0
mov ecx, esi
call fcn.00419530
test al, al
jne 0x41b7a0
mov eax, dword [esi + 0x294]
cmp eax, edi
je 0x41b6b6
cmp eax, 1
je 0x41b7a0
push 7
push str.powerup
lea ecx, [esi + 0x4e8]
call fcn.0044a950
push eax
call fcn.0049b0e8
add esp, 0xc
test eax, eax
jne 0x41b6b0
mov dword [esi + 0x294], 1
jmp 0x41b7a0
mov dword [esi + 0x294], edi
mov eax, dword [esi + 0x2a4]
cmp eax, edi
je 0x41b729
cmp eax, 1
je 0x41b7a0
lea ebp, [esi + 0x4e8]
mov ecx, ebp
call fcn.0044a950
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x41b6e0
sub eax, edx
mov ecx, ebp
mov edi, eax
call fcn.0044a950
push 0xa
lea eax, [eax + edi - 0x13]
push str.SpringTrap
push eax
call fcn.0049b0e8
mov ebp, dword [esp + 0x24]
add esp, 0xc
xor edi, edi
test eax, eax
jne 0x41b71f
mov dword [esi + 0x2a4], 1
jmp 0x41b7a0
mov dword [esi + 0x2a4], 0
mov ecx, esi
call fcn.004190d0
test al, al
jne 0x41b7a0
mov ecx, esi
call fcn.00419270
test al, al
jne 0x41b7a0
mov eax, dword [esi + 0x29c]
cmp eax, edi
je 0x41b77f
cmp eax, 1
je 0x41b7a0
push 8
push str.TREASURE
lea ecx, [esi + 0x4e8]
call fcn.0044a950
push eax
call fcn.0049b0e8
add esp, 0xc
test eax, eax
jne 0x41b779
mov dword [esi + 0x29c], 1
jmp 0x41b7a0
mov dword [esi + 0x29c], edi
mov ecx, esi
call fcn.00418c70
test al, al
je 0x41b79c
mov edx, dword [0x4b3118]
mov ecx, dword [edx + 0x38]
call fcn.00407ed0
test al, al
je 0x41b7a0
inc dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
mov ebx, dword [ebx]
cmp ebx, dword [eax + 4]
jne 0x41b652
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
mov edx, dword [esp + 0x7c]
cmp eax, dword [edx + 4]
mov dword [esp + 0x14], eax
jne 0x41b630
cmp dword [esp + 0x1c], edi
jg 0x41b7db
mov eax, dword [0x4b3118]
mov ecx, dword [eax + 0x38]
call fcn.00409030
jmp 0x41b80e
mov ecx, dword [0x4b3118]
mov ecx, dword [ecx + 0x38]
call fcn.00407ed0
test al, al
jne 0x41b80e
mov edx, dword [0x4b3118]
mov ecx, dword [edx + 0x44]
call fcn.0040ab90
cmp dword [esp + 0x1c], eax
jge 0x41b80e
mov eax, dword [0x4b3118]
mov ecx, dword [eax + 0x44]
call fcn.0040ad10
push 0xf
mov ecx, ebp
call fcn.00418ce0
test al, al
jne 0x41b83a
mov cl, byte [ebp + 0x180]
test cl, cl
lea eax, [ebp + 0x180]
je 0x41b83a
mov ecx, dword [0x4b3118]
mov ecx, dword [ecx + 0x20]
push eax
call fcn.00431b80
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1a0
ret