Function at 0x45ace0
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x9ec
mov edx, dword [ebp + 8]
movzx eax, byte [ebp + 0xc]
mov edi, dword [0x4f2a70]
mov ecx, dword [0x4a49ec]
mov byte [ebp - 0x989], al
lea eax, [edx + edx*4]
lea eax, [edx + eax*4]
mov dword [ebp - 0x9cc], ecx
lea eax, [edi + eax*4]
lea edx, [edx + edx*8]
mov dword [ebp - 0x990], eax
mov eax, dword [0x4f1660]
lea edx, [eax + edx*4]
mov dword [ebp - 0x994], edx
cmp byte [ecx + 0xe4], 0
jne 0x45ad42
mov eax, dword [0x4a49e8]
cmp byte [eax + 0x152], 0
je 0x45ad7d
mov edx, dword [ebp - 0x994]
mov eax, dword [edx]
mov dword [ebp - 0x78], eax
mov eax, dword [edx + 4]
mov dword [ebp - 0x74], eax
mov eax, dword [edx + 8]
mov dword [ebp - 0x70], eax
mov eax, dword [edx + 0xc]
mov dword [ebp - 0x6c], eax
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x68], eax
mov eax, dword [edx + 0x14]
mov dword [ebp - 0x64], eax
mov eax, dword [edx + 0x18]
mov dword [ebp - 0x60], eax
mov eax, dword [edx + 0x1c]
mov dword [ebp - 0x5c], eax
mov eax, dword [edx + 0x20]
mov dword [ebp - 0x58], eax
mov ecx, dword [ebp - 0x994]
mov eax, dword [ecx]
mov dword [ebp - 0x48], eax
mov eax, dword [ecx + 4]
mov dword [ebp - 0x44], eax
mov eax, dword [ecx + 8]
mov dword [ebp - 0x40], eax
mov eax, dword [ecx + 0xc]
mov esi, dword [ebp - 0x40]
mov dword [ebp - 0x3c], eax
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0x38], eax
mov edx, dword [ecx + 0x14]
mov dword [ebp - 0x34], edx
mov eax, dword [ecx + 0x18]
mov dword [ebp - 0x30], eax
mov ebx, dword [ecx + 0x1c]
mov dword [ebp - 0x2c], ebx
mov eax, dword [ecx + 0x20]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x990]
mov ecx, dword [eax + 0x24]
and ecx, 0x303c0f
or ecx, edx
test si, si
mov dword [ebp - 0x34], ecx
je 0x45adec
mov edx, eax
movzx eax, byte [eax + 0x2c]
or ebx, eax
mov dword [ebp - 0x2c], ebx
mov eax, dword [edx + 0x24]
and eax, 0x100
or ecx, eax
mov dword [ebp - 0x34], ecx
mov ecx, dword [ebp - 0x9cc]
cmp byte [ecx + 0xe4], 0
jne 0x45ae1e
mov eax, dword [0x4a49e8]
cmp byte [eax + 0x152], 0
setne dl
cmp byte [ebp - 0x989], 0
setne al
or eax, edx
test al, 1
je 0x45aed0
mov edx, dword [ebp + 8]
cmp si, 0x270f
lea eax, [edx + edx*4]
lea eax, [edx + eax*4]
lea ebx, [edi + eax*4]
jle 0x45b88a
mov byte [ebp - 0x3d], 0xff
xor edx, edx
mov byte [ebp - 0x3e], 0xff
nop
lea eax, [edx + edx*2]
lea eax, [ebx + eax*2 + 0x30]
cmp byte [eax + 5], 0
jne 0x45b880
cmp byte [eax + 4], 0
jne 0x45b880
nop
lea esi, [esi]
inc edx
cmp edx, 3
jle 0x45ae40
mov ecx, dword [ebx + 0x24]
mov eax, ecx
and eax, 0x8000000
cmp eax, 1
sbb eax, eax
not eax
and eax, 8
test ecx, 0x4000000
je 0x45ae85
add eax, 6
test ecx, 0x2000000
je 0x45ae90
add eax, 4
mov edx, ecx
shr edx, 0x17
and edx, 1
lea edx, [eax + edx]
mov eax, ecx
shr eax, 0x16
and eax, 1
and ecx, 0x1000000
lea eax, [edx + eax]
je 0x45aeb1
add eax, 2
mov byte [ebp - 0x3c], al
mov byte [ebp - 0x3b], 0xff
mov eax, dword [ebx + 0x24]
mov dword [ebp - 0x34], eax
mov eax, dword [ebx + 0x28]
mov dword [ebp - 0x30], eax
mov eax, dword [ebx + 0x2c]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebx + 0x30]
mov dword [ebp - 0x28], eax
cmp byte [ebp - 0x989], 0
je 0x45bba6
mov ecx, dword [ebp + 8]
lea esi, [ebp - 0x878]
mov eax, dword [0x872c80]
lea ebx, [ecx + ecx*4]
lea ebx, [ecx + ebx*4]
mov ecx, 0x800
mov dword [esp + 8], ecx
shl ebx, 2
mov edx, dword [ebx + edi + 4]
mov dword [esp], esi
mov edi, ebx
add eax, edx
mov dword [esp + 4], eax
call fcn.00498050
mov dword [esp], esi
call fcn.00481a10
mov dword [esp], 0x4b2cf9
call fcn.00481a10
mov eax, dword [ebp + 8]
lea edx, [ebp - 0x48]
call fcn.0045a900
mov eax, dword [0x4f2a70]
add edi, eax
xor eax, eax
mov dword [ebp - 0x998], eax
mov eax, 0xffffffff
mov dword [ebp - 0x9a0], eax
mov eax, dword [edi + 0x24]
test al, 8
je 0x45bb10
mov esi, 2
mov dword [ebp - 0x998], esi
movzx eax, byte [edi + 0x1d]
xor ebx, ebx
mov dword [ebp - 0x99c], eax
mov eax, dword [ebp - 0x28]
test al, 1
je 0x45af8e
mov ecx, str.fire_a_shortbow
mov edx, 0x60
mov ebx, 1
mov dword [ebp - 0x978], ecx
mov dword [ebp - 0x9a0], edx
test al, 2
je 0x45afaa
mov esi, str.fire_a_longbow
mov ecx, 0x61
mov dword [ebp + ebx*4 - 0x978], esi
inc ebx
mov dword [ebp - 0x9a0], ecx
test al, 4
je 0x45afc6
mov edx, str.throw_boulders
mov esi, 0x62
mov dword [ebp + ebx*4 - 0x978], edx
inc ebx
mov dword [ebp - 0x9a0], esi
test ebx, ebx
jne 0x45bf9f
xor ebx, ebx
test al, 8
je 0x45afe4
mov ecx, 0x4b32b5
mov ebx, 1
mov dword [ebp - 0x978], ecx
test al, 0x10
je 0x45aff5
mov edx, 0x4b32ba
mov dword [ebp + ebx*4 - 0x978], edx
inc ebx
test al, 0x20
je 0x45b006
mov edi, 0x4b32c0
mov dword [ebp + ebx*4 - 0x978], edi
inc ebx
test al, 0x40
je 0x45b017
mov esi, str.darkness
mov dword [ebp + ebx*4 - 0x978], esi
inc ebx
test ebx, ebx
jne 0x45bef6
xor ebx, ebx
test al, al
jns 0x45b035
mov ecx, str.cause_earthquakes
mov ebx, 1
mov dword [ebp - 0x978], ecx
test ah, 1
je 0x45b047
mov edx, str.call_for_help
mov dword [ebp + ebx*4 - 0x978], edx
inc ebx
test ah, 2
je 0x45b059
mov edi, str.cause_a_hideous_screeching
mov dword [ebp + ebx*4 - 0x978], edi
inc ebx
test ah, 4
je 0x45b06b
mov esi, str.create_darkness
mov dword [ebp + ebx*4 - 0x978], esi
inc ebx
test ah, 8
je 0x45b07d
mov ecx, str.remove_memories
mov dword [ebp + ebx*4 - 0x978], ecx
inc ebx
test ah, 0x10
je 0x45b08f
mov edx, str.terrify
mov dword [ebp + ebx*4 - 0x978], edx
inc ebx
test ah, 0x20
je 0x45b0a1
mov edi, str.confuse
mov dword [ebp + ebx*4 - 0x978], edi
inc ebx
test ah, 0x40
je 0x45b0b3
mov esi, str.entrance
mov dword [ebp + ebx*4 - 0x978], esi
inc ebx
and eax, 0x8000
test ax, ax
je 0x45b0ca
mov ecx, str.slow
mov dword [ebp + ebx*4 - 0x978], ecx
inc ebx
test ebx, ebx
jne 0x45c05a
mov ecx, dword [ebp + 8]
mov edx, dword [0x4f2a70]
lea eax, [ecx + ecx*4]
lea eax, [ecx + eax*4]
lea eax, [edx + eax*4]
xor edx, edx
mov dword [ebp - 0x9a4], eax
mov eax, dword [eax + 0x24]
mov dword [ebp - 0x9a8], edx
test al, 8
je 0x45bb40
mov edi, 2
mov dword [ebp - 0x9a8], edi
mov eax, dword [ebp - 0x9a4]
xor esi, esi
test byte [eax + 0x2b], 8
je 0x45b126
mov ebx, str.elf_bane
mov esi, 1
mov dword [ebp - 0x978], ebx
mov ebx, dword [ebp - 0x30]
test ebx, 0x4000000
je 0x45b13e
mov ecx, str.charge
mov dword [ebp + esi*4 - 0x978], ecx
inc esi
test ebx, 0x10000000
je 0x45b153
mov edx, str.knock_back
mov dword [ebp + esi*4 - 0x978], edx
inc esi
test ebx, 0x20000000
je 0x45b168
mov eax, str.crippling_shot
mov dword [ebp + esi*4 - 0x978], eax
inc esi
test bl, 0x40
je 0x45b17a
mov eax, str.cruel_blow
mov dword [ebp + esi*4 - 0x978], eax
inc esi
test ebx, 0x40000000
je 0x45b18f
mov eax, str.opportunist
mov dword [ebp + esi*4 - 0x978], eax
inc esi
test ebx, ebx
js 0x45c3b6
test bl, bl
jns 0x45b1a8
mov eax, str.exchange_places
mov dword [ebp + esi*4 - 0x978], eax
inc esi
test bh, 4
je 0x45b1ba
mov eax, str.riposte
mov dword [ebp + esi*4 - 0x978], eax
inc esi
test bh, 8
je 0x45b1cc
mov edi, str.flanking
mov dword [ebp + esi*4 - 0x978], edi
inc esi
mov eax, dword [ebp - 0x28]
test eax, 0x10000
je 0x45b1e3
mov ecx, str.song_of_binding
mov dword [ebp + esi*4 - 0x978], ecx
inc esi
test eax, 0x20000
je 0x45b1f7
mov edx, str.song_of_piercing
mov dword [ebp + esi*4 - 0x978], edx
inc esi
test eax, 0x40000
je 0x45b20b
mov eax, str.song_of_oaths
mov dword [ebp + esi*4 - 0x978], eax
inc esi
test esi, esi
jne 0x45c224
mov ecx, dword [ebp - 0x9a4]
xor esi, esi
movzx edi, word [ecx + 0x10]
test di, di
jle 0x45b250
movsx eax, byte [ecx + 0x4f]
mov dword [esp], 0x4b33da
mov dword [esp + 4], eax
call sub.msvcrt.dll_strchr
test eax, eax
je 0x45c4a2
mov eax, str.use_a_light_source
mov dword [ebp - 0x978], eax
mov esi, 1
test di, di
js 0x45c3a4
test bh, 0x20
je 0x45b26b
mov eax, 0x4b33f0
mov dword [ebp + esi*4 - 0x978], eax
inc esi
test ebx, 0x10000
je 0x45b280
mov edi, str.open_doors
mov dword [ebp + esi*4 - 0x978], edi
inc esi
test bh, 0x40
je 0x45b292
mov ecx, str.pass_through_doors
mov dword [ebp + esi*4 - 0x978], ecx
inc esi
mov eax, ebx
and eax, 0x8000
test ax, ax
je 0x45b2ab
mov edx, str.unlock_doors
mov dword [ebp + esi*4 - 0x978], edx
inc esi
test ebx, 0x20000
je 0x45b2c0
mov eax, str.bash_down_doors
mov dword [ebp + esi*4 - 0x978], eax
inc esi
test ebx, 0x40000
je 0x45b2d5
mov eax, str.pass_through_walls
mov dword [ebp + esi*4 - 0x978], eax
inc esi
test ebx, 0x80000
je 0x45b2ea
mov eax, str.bore_through_walls
mov dword [ebp + esi*4 - 0x978], eax
inc esi
test ebx, 0x100000
je 0x45b2ff
mov eax, str.tunnel_through_walls
mov dword [ebp + esi*4 - 0x978], eax
inc esi
test ebx, 0x200000
je 0x45b314
mov eax, str.destroy_weaker_monsters
mov dword [ebp + esi*4 - 0x978], eax
inc esi
test ebx, 0x400000
je 0x45b329
mov eax, str.pick_up_objects
mov dword [ebp + esi*4 - 0x978], eax
inc esi
test ebx, 0x800000
je 0x45b33e
mov edi, str.destroy_objects
mov dword [ebp + esi*4 - 0x978], edi
inc esi
test esi, esi
jne 0x45c19f
test bl, 0x10
jne 0x45c172
test bh, 1
jne 0x45c145
test bh, 2
jne 0x45c11b
mov eax, dword [ebp - 0x34]
test eax, 0x100000
jne 0x45c0ee
test eax, 0x200000
jne 0x45becc
test byte [ebp - 0x2f], 0x10
jne 0x45bdde
mov edx, dword [ebp - 0x9a4]
mov eax, dword [edx + 0x28]
test al, 1
jne 0x45bdb4
test al, 2
je 0x45c387
mov edx, dword [ebp - 0x2c]
xor esi, esi
test dh, 0x20
je 0x45b3b7
mov esi, str.shattering
mov dword [ebp - 0x978], esi
mov esi, 1
test dh, 0x10
je 0x45b3c9
mov ebx, str.bright_light
mov dword [ebp + esi*4 - 0x978], ebx
inc esi
test dh, 0x40
je 0x45b3db
mov ecx, 0x4b32b5
mov dword [ebp + esi*4 - 0x978], ecx
inc esi
mov eax, edx
and eax, 0x8000
test ax, ax
je 0x45b3f4
mov eax, 0x4b34ba
mov dword [ebp + esi*4 - 0x978], eax
inc esi
test esi, esi
jne 0x45bd24
xor esi, esi
test edx, 0x20000
je 0x45b416
mov eax, 0x4b34bf
mov esi, 1
mov dword [ebp - 0x978], eax
test edx, 0x40000
je 0x45b42b
mov eax, 0x4b32b5
mov dword [ebp + esi*4 - 0x978], eax
inc esi
test edx, 0x80000
je 0x45b440
mov eax, 0x4b34ba
mov dword [ebp + esi*4 - 0x978], eax
inc esi
test edx, 0x100000
je 0x45b455
mov eax, 0x4b32c0
mov dword [ebp + esi*4 - 0x978], eax
inc esi
test esi, esi
jne 0x45bca1
xor esi, esi
test edx, 0x8000000
je 0x45b477
mov eax, str.slowed
mov esi, 1
mov dword [ebp - 0x978], eax
test edx, 0x20000000
je 0x45b48c
mov edi, str.stunned
mov dword [ebp + esi*4 - 0x978], edi
inc esi
test edx, 0x10000000
je 0x45b4a1
mov ebx, str.frightened
mov dword [ebp + esi*4 - 0x978], ebx
inc esi
test edx, 0x40000000
je 0x45b4b6
mov ecx, str.confused
mov dword [ebp + esi*4 - 0x978], ecx
inc esi
test edx, edx
js 0x45c3e5
test esi, esi
jne 0x45bc13
mov eax, dword [ebp - 0x34]
test ah, 0x10
jne 0x45bbe6
test ah, 0x20
jne 0x45bbbc
test ah, 4
jne 0x45c3c8
test ah, 8
jne 0x45c4ac
mov ecx, dword [ebp + 8]
mov edx, dword [0x4f2a70]
lea eax, [ecx + ecx*4]
lea eax, [ecx + eax*4]
lea esi, [edx + eax*4]
xor eax, eax
mov dword [ebp - 0x9b8], eax
mov eax, dword [esi + 0x24]
test al, 8
je 0x45bb28
mov byte [edx + ebp - 0x38], 0xff
jmp 0x45ae60
lea eax, [esi + 0x2710]
mov word [ebp - 0x40], ax
jmp 0x45ae35
test al, 4
je 0x45af60
mov ebx, 1
mov dword [ebp - 0x998], ebx
jmp 0x45af60
test al, 4
je 0x45b108
mov esi, 1
mov dword [ebp - 0x9a8], esi
jmp 0x45b108
mov eax, dword [ebp + 8]
lea edx, [ebp - 0x48]
call fcn.0045a480
mov edi, dword [0x4f2a70]
jmp 0x45aedd
mov dword [esp], str._s_usually_appears_with_many_escorts.
mov ecx, dword [ebp - 0x9a8]
mov eax, dword [ecx*4 + 0x4a3740]
mov dword [esp + 4], eax
call fcn.00495450
mov dword [esp], eax
call fcn.00481a10
jmp 0x45b4ed
mov dword [esp], str._s_usually_appears_with_escorts.
mov edx, dword [ebp - 0x9a8]
mov eax, dword [edx*4 + 0x4a3740]
mov dword [esp + 4], eax
call fcn.00495450
mov dword [esp], eax
call fcn.00481a10
mov eax, dword [ebp - 0x34]
jmp 0x45b4d2
mov dword [esp], 0x4b36e0
mov edi, dword [ebp - 0x9a8]
xor ebx, ebx
mov eax, dword [edi*4 + 0x4a3740]
mov dword [esp + 4], eax
call fcn.00495450
mov dword [esp], eax
call fcn.00481a10
jmp 0x45bc64
mov dword [esp], 0x4b3623
call fcn.00481a10
mov dword [esp], 0xb
mov eax, dword [ebp + ebx*4 - 0x978]
inc ebx
mov dword [esp + 4], eax
call fcn.004819f0
cmp ebx, esi
jge 0x45bc90
test ebx, ebx
je 0x45bc80
lea eax, [esi - 1]
cmp eax, ebx
jg 0x45bc40
mov dword [esp], str._or
jmp 0x45bc47
mov dword [esp], str._cannot_be
jmp 0x45bc47
mov dword [esp], 0x4b31a2
call fcn.00481a10
jmp 0x45b4c6
mov dword [esp], 0x4b36e0
mov ecx, dword [ebp - 0x9a8]
xor ebx, ebx
mov eax, dword [ecx*4 + 0x4a3740]
mov dword [esp + 4], eax
call fcn.00495450
mov dword [esp], eax
call fcn.00481a10
jmp 0x45bcec
mov dword [esp], 0x4b3623
call fcn.00481a10
mov eax, dword [ebp + ebx*4 - 0x978]
inc ebx
mov dword [esp], eax
call fcn.00481a10
cmp ebx, esi
jge 0x45bd10
test ebx, ebx
je 0x45bd04
lea eax, [esi - 1]
cmp eax, ebx
jg 0x45bcd0
mov dword [esp], 0x4b36f5
jmp 0x45bcd7
mov dword [esp], str._resists
jmp 0x45bcd7
mov dword [esp], 0x4b31a2
call fcn.00481a10
mov edx, dword [ebp - 0x2c]
jmp 0x45b45d
mov dword [esp], 0x4b36e0
mov edx, dword [ebp - 0x9a8]
xor ebx, ebx
mov eax, dword [edx*4 + 0x4a3740]
mov dword [esp + 4], eax
call fcn.00495450
mov dword [esp], eax
call fcn.00481a10
jmp 0x45bd74
mov dword [esp], 0x4b3623
call fcn.00481a10
mov dword [esp], 0xe
mov eax, dword [ebp + ebx*4 - 0x978]
inc ebx
mov dword [esp + 4], eax
call fcn.004819f0
cmp ebx, esi
jge 0x45bda0
test ebx, ebx
je 0x45bd90
lea eax, [esi - 1]
cmp eax, ebx
jg 0x45bd50
mov dword [esp], 0x4b36f5
jmp 0x45bd57
mov dword [esp], str._is_vulnerable_to
jmp 0x45bd57
mov dword [esp], 0x4b31a2
call fcn.00481a10
mov edx, dword [ebp - 0x2c]
jmp 0x45b3fc
mov dword [esp], str._s_is_mindless.
mov ecx, dword [ebp - 0x9a8]
mov eax, dword [ecx*4 + 0x4a3740]
mov dword [esp + 4], eax
call fcn.00495450
mov dword [esp], eax
call fcn.00481a10
jmp 0x45b39d
xor eax, eax
mov edi, dword [ebp + 8]
xor edx, edx
mov dword [ebp - 0x980], eax
xor eax, eax
xor ecx, ecx
mov dword [ebp - 0x97c], eax
lea eax, [ebp - 0x97c]
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x980]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x984]
mov dword [esp + 8], eax
lea eax, [ebp - 0x988]
mov dword [ebp - 0x984], edx
mov dword [esp + 4], eax
mov dword [ebp - 0x988], ecx
mov dword [esp], edi
call fcn.00450a10
mov edx, dword [ebp - 0x9a4]
mov eax, dword [edx + 0x30]
test al, 8
jne 0x45c426
mov eax, dword [ebp - 0x988]
test eax, eax
je 0x45b384
mov dword [esp], str._s_is_surrounded_by_a_shimmering_haze_of
mov edi, dword [ebp - 0x9a8]
mov eax, dword [edi*4 + 0x4a3740]
mov dword [esp + 4], eax
call fcn.00495450
mov dword [esp], eax
call fcn.00481a10
mov eax, dword [ebp - 0x988]
cmp eax, 6
je 0x45c783
cmp eax, 7
je 0x45c78e
cmp eax, 8
je 0x45c799
cmp eax, 9
je 0x45c721
mov dword [esp], 0x4b3757
mov eax, dword [ebp - 0x980]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x984]
mov dword [esp + 4], eax
call fcn.00495450
mov dword [esp], eax
call fcn.00481a10
jmp 0x45b384
mov dword [esp], str._s_is_resistant_to_critical_hits.
mov ecx, dword [ebp - 0x9a8]
mov eax, dword [ecx*4 + 0x4a3740]
mov dword [esp + 4], eax
call fcn.00495450
mov dword [esp], eax
call fcn.00481a10
jmp 0x45b37a
mov dword [esp], 0x4b36e0
mov ecx, dword [ebp - 0x998]
xor esi, esi
mov eax, dword [ecx*4 + 0x4a3740]
mov dword [esp + 4], eax
call fcn.00495450
mov dword [esp], eax
call fcn.00481a10
jmp 0x45bf54
lea eax, [ebx - 1]
cmp eax, esi
jg 0x45bf65
cmp esi, 1
je 0x45c33e
mov dword [esp], str.__or
call fcn.00481a10
mov dword [esp], 0xc
mov eax, dword [ebp + esi*4 - 0x978]
inc esi
mov dword [esp + 4], eax
call fcn.004819f0
cmp esi, ebx
jge 0x45bf70
test esi, esi
jne 0x45bf20
mov dword [esp], str._may_breathe
jmp 0x45bf37
mov dword [esp], 0x4b3623
jmp 0x45bf37
mov dword [esp], str.___dd_d_.
mov edi, dword [ebp - 0x99c]
mov ebx, 4
mov dword [esp + 8], ebx
mov dword [esp + 4], edi
call fcn.00495450
mov dword [esp], eax
call fcn.00481a10
mov eax, dword [ebp - 0x28]
jmp 0x45b01f
mov dword [esp], 0x4b36e0
mov edx, dword [ebp - 0x998]
xor esi, esi
mov eax, dword [edx*4 + 0x4a3740]
mov dword [esp + 4], eax
call fcn.00495450
mov dword [esp], eax
call fcn.00481a10
jmp 0x45bffc
lea eax, [ebx - 1]
cmp eax, esi
jg 0x45c00d
cmp esi, 1
je 0x45c356
mov dword [esp], str.__or
call fcn.00481a10
mov dword [esp], 0xc
mov eax, dword [ebp + esi*4 - 0x978]
inc esi
mov dword [esp + 4], eax
call fcn.004819f0
cmp esi, ebx
jge 0x45c016
test esi, esi
jne 0x45bfc8
mov dword [esp], str._may
jmp 0x45bfdf
mov dword [esp], 0x4b3623
jmp 0x45bfdf
cmp dword [ebp - 0x9a0], 0xffffffff
jle 0x45c046
cmp dword [ebp - 0x9a0], 0x60
je 0x45c73b
cmp dword [ebp - 0x9a0], 0x61
je 0x45c54f
cmp dword [ebp - 0x9a0], 0x62
je 0x45c75f
mov dword [esp], 0x4b31a2
call fcn.00481a10
mov eax, dword [ebp - 0x28]
jmp 0x45afce
mov dword [esp], str._s_may
mov edx, dword [ebp - 0x998]
xor esi, esi
mov eax, dword [edx*4 + 0x4a3740]
mov dword [esp + 4], eax
call fcn.00495450
mov dword [esp], eax
call fcn.00481a10
jmp 0x45c0b7
lea eax, [ebx - 1]
cmp eax, esi
jg 0x45c0c8
cmp esi, 1
je 0x45c34a
mov dword [esp], str.__or
call fcn.00481a10
mov dword [esp], 3
mov eax, dword [ebp + esi*4 - 0x978]
inc esi
mov dword [esp + 4], eax
call fcn.004819f0
cmp esi, ebx
jge 0x45c0d1
test esi, esi
jne 0x45c083
mov dword [esp], str.attempt_to
jmp 0x45c09a
mov dword [esp], 0x4b3623
jmp 0x45c09a
mov dword [esp], 0x4b31a2
call fcn.00481a10
jmp 0x45b0d2
mov dword [esp], str._s_cannot_be_critically_hit.
mov edx, dword [ebp - 0x9a8]
mov eax, dword [edx*4 + 0x4a3740]
mov dword [esp + 4], eax
call fcn.00495450
mov dword [esp], eax
call fcn.00481a10
mov eax, dword [ebp - 0x34]
jmp 0x45b36f
mov dword [esp], str._s_regenerates_quickly.
mov edi, dword [ebp - 0x9a8]
mov eax, dword [edi*4 + 0x4a3740]
mov dword [esp + 4], eax
call fcn.00495450
mov dword [esp], eax
call fcn.00481a10
jmp 0x45b361
mov dword [esp], str._s_breeds_explosively.
mov ecx, dword [ebp - 0x9a8]
mov eax, dword [ecx*4 + 0x4a3740]
mov dword [esp + 4], eax
call fcn.00495450
mov dword [esp], eax
call fcn.00481a10
mov ebx, dword [ebp - 0x30]
jmp 0x45b358
mov dword [esp], str._s_is_very_difficult_to_see.
mov edx, dword [ebp - 0x9a8]
mov eax, dword [edx*4 + 0x4a3740]
mov dword [esp + 4], eax
call fcn.00495450
mov dword [esp], eax
call fcn.00481a10
mov ebx, dword [ebp - 0x30]
jmp 0x45b34f
mov dword [esp], 0x4b36e0
mov edi, dword [ebp - 0x9a8]
xor ebx, ebx
mov eax, dword [edi*4 + 0x4a3740]
mov dword [esp + 4], eax
call fcn.00495450
mov dword [esp], eax
call fcn.00481a10
jmp 0x45c1e4
mov dword [esp], 0x4b3623
call fcn.00481a10
mov eax, dword [ebp + ebx*4 - 0x978]
inc ebx
mov dword [esp], eax
call fcn.00481a10
cmp ebx, esi
jge 0x45c210
test ebx, ebx
je 0x45c200
lea eax, [esi - 1]
cmp eax, ebx
jg 0x45c1c8
mov dword [esp], 0x4b36f5
jmp 0x45c1cf
mov dword [esp], str._can
jmp 0x45c1cf
mov dword [esp], 0x4b31a2
call fcn.00481a10
mov ebx, dword [ebp - 0x30]
jmp 0x45b346
mov dword [esp], 0x4b36e0
mov edx, dword [ebp - 0x9a8]
xor ebx, ebx
mov eax, dword [edx*4 + 0x4a3740]
mov dword [esp + 4], eax
call fcn.00495450
mov dword [esp], eax
call fcn.00481a10
jmp 0x45c28d
test ebx, ebx
je 0x45c2b9
lea eax, [esi - 1]
cmp eax, ebx
jle 0x45c2b0
mov dword [esp], 0x4b3623
lea esi, [esi]
lea edi, [edi]
call fcn.00481a10
mov dword [esp], 4
mov eax, dword [ebp + ebx*4 - 0x978]
inc ebx
mov dword [esp + 4], eax
call fcn.004819f0
cmp ebx, esi
jge 0x45c2c2
test ebx, ebx
sete al
xor edx, edx
cmp esi, 1
setg dl
test edx, eax
je 0x45c250
mov dword [esp], str._has_the_abilities:
jmp 0x45c270
mov dword [esp], 0x4b36f5
jmp 0x45c270
mov dword [esp], str._has_the_ability:
jmp 0x45c270
mov dword [esp], 0x4b31a2
call fcn.00481a10
mov ebx, dword [ebp - 0x30]
jmp 0x45b213
mov dword [esp], str._or
jmp 0x45bf37
mov dword [esp], str._or
jmp 0x45c09a
mov dword [esp], str._or
jmp 0x45bfdf
mov dword [esp], str._s_is_unintelligent.
mov edi, dword [ebp - 0x9a8]
mov eax, dword [edi*4 + 0x4a3740]
mov dword [esp + 4], eax
jmp 0x45bdcc
mov eax, str.produce_an_unnatural_darkness
mov dword [ebp + esi*4 - 0x978], eax
inc esi
jmp 0x45b259
mov eax, str.zone_of_control
mov dword [ebp + esi*4 - 0x978], eax
inc esi
jmp 0x45b197
mov dword [esp], str._s_sometimes_appears_in_groups.
mov edi, dword [ebp - 0x9a8]
mov eax, dword [edi*4 + 0x4a3740]
mov dword [esp + 4], eax
jmp 0x45bbd4
mov eax, str.put_to_sleep
mov dword [ebp + esi*4 - 0x978], eax
inc esi
jmp 0x45b4be
test al, 0x20
je 0x45be42
test al, 0x40
je 0x45be42
test al, 0x10
je 0x45be42
mov dword [esp], str._s_is_surrounded_by_shimmering_haze_of_ever_changing_elements___dd_d_.
mov eax, dword [ebp - 0x980]
mov ecx, dword [ebp - 0x9a8]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x984]
mov dword [esp + 8], eax
mov eax, dword [ecx*4 + 0x4a3740]
mov dword [esp + 4], eax
call fcn.00495450
jmp 0x45bebf
mov eax, str.radiate_light
jmp 0x45b245
mov dword [esp], 0x61
call fcn.0044fb30
mov dword [esp + 8], eax
movzx eax, byte [edi + 0x1d]
mov dword [esp], str.___d__2d_d_
mov dword [esp + 4], eax
call fcn.00495450
mov dword [esp + 4], eax
mov dword [esp], 7
call fcn.004819f0
jmp 0x45c046
mov edi, str.darkness
mov dword [esp + 4], edi
mov dword [esp], 0xc
call fcn.004819f0
jmp 0x45be9f
mov dword [esp], 0x60
call fcn.0044fb30
mov dword [esp + 8], eax
movzx eax, byte [edi + 0x1d]
mov dword [esp], str.___d__1d_d_
mov dword [esp + 4], eax
jmp 0x45c56e
mov dword [esp], 0x62
call fcn.0044fb30
mov dword [esp + 8], eax
movzx eax, byte [edi + 0x1d]
mov dword [esp], str.___d__6d_d_
mov dword [esp + 4], eax
jmp 0x45c56e
mov eax, 0x4b32b5
mov dword [esp + 4], eax
jmp 0x45c72a
mov eax, 0x4b32ba
mov dword [esp + 4], eax
jmp 0x45c72a
mov eax, 0x4b32c0
mov dword [esp + 4], eax
jmp 0x45c72a