Function at 0x44f030
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x76c
mov eax, dword [0xde84a4]
mov dword [esp + 0xc], str.r_info.txt
mov ebp, dword [esp + 0x784]
mov dword [esp + 8], eax
lea eax, [esp + 0x360]
mov edi, dword [esp + 0x78c]
mov dword [esp + 4], 0x400
mov dword [esp], eax
call fcn.00404e10
lea eax, [esp + 0x360]
mov dword [esp + 4], 0x518bb3
mov dword [esp], eax
call fcn.00445e10
mov dword [esp + 0x34], eax
test eax, eax
je 0x44f404
mov dword [esp + 0x28], edi
lea ebx, [esp + 0x361]
nop
lea eax, [esp + 0x360]
mov dword [esp + 8], 0x400
mov dword [esp + 4], eax
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.00445ec0
mov dword [esp + 0x30], eax
test eax, eax
jne 0x44f3f8
movzx ecx, byte [esp + 0x360]
lea eax, [ecx - 0x24]
cmp al, 1
jbe 0x44f114
jmp 0x44f15c
lea esi, [eax + 1]
mov dword [esp], esi
call sub.msvcrt.dll_strlen
mov dword [esp + 4], esi
add eax, 1
mov dword [esp + 8], eax
lea eax, [esp + 0x360]
mov dword [esp], eax
call sub.msvcrt.dll_memmove
movzx ecx, byte [esp + 0x360]
lea eax, [ecx - 0x24]
cmp al, 1
ja 0x44f154
mov dword [esp + 4], 0x24
mov dword [esp], ebx
call sub.msvcrt.dll_strchr
mov dword [esp + 4], 0x21
mov dword [esp], ebx
mov esi, eax
call sub.msvcrt.dll_strchr
mov ecx, esi
mov edi, eax
or ecx, eax
je 0x44f0a0
test esi, esi
je 0x44f0e0
test eax, eax
je 0x44f14e
cmp eax, esi
jb 0x44f0e0
mov edi, ecx
mov eax, esi
jmp 0x44f0e0
test edi, edi
je 0x44f0a0
lea eax, [esp + 0x360]
mov byte [esp + 0x24], cl
mov dword [esp], eax
call sub.msvcrt.dll_strlen
movzx ecx, byte [esp + 0x24]
cmp eax, 2
setbe al
cmp cl, 0x4e
setne dl
or al, dl
jne 0x44f0a0
lea eax, [esp + 0x362]
mov dword [esp + 4], 0x3a
mov dword [esp], eax
call sub.msvcrt.dll_strchr
test eax, eax
je 0x44f0a0
lea eax, [esp + 0x362]
mov dword [esp], eax
call sub.msvcrt.dll_atoi
cmp eax, dword [esp + 0x780]
jne 0x44f0a0
mov eax, dword [ebp*4 + 0xdad5c0]
lea edx, [ebp + ebp*4]
mov edi, dword [esp + 0x28]
shl edx, 4
mov ebx, dword [ebp*4 + 0xdac1a0]
movsx esi, byte [ebp + ebp + 0xdae9c1]
mov ecx, dword [eax*4 + 0xee6468]
add edx, 0xdaf3c0
movsx eax, byte [ebp + ebp + 0xdae9c0]
mov dword [esp + 0x24], edx
test ecx, ecx
je 0x44f20b
mov edx, edi
test dl, dl
je 0x450849
mov dword [esp + 8], eax
mov edx, dword [esp + 0x780]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], edx
mov dword [esp + 0xc], esi
mov dword [esp + 4], eax
mov dword [esp], 0x518bd9
call fcn.00402550
mov dword [esp + 4], eax
mov eax, dword [esp + 0x788]
mov dword [esp], eax
call sub.msvcrt.dll_strcpy
mov eax, dword [esp + 0x788]
mov dword [esp + 0xc], 0xb
mov dword [esp + 8], 0xffffffff
add eax, 2
mov dword [esp + 4], 5
mov dword [esp + 0x10], eax
mov dword [esp], 5
call fcn.00408cb0
movzx eax, byte [ebp + ebp + 0xdae9c1]
cmp al, 0x7e
je 0x450b63
mov byte [esp + 0x52], 0
cmp al, 0x53
sete byte [esp + 0x51]
mov dword [esp + 0x28], 0
mov byte [esp + 0x44], 0
mov byte [esp + 0x48], 0
mov dword [esp + 0x4c], 0
mov byte [esp + 0x53], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x2c], 0
lea esi, [esi]
lea esi, [esi]
lea eax, [esp + 0x360]
mov dword [esp + 8], 0x400
mov dword [esp + 4], eax
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.00445ec0
test eax, eax
jne 0x44f3f8
movzx ebp, byte [esp + 0x360]
lea eax, [ebp - 0x24]
cmp al, 1
ja 0x44f4c5
lea edi, [esp + 0x361]
mov esi, ebp
jmp 0x44f350
add ebx, 1
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov dword [esp + 4], ebx
add eax, 1
mov dword [esp + 8], eax
lea eax, [esp + 0x360]
mov dword [esp], eax
call sub.msvcrt.dll_memmove
movzx esi, byte [esp + 0x360]
lea eax, [esi - 0x24]
cmp al, 1
ja 0x44f4b7
mov dword [esp + 4], 0x24
mov dword [esp], edi
call sub.msvcrt.dll_strchr
mov dword [esp + 4], 0x21
mov dword [esp], edi
mov ebp, eax
call sub.msvcrt.dll_strchr
mov dword [esp + 0x24], eax
mov ebx, eax
mov eax, ebp
or eax, ebx
je case.0x44f503.1
test ebp, ebp
je 0x44f392
test ebx, ebx
je 0x44f410
cmp ebx, ebp
jae 0x44f410
mov eax, esi
cmp al, 0x24
jne 0x44f318
movzx eax, byte [ebx]
cmp al, 0x21
je 0x44f420
cmp al, 0x24
jne 0x44f318
cmp dword [edi], 0x5f475052
je 0x44f470
cmp dword [edi], 0x54534554
je 0x44f498
cmp dword [edi], 0x41435241
jne 0x44f318
cmp dword [edi + 4], 0x535f4544
jne 0x44f318
cmp dword [edi + 8], 0x45565245
jne 0x44f318
cmp byte [edi + 0xc], 0x52
jne 0x44f318
jmp case.0x44f503.1
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.00445e70
add esp, 0x76c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0x24], eax
mov ebx, ebp
jmp 0x44f392
cmp dword [edi], 0x4c4c4148
jne 0x44f318
cmp dword [edi + 4], 0x4545574f
jne 0x44f318
cmp byte [edi + 8], 0x4e
jne 0x44f318
lea eax, [esp + 0x360]
mov dword [esp + 4], str.JOKEANGBAND
mov dword [esp], eax
call sub.msvcrt.dll_strstr
test eax, eax
je 0x44f318
jmp case.0x44f503.1
cmp dword [edi + 4], 0x56524553
jne 0x44f3b7
cmp word [edi + 8], 0x5245
je case.0x44f503.1
cmp dword [edi], 0x54534554
jne 0x44f3c3
lea esi, [esi]
cmp dword [edi + 4], 0x5245535f
jne 0x44f3c3
cmp dword [edi + 7], 0x52455652
jne 0x44f3c3
jmp case.0x44f503.1
mov eax, dword [esp + 0x24]
mov ebp, esi
test eax, eax
je case.0x44f503.1
lea eax, [esp + 0x360]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
cmp eax, 2
jbe case.0x44f503.1
mov eax, ebp
cmp al, 0x4e
je 0x44f3f8
lea edx, [ebp - 0x42]
mov byte [esp + 0x60], 0
mov byte [esp + 0x160], 0
cmp dl, 0x15
ja case.0x44f503.1
movzx edx, dl
jmp dword [edx*4 + 0x51908c]
cmp byte [esp + 0x53], 0
jne case.0x44f503.1
lea eax, [esp + 0x362]
mov dword [esp + 4], 0x3a
lea ebx, [esp + 0x160]
mov dword [esp], eax
lea ebp, [esp + 0x60]
call sub.msvcrt.dll_strchr
lea esi, [eax + 1]
lea eax, [esp + 0x362]
mov dword [esp], eax
call sub.msvcrt.dll_atoi
mov dword [esp + 0x14], 0x75
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0x73
mov dword [esp + 8], 0x75
mov dword [esp + 4], 0x518ceb
mov dword [esp], ebx
call fcn.0044d730
mov dword [esp + 4], ebx
mov dword [esp], ebp
call sub.msvcrt.dll_strcpy
mov dword [esp], esi
mov dword [esp + 4], 0x3a
call sub.msvcrt.dll_strchr
mov dword [esp], esi
lea edi, [eax + 1]
call sub.msvcrt.dll_atoi
mov esi, eax
cmp eax, 1
je 0x4517e9
mov dword [esp + 0xc], 0x75
cmp eax, 3
jle 0x451794
cmp eax, 0xff
je 0x451737
mov dword [esp + 8], eax
mov dword [esp + 4], 0x73
mov dword [esp], 0x518d5e
call fcn.00402550
mov dword [esp], ebx
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcat
mov dword [esp + 0xc], 0x75
mov dword [esp + 8], esi
mov dword [esp + 4], 0x73
mov dword [esp], 0x518d5e
call fcn.00402550
mov dword [esp], ebp
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcat
mov dword [esp], edi
mov dword [esp + 4], 0x3a
call sub.msvcrt.dll_strchr
mov dword [esp], edi
lea esi, [eax + 1]
call sub.msvcrt.dll_atoi
mov dword [esp + 0xc], 0x75
mov ecx, eax
mov eax, 0x66666667
mov dword [esp + 4], 0x73
imul ecx
mov eax, ecx
sar eax, 0x1f
sar edx, 2
sub edx, eax
mov dword [esp + 8], edx
mov edi, edx
cmp ecx, 0x3f1
jle 0x450fc1
cmp ecx, 0x119d
jle 0x4516d6
cmp ecx, 0x4e29
jg 0x451493
mov dword [esp], 0x518d9d
call fcn.00402550
mov dword [esp], ebx
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcat
mov dword [esp + 0xc], 0x75
mov dword [esp + 8], edi
mov dword [esp + 4], 0x73
mov dword [esp], 0x518d9d
call fcn.00402550
mov dword [esp], ebp
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcat
jmp 0x451005
movsx eax, byte [esp + 0x362]
lea ebx, [esp + 0x362]
lea ebp, [esp + 0x60]
test al, al
je 0x44f712
cmp al, 0x20
je 0x44f707
cmp al, 0x7c
jne 0x44f6eb
mov byte [ebx], 0x20
mov eax, 0x20
mov dword [esp + 4], eax
mov dword [esp], 0x518f96
call fcn.00402550
mov dword [esp], ebp
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcat
movsx eax, byte [ebx + 1]
add ebx, 1
test al, al
jne 0x44f6db
mov dword [esp], ebp
call sub.msvcrt.dll_strlen
cmp byte [esp + eax + 0x5f], 0x20
jne 0x45079f
mov dword [esp + 4], str.RAISE_DEAD
mov dword [esp], ebp
call sub.msvcrt.dll_strstr
mov esi, eax
test eax, eax
je 0x44f775
lea ebx, [esp + 0x160]
mov dword [esp + 4], ebp
mov dword [esp], ebx
call sub.msvcrt.dll_strcpy
mov eax, esi
add esi, 0xb
sub eax, ebp
mov byte [esp + eax + 0x160], 0
mov dword [esp + 4], esi
mov dword [esp], ebx
call sub.msvcrt.dll_strcat
mov dword [esp + 4], ebx
mov dword [esp], ebp
call sub.msvcrt.dll_strcpy
cmp byte [esp + 0x44], 0
je 0x451528
movzx eax, byte [esp + 0x60]
mov ebx, ebp
test al, al
je 0x450c15
mov esi, dword [esp + 0x30]
mov edx, dword [esp + 0x788]
shl esi, 8
add edx, esi
mov dword [esp + 0x44], edx
cmp al, 0x20
jne 0x44f7c3
lea esi, [esi]
nop
movzx eax, byte [ebx + 1]
add ebx, 1
cmp al, 0x20
je 0x44f7b0
test al, al
je 0x450c15
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x24], esi
lea edi, [esp + 0x160]
add eax, 7
mov dword [esp + 0x38], eax
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov esi, eax
mov eax, dword [esp + 0x28]
add eax, esi
cmp eax, 0x4f
jbe 0x450f6e
mov dword [esp + 4], 0x20
mov dword [esp], ebx
call sub.msvcrt.dll_strchr
mov ebp, eax
test eax, eax
je 0x450ba0
mov ecx, eax
mov eax, dword [esp + 0x28]
sub ecx, ebx
add eax, ecx
cmp eax, 0x4f
jg 0x450ba0
add esi, 1
mov dword [esp + 4], ebx
lea ebx, [ebp + 1]
mov dword [esp + 8], esi
mov dword [esp], edi
mov dword [esp + 0x3c], ecx
call sub.msvcrt.dll_memcpy
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x44]
mov byte [esp + ecx + 0x161], 0
mov dword [esp + 4], edi
mov dword [esp], eax
call sub.msvcrt.dll_strcat
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x38]
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], 2
mov dword [esp], esi
mov dword [esp + 8], 0xffffffff
mov dword [esp + 4], eax
call fcn.00408cb0
mov dword [esp], edi
call sub.msvcrt.dll_strlen
add esi, eax
movzx eax, byte [ebp + 1]
mov dword [esp + 0x28], esi
test al, al
je 0x450c15
cmp al, 0x20
jne 0x44f7d9
mov esi, dword [esp + 0x24]
jmp 0x44f7b0
mov ebx, 0x20
mov dword [esp + 8], 0x75
lea ebp, [esp + 0x60]
mov word [esp + 0x6c], bx
lea ebx, [esp + 0x160]
mov dword [esp + 4], 0x518eae
mov dword [esp], ebx
mov dword [esp + 0x60], 0x61757355
mov dword [esp + 0x64], 0x7264206c
mov dword [esp + 0x68], 0x3a73706f
call fcn.0044d730
lea eax, [esp + 0x362]
mov dword [esp + 4], 0x3a
mov dword [esp], eax
call sub.msvcrt.dll_strchr
add eax, 1
mov dword [esp + 0x24], eax
lea eax, [esp + 0x362]
mov dword [esp], eax
call sub.msvcrt.dll_atoi
mov edi, eax
test eax, eax
jne 0x450894
mov eax, dword [esp + 0x24]
mov dword [esp + 4], 0x3a
mov dword [esp], eax
call sub.msvcrt.dll_strchr
lea esi, [eax + 1]
mov eax, dword [esp + 0x24]
mov dword [esp], eax
call sub.msvcrt.dll_atoi
mov dword [esp + 0x38], eax
test eax, eax
jne 0x450972
mov dword [esp + 4], 0x3a
mov dword [esp], esi
call sub.msvcrt.dll_strchr
mov dword [esp], esi
add eax, 1
mov dword [esp + 0x24], eax
call sub.msvcrt.dll_atoi
mov edx, eax
test eax, eax
je 0x45110e
mov dword [esp], esi
call sub.msvcrt.dll_atoi
mov dword [esp + 0xc], 0x75
mov dword [esp + 8], eax
mov dword [esp + 4], 0x73
mov dword [esp], 0x518edf
call fcn.00402550
mov dword [esp], ebx
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcat
mov dword [esp], esi
call sub.msvcrt.dll_atoi
mov dword [esp + 0xc], 0x75
mov dword [esp + 8], eax
mov dword [esp + 4], 0x73
mov dword [esp], 0x518ef0
call fcn.00402550
mov dword [esp], ebp
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcat
mov dword [esp], esi
call sub.msvcrt.dll_atoi
mov edi, dword [esp + 0x38]
add edi, eax
jmp 0x450a17
lea eax, [esp + 0x362]
mov dword [esp + 4], 0x3a
mov dword [esp], eax
call sub.msvcrt.dll_strchr
mov esi, eax
lea edi, [eax + 1]
lea eax, [esp + 0x362]
mov dword [esp], eax
call sub.msvcrt.dll_atoi
sub eax, 0x6e
mov edx, eax
je 0x450ebe
mov eax, str.Fast_
mov ecx, 0x518bf2
mov dword [esp + 0x14], edx
lea ebx, [esp + 0x160]
cmovs eax, ecx
mov dword [esp + 0x18], 0x75
mov dword [esp + 0xc], 0x73
mov dword [esp + 0x10], eax
mov dword [esp + 8], 0x75
mov dword [esp + 4], 0x518c3d
mov dword [esp], ebx
call fcn.0044d730
lea ebp, [esp + 0x60]
mov dword [esp + 4], ebx
mov dword [esp], ebp
call sub.msvcrt.dll_strcat
mov dword [esp], edi
mov dword [esp + 4], 0x3a
call sub.msvcrt.dll_strchr
mov dword [esp + 0xc], edi
mov edx, eax
mov dword [esp + 8], 0x518c6d
lea eax, [eax + 1]
sub edx, esi
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 0x38], edx
mov dword [esp + 0x24], eax
call fcn.0044dc80
mov edx, dword [esp + 0x38]
mov byte [esp + edx + 0x15f], 0
mov dword [esp + 0xc], 0x75
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x73
mov dword [esp], str.HP:
call fcn.00402550
mov dword [esp], ebp
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcat
mov edi, dword [esp + 0x24]
mov dword [esp + 4], 0x3a
mov dword [esp], edi
call sub.msvcrt.dll_strchr
mov dword [esp], edi
lea esi, [eax + 1]
call sub.msvcrt.dll_atoi
mov dword [esp + 0x10], 0x75
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x73
mov dword [esp + 4], str.Radius:
mov dword [esp], ebx
call fcn.0044d730
mov dword [esp + 4], ebx
mov dword [esp], ebp
call sub.msvcrt.dll_strcat
mov dword [esp + 4], 0x3a
mov dword [esp], esi
call sub.msvcrt.dll_strchr
mov dword [esp], esi
mov edi, eax
add edi, 1
call sub.msvcrt.dll_atoi
mov dword [esp + 0x10], 0x75
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x73
mov dword [esp + 4], 0x518c92
mov dword [esp], ebx
call fcn.0044d730
mov dword [esp + 4], ebx
mov dword [esp], ebp
call sub.msvcrt.dll_strcat
mov dword [esp], edi
call sub.msvcrt.dll_atoi
test eax, eax
je 0x450d88
mov dword [esp + 0xc], 0x75
mov dword [esp + 8], 0x73
cmp eax, 0x1a
jle 0x450b44
cmp eax, 0x78
jle 0x450ce3
mov dword [esp + 4], 0x518cd2
mov dword [esp], ebx
call fcn.0044d730
mov dword [esp + 4], ebx
mov dword [esp], ebp
call sub.msvcrt.dll_strcat
mov dword [esp + 4], 0x75
mov dword [esp], 0x518ce7
call fcn.00402550
add dword [esp + 0x30], 1
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0x788]
mov dword [esp + 4], eax
shl edx, 8
add ebx, edx
mov dword [esp], ebx
call sub.msvcrt.dll_strcpy
mov dword [esp + 4], ebp
mov dword [esp], ebx
call sub.msvcrt.dll_strcat
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x10], ebp
mov dword [esp + 0xc], 7
lea ebx, [eax + 1]
add eax, 7
mov dword [esp + 8], 0xffffffff
mov dword [esp + 4], eax
mov dword [esp], 1
call fcn.00408cb0
mov dword [esp + 0x2c], ebx
jmp case.0x44f503.1
cmp byte [esp + 0x48], 0
je 0x4507bd
movsx eax, byte [esp + 0x362]
lea ebx, [esp + 0x362]
lea ebp, [esp + 0x60]
test al, al
je 0x44fcab
cmp al, 0x20
je 0x44fca0
cmp al, 0x7c
jne 0x44fc84
mov byte [ebx], 0x20
mov eax, 0x20
mov dword [esp + 4], eax
mov dword [esp], 0x518f96
call fcn.00402550
mov dword [esp], ebp
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcat
movsx eax, byte [ebx + 1]
add ebx, 1
test al, al
jne 0x44fc74
mov dword [esp], ebp
call sub.msvcrt.dll_strlen
cmp byte [esp + eax + 0x5f], 0x20
jne 0x4507ae
mov dword [esp + 4], str.PLURAL
mov dword [esp], ebp
call sub.msvcrt.dll_strstr
mov esi, eax
test eax, eax
je 0x44fd0e
lea ebx, [esp + 0x160]
mov dword [esp + 4], ebp
mov dword [esp], ebx
call sub.msvcrt.dll_strcpy
mov eax, esi
add esi, 7
sub eax, ebp
mov byte [esp + eax + 0x160], 0
mov dword [esp + 4], esi
mov dword [esp], ebx
call sub.msvcrt.dll_strcat
mov dword [esp + 4], ebx
mov dword [esp], ebp
call sub.msvcrt.dll_strcpy
mov dword [esp + 4], str.SPECIAL_GENE
mov dword [esp], ebp
call sub.msvcrt.dll_strstr
mov esi, eax
test eax, eax
je 0x44fd5e
lea ebx, [esp + 0x160]
mov dword [esp + 4], ebp
mov dword [esp], ebx
call sub.msvcrt.dll_strcpy
mov eax, esi
add esi, 0xd
sub eax, ebp
mov byte [esp + eax + 0x160], 0
mov dword [esp + 4], esi
mov dword [esp], ebx
call sub.msvcrt.dll_strcat
mov dword [esp + 4], ebx
mov dword [esp], ebp
call sub.msvcrt.dll_strcpy
mov dword [esp + 4], str.FORCE_SLEEP
mov dword [esp], ebp
call sub.msvcrt.dll_strstr
mov esi, eax
test eax, eax
je 0x44fdae
lea ebx, [esp + 0x160]
mov dword [esp + 4], ebp
mov dword [esp], ebx
call sub.msvcrt.dll_strcpy
mov eax, esi
add esi, 0xc
sub eax, ebp
mov byte [esp + eax + 0x160], 0
mov dword [esp + 4], esi
mov dword [esp], ebx
call sub.msvcrt.dll_strcat
mov dword [esp + 4], ebx
mov dword [esp], ebp
call sub.msvcrt.dll_strcpy
mov dword [esp + 4], str.DROP_CORPSE
mov dword [esp], ebp
call sub.msvcrt.dll_strstr
mov esi, eax
test eax, eax
je 0x44fdfe
lea ebx, [esp + 0x160]
mov dword [esp + 4], ebp
mov dword [esp], ebx
call sub.msvcrt.dll_strcpy
mov eax, esi
add esi, 0xc
sub eax, ebp
mov byte [esp + eax + 0x160], 0
mov dword [esp + 4], esi
mov dword [esp], ebx
call sub.msvcrt.dll_strcat
mov dword [esp + 4], ebx
mov dword [esp], ebp
call sub.msvcrt.dll_strcpy
mov dword [esp + 4], str.DROP_SKELETON
mov dword [esp], ebp
call sub.msvcrt.dll_strstr
mov esi, eax
test eax, eax
je 0x44fe4e
lea ebx, [esp + 0x160]
mov dword [esp + 4], ebp
mov dword [esp], ebx
call sub.msvcrt.dll_strcpy
mov eax, esi
add esi, 0xe
sub eax, ebp
mov byte [esp + eax + 0x160], 0
mov dword [esp + 4], esi
mov dword [esp], ebx
call sub.msvcrt.dll_strcat
mov dword [esp + 4], ebx
mov dword [esp], ebp
call sub.msvcrt.dll_strcpy
mov dword [esp + 4], str.HAS_EGG
mov dword [esp], ebp
call sub.msvcrt.dll_strstr
mov esi, eax
test eax, eax
je 0x44fe9e
lea ebx, [esp + 0x160]
mov dword [esp + 4], ebp
mov dword [esp], ebx
call sub.msvcrt.dll_strcpy
mov eax, esi
add esi, 8
sub eax, ebp
mov byte [esp + eax + 0x160], 0
mov dword [esp + 4], esi
mov dword [esp], ebx
call sub.msvcrt.dll_strcat
mov dword [esp + 4], ebx
mov dword [esp], ebp
call sub.msvcrt.dll_strcpy
mov dword [esp + 4], str.IMPRESSED
mov dword [esp], ebp
call sub.msvcrt.dll_strstr
mov esi, eax
test eax, eax
je 0x44feee
lea ebx, [esp + 0x160]
mov dword [esp + 4], ebp
mov dword [esp], ebx
call sub.msvcrt.dll_strcpy
mov eax, esi
add esi, 0xa
sub eax, ebp
mov byte [esp + eax + 0x160], 0
mov dword [esp + 4], esi
mov dword [esp], ebx
call sub.msvcrt.dll_strcat
mov dword [esp + 4], ebx
mov dword [esp], ebp
call sub.msvcrt.dll_strcpy
mov dword [esp + 4], str.MORTAL
mov dword [esp], ebp
call sub.msvcrt.dll_strstr
mov esi, eax
test eax, eax
je 0x44ff3e
lea ebx, [esp + 0x160]
mov dword [esp + 4], ebp
mov dword [esp], ebx
call sub.msvcrt.dll_strcpy
mov eax, esi
add esi, 7
sub eax, ebp
mov byte [esp + eax + 0x160], 0
mov dword [esp + 4], esi
mov dword [esp], ebx
call sub.msvcrt.dll_strcat
mov dword [esp + 4], ebx
mov dword [esp], ebp
call sub.msvcrt.dll_strcpy
mov dword [esp + 4], str.POSSESSOR
mov dword [esp], ebp
call sub.msvcrt.dll_strstr
mov esi, eax
test eax, eax
je 0x44ff8e
lea ebx, [esp + 0x160]
mov dword [esp + 4], ebp
mov dword [esp], ebx
call sub.msvcrt.dll_strcpy
mov eax, esi
add esi, 0xa
sub eax, ebp
mov byte [esp + eax + 0x160], 0
mov dword [esp + 4], esi
mov dword [esp], ebx
call sub.msvcrt.dll_strcat
mov dword [esp + 4], ebx
mov dword [esp], ebp
call sub.msvcrt.dll_strcpy
mov dword [esp + 4], str.DEATH_ORB
mov dword [esp], ebp
call sub.msvcrt.dll_strstr
mov esi, eax
test eax, eax
je 0x44ffde
lea ebx, [esp + 0x160]
mov dword [esp + 4], ebp
mov dword [esp], ebx
call sub.msvcrt.dll_strcpy
mov eax, esi
add esi, 0xa
sub eax, ebp
mov byte [esp + eax + 0x160], 0
mov dword [esp + 4], esi
mov dword [esp], ebx
call sub.msvcrt.dll_strcat
mov dword [esp + 4], ebx
mov dword [esp], ebp
call sub.msvcrt.dll_strcpy
mov dword [esp + 4], str.AI_SPECIAL
mov dword [esp], ebp
call sub.msvcrt.dll_strstr
mov esi, eax
test eax, eax
je 0x45002e
lea ebx, [esp + 0x160]
mov dword [esp + 4], ebp
mov dword [esp], ebx
call sub.msvcrt.dll_strcpy
mov eax, esi
add esi, 0xb
sub eax, ebp
mov byte [esp + eax + 0x160], 0
mov dword [esp + 4], esi
mov dword [esp], ebx
call sub.msvcrt.dll_strcat
mov dword [esp + 4], ebx
mov dword [esp], ebp
call sub.msvcrt.dll_strcpy
mov eax, str.IM_COLD
xor edx, edx
lea edi, [esp + 0x61]
cmp byte [eax], 0
mov esi, eax
je 0x450154
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], eax
lea esi, [esi]
mov dword [esp], esi
mov ebx, ebp
call sub.msvcrt.dll_strlen
mov dword [esp + 0x24], eax
jmp 0x450083
cmp ebx, edi
jb 0x450070
movzx eax, byte [ebx - 1]
cmp al, 0x20
je 0x45009d
cmp al, 0x7c
je 0x45009d
lea eax, [esp + 0x62]
cmp ebx, eax
jb 0x450080
cmp byte [ebx - 2], 0xff
je 0x45009d
nop
add ebx, 1
mov dword [esp], ebx
mov dword [esp + 4], esi
call sub.msvcrt.dll_strstr
mov ebx, eax
test eax, eax
je 0x450140
cmp ebx, ebp
jne 0x450060
cmp byte [ebx], 0
je 0x450080
mov eax, dword [esp + 0x24]
movzx eax, byte [ebx + eax]
cmp al, 0x7c
sete cl
cmp al, 0x20
sete dl
or dl, cl
jne 0x4500bf
add eax, 1
cmp al, 1
ja 0x450080
lea eax, [esp + 0x260]
mov dword [esp + 4], ebp
mov dword [esp], eax
call sub.msvcrt.dll_strcpy
mov edx, dword [esp + 0x38]
mov eax, ebx
mov dword [esp + 8], esi
mov dword [esp + 0xc], 0x73
sub eax, ebp
cmp edx, 5
ja case.0x4500ef.608
jmp dword [edx*4 + 0x5190e4]
lea edx, [esp + 0x260]
mov dword [esp + 4], 0x519033
add eax, edx
mov dword [esp], eax
call fcn.0044d730
nop
mov dword [esp], esi
call sub.msvcrt.dll_strlen
add ebx, eax
lea eax, [esp + 0x260]
mov dword [esp + 4], ebx
mov dword [esp], eax
call sub.msvcrt.dll_strcat
lea eax, [esp + 0x260]
mov dword [esp], ebp
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcpy
add esi, 0x14
cmp byte [esi], 0
jne 0x450050
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
add edx, 1
add eax, 0xf0
cmp edx, 6
jne 0x450039
movzx edx, byte [esp + 0x60]
cmp dl, 0x20
jne 0x451728
mov ebx, ebp
movzx eax, byte [ebx + 1]
add ebx, 1
cmp al, 0x20
je 0x450175
test al, al
je 0x4502e0
mov eax, dword [esp + 0x30]
mov byte [esp + 0x58], dl
shl eax, 8
mov dword [esp + 0x48], eax
add eax, dword [esp + 0x788]
mov dword [esp], eax
mov dword [esp + 0x38], eax
call sub.msvcrt.dll_strlen
mov dword [esp], ebx
mov esi, eax
call sub.msvcrt.dll_strlen
mov dword [esp], 0x114ee60
lea edi, [esi + eax]
mov dword [esp + 0x24], eax
mov dword [esp + 0x3c], edi
call sub.msvcrt.dll_strlen
mov ecx, 0xec
movzx edx, byte [esp + 0x58]
sub ecx, eax
cmp edi, ecx
mov dword [esp + 0x54], ecx
jb 0x4511ec
lea eax, [ebx + 1]
mov dword [esp + 4], 0x20
mov dword [esp], eax
call sub.msvcrt.dll_strchr
mov edx, dword [esp + 0x48]
add dword [esp + 0x30], 1
mov edi, eax
mov eax, dword [esp + 0x788]
mov esi, dword [esp + 0x24]
lea eax, [eax + edx + 0x100]
mov edx, ebx
mov dword [esp + 0x48], eax
test edi, edi
jne 0x45022a
jmp 0x45171f
mov edi, eax
mov dword [esp], edi
mov dword [esp + 0x5c], edx
mov dword [esp + 0x58], esi
call sub.msvcrt.dll_strlen
mov edx, dword [esp + 0x54]
mov esi, eax
mov eax, dword [esp + 0x3c]
sub eax, esi
cmp eax, edx
mov edx, dword [esp + 0x5c]
jae 0x45183e
lea eax, [edi + 1]
mov dword [esp + 4], 0x20
mov dword [esp], eax
call sub.msvcrt.dll_strchr
mov edx, edi
test eax, eax
jne 0x450228
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x38]
mov dword [esp + 4], ebx
mov dword [esp + 0x54], edx
sub eax, esi
mov dword [esp], edi
mov dword [esp + 8], eax
call sub.msvcrt.dll_strncat
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x54]
sub eax, esi
mov byte [edi + eax], 0
cmp byte [edx], 0x20
jne 0x4502a4
add edx, 1
cmp byte [edx], 0x20
je 0x45029c
mov dword [esp + 8], edx
mov dword [esp + 4], 0x73
mov dword [esp], 0x51903b
call fcn.00402550
mov dword [esp + 4], eax
mov eax, dword [esp + 0x48]
mov dword [esp], eax
call sub.msvcrt.dll_strcpy
movzx edx, byte [esp + 0x60]
test dl, dl
je 0x450b59
cmp dl, 0x20
jne 0x4502f3
nop
movzx eax, byte [ebp + 1]
add ebp, 1
cmp al, 0x20
je 0x4502e0
test al, al
je 0x450b59
mov eax, dword [esp + 0x2c]
lea edi, [esp + 0x160]
add eax, 7
mov dword [esp + 0x24], eax
mov dword [esp], ebp
call sub.msvcrt.dll_strlen
mov ebx, eax
mov eax, dword [esp + 0x28]
add eax, ebx
cmp eax, 0x4f
jbe 0x451230
mov dword [esp + 4], 0x20
mov dword [esp], ebp
call sub.msvcrt.dll_strchr
mov esi, eax
test eax, eax
je 0x4512e6
mov ecx, eax
mov eax, dword [esp + 0x28]
sub ecx, ebp
add eax, ecx
cmp eax, 0x4f
jg 0x45127d
add ebx, 1
mov dword [esp + 4], ebp
lea ebp, [esi + 1]
mov dword [esp + 8], ebx
mov dword [esp], edi
mov dword [esp + 0x38], ecx
call sub.msvcrt.dll_memcpy
mov ecx, dword [esp + 0x38]
mov ebx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
mov byte [esp + ecx + 0x161], 0
mov dword [esp], ebx
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], 2
mov dword [esp + 8], 0xffffffff
mov dword [esp + 4], eax
call fcn.00408cb0
mov dword [esp], edi
call sub.msvcrt.dll_strlen
add ebx, eax
mov eax, edi
call fcn.0044d760
sub ebx, eax
movzx eax, byte [esi + 1]
mov dword [esp + 0x28], ebx
test al, al
je 0x450b59
cmp al, 0x20
jne 0x450305
movzx eax, byte [ebp + 1]
add ebp, 1
cmp al, 0x20
je 0x4502e0
jmp 0x4502eb
lea edx, [esp + 0x260]
mov dword [esp + 4], 0x51902b
add eax, edx
mov dword [esp], eax
call fcn.0044d730
jmp 0x450110
lea edx, [esp + 0x260]
mov dword [esp + 4], 0x519023
add eax, edx
mov dword [esp], eax
call fcn.0044d730
jmp 0x450110
lea edx, [esp + 0x260]
mov dword [esp + 4], 0x51901b
add eax, edx
mov dword [esp], eax
call fcn.0044d730
jmp 0x450110
lea edx, [esp + 0x260]
mov dword [esp + 4], 0x519013
add eax, edx
mov dword [esp], eax
call fcn.0044d730
jmp 0x450110
lea ebp, [esp + 0x60]
mov dword [esp + 8], 0x73
mov dword [esp + 4], str.Usable_limbs__mimicry_users_:
mov dword [esp], ebp
call fcn.0044d730
lea eax, [esp + 0x362]
mov dword [esp + 4], 0x3a
mov dword [esp], eax
mov byte [esp + 0x160], 0
call sub.msvcrt.dll_strchr
lea esi, [eax + 1]
lea eax, [esp + 0x362]
mov dword [esp], eax
call sub.msvcrt.dll_atoi
test eax, eax
jne 0x450718
mov dword [esp + 4], 0x3a
mov dword [esp], esi
call sub.msvcrt.dll_strchr
mov dword [esp], esi
lea edi, [eax + 1]
call sub.msvcrt.dll_atoi
test eax, eax
je 0x450ef2
lea ebx, [esp + 0x160]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov edx, 0x6f
mov byte [esp + 0x24], 0
add eax, ebx
mov dword [eax], 0x73726f54
mov word [eax + 4], dx
mov dword [esp + 4], 0x3a
mov dword [esp], edi
call sub.msvcrt.dll_strchr
mov dword [esp], edi
lea esi, [eax + 1]
call sub.msvcrt.dll_atoi
test eax, eax
je 0x450517
cmp byte [esp + 0x52], 0
je 0x450de8
mov byte [esp + 0x38], 0
mov edx, 1
mov dword [esp + 4], 0x3a
mov dword [esp], esi
mov dword [esp + 0x3c], edx
call sub.msvcrt.dll_strchr
mov dword [esp], esi
lea edi, [eax + 1]
call sub.msvcrt.dll_atoi
mov edx, dword [esp + 0x3c]
test eax, eax
je 0x45055a
cmp byte [esp + 0x51], 0
jne 0x45055a
cmp byte [esp + 0x52], 0
je 0x4514dc
mov dword [esp + 4], 0x3a
mov dword [esp], edi
mov dword [esp + 0x24], edx
call sub.msvcrt.dll_strchr
mov dword [esp], edi
lea esi, [eax + 1]
call sub.msvcrt.dll_atoi
mov edx, dword [esp + 0x24]
test eax, eax
je 0x450c48
test edx, edx
jne 0x450ca6
mov dword [esp], edi
call sub.msvcrt.dll_atoi
mov edx, 0x518bff
mov dword [esp], str.Head_s
cmp eax, 1
mov eax, 0x518c00
cmove eax, edx
mov dword [esp + 4], eax
call fcn.00402550
mov dword [esp + 4], eax
mov dword [esp], ebx
call sub.msvcrt.dll_strcat
mov dword [esp], esi
call sub.msvcrt.dll_atoi
test eax, eax
je 0x450611
mov dword [esp], esi
call sub.msvcrt.dll_atoi
mov edx, 0x518bff
mov dword [esp + 8], 0x73
cmp eax, 1
mov eax, 0x518c00
mov dword [esp + 4], 0x75
cmove eax, edx
mov dword [esp], 0x518e82
mov dword [esp + 0xc], eax
call fcn.00402550
mov dword [esp], ebx
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcat
mov dword [esp], ebx
mov esi, 0x2e
call sub.msvcrt.dll_strlen
add dword [esp + 0x30], 1
mov word [ebx + eax], si
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x788]
mov dword [esp + 0xc], 0x73
shl eax, 8
mov dword [esp + 8], 0x75
add esi, eax
mov dword [esp + 4], 0x518e96
mov dword [esp], esi
call fcn.0044d730
mov dword [esp + 4], ebx
mov dword [esp], esi
call sub.msvcrt.dll_strcat
mov dword [esp + 4], ebx
mov dword [esp], ebp
jmp 0x44fc16
mov ebp, dword [esp + 0x4c]
test ebp, ebp
je 0x450e4e
mov ebx, dword [esp + 0x30]
shl ebx, 8
add ebx, dword [esp + 0x788]
lea ebp, [esp + 0x60]
add dword [esp + 0x4c], 1
mov edi, 0x20
lea eax, [esp + 0x362]
mov dword [esp], ebp
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcat
mov dword [esp + 4], ebp
mov dword [esp], ebx
call sub.msvcrt.dll_strcat
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov word [ebx + eax], di
mov esi, eax
mov dword [esp], ebp
call sub.msvcrt.dll_strlen
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x10], ebp
sub esi, eax
mov dword [esp + 0xc], 2
add edx, 7
mov dword [esp + 8], 0xffffffff
mov dword [esp + 4], edx
mov dword [esp], esi
call fcn.00408cb0
jmp case.0x44f503.1
lea edx, [esp + 0x260]
mov dword [esp + 4], 0x51900b
add eax, edx
mov dword [esp], eax
call fcn.0044d730
jmp 0x450110
lea ebx, [esp + 0x160]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
add eax, ebx
cmp byte [esp + 0x52], 0
je 0x450e3a
mov edi, 0x73
mov dword [eax], 0x746e6554
mov dword [eax + 4], 0x656c6361
mov word [eax + 8], di
mov dword [esp + 4], 0x3a
mov dword [esp], esi
call sub.msvcrt.dll_strchr
mov dword [esp], esi
lea edi, [eax + 1]
call sub.msvcrt.dll_atoi
test eax, eax
je 0x450db5
mov dword [esp + 8], 0x73
mov dword [esp + 4], 0x75
mov dword [esp], 0x518e1a
call fcn.00402550
mov dword [esp], ebx
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcat
mov byte [esp + 0x24], 1
jmp 0x4504ed
mov edx, 0x20
mov word [ebp + eax], dx
jmp 0x44f725
mov ecx, 0x20
mov word [ebp + eax], cx
jmp 0x44fcbe
mov ebx, dword [esp + 0x4c]
test ebx, ebx
je 0x4511b0
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x10], str.Flags:
mov dword [esp + 0xc], 7
lea ebx, [eax + 1]
add eax, 8
mov dword [esp + 8], 0xffffffff
mov dword [esp + 4], eax
mov dword [esp], 1
call fcn.00408cb0
mov dword [esp + 8], 0x73
mov dword [esp + 4], 0x75
mov dword [esp], 0x518f88
call fcn.00402550
add dword [esp + 0x30], 1
mov edx, dword [esp + 0x30]
mov dword [esp + 4], eax
mov eax, edx
shl eax, 8
add eax, dword [esp + 0x788]
mov dword [esp], eax
call sub.msvcrt.dll_strcpy
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x28], 8
jmp 0x44fc5d
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0x780]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14], ecx
mov dword [esp + 0xc], esi
mov dword [esp + 4], eax
mov dword [esp], 0x518bb8
call fcn.00402550
mov dword [esp + 4], eax
mov eax, dword [esp + 0x788]
mov dword [esp], eax
call sub.msvcrt.dll_strcpy
jmp 0x44f249
lea eax, [esp + 0x362]
mov dword [esp], eax
call sub.msvcrt.dll_atoi
mov dword [esp + 0xc], 0x75
mov dword [esp + 8], eax
mov dword [esp + 4], 0x73
mov dword [esp], 0x518eb9
call fcn.00402550
mov dword [esp], ebx
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcat
lea eax, [esp + 0x362]
mov dword [esp], eax
call sub.msvcrt.dll_atoi
mov dword [esp + 0xc], 0x75
mov dword [esp + 8], eax
mov dword [esp + 4], 0x73
mov dword [esp], 0x518eb9
call fcn.00402550
mov dword [esp], ebp
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcat
lea eax, [esp + 0x362]
mov dword [esp], eax
call sub.msvcrt.dll_atoi
mov dword [esp + 4], 0x3a
mov edi, eax
mov eax, dword [esp + 0x24]
mov dword [esp], eax
call sub.msvcrt.dll_strchr
lea esi, [eax + 1]
mov eax, dword [esp + 0x24]
mov dword [esp], eax
call sub.msvcrt.dll_atoi
test eax, eax
je 0x4510e2
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov edx, 0x202c
add eax, ebx
mov word [eax], dx
mov byte [eax + 2], 0
mov dword [esp], ebp
call sub.msvcrt.dll_strlen
mov ecx, 0x202c
add eax, ebp
mov word [eax], cx
mov byte [eax + 2], 0
mov eax, dword [esp + 0x24]
mov dword [esp], eax
call sub.msvcrt.dll_atoi
mov dword [esp + 0xc], 0x75
mov dword [esp + 8], eax
mov dword [esp + 4], 0x73
mov dword [esp], 0x518ecd
call fcn.00402550
mov dword [esp], ebx
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcat
mov eax, dword [esp + 0x24]
mov dword [esp], eax
call sub.msvcrt.dll_atoi
mov dword [esp + 0xc], 0x75
mov dword [esp + 8], eax
mov dword [esp + 4], 0x73
mov dword [esp], 0x518ecd
call fcn.00402550
mov dword [esp], ebp
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcat
mov eax, dword [esp + 0x24]
mov dword [esp], eax
call sub.msvcrt.dll_atoi
mov dword [esp + 4], 0x3a
mov dword [esp], esi
add edi, eax
call sub.msvcrt.dll_strchr
mov dword [esp], esi
add eax, 1
mov dword [esp + 0x24], eax
call sub.msvcrt.dll_atoi
test eax, eax
jne 0x450f39
mov eax, dword [esp + 0x24]
mov dword [esp], eax
call sub.msvcrt.dll_atoi
test eax, eax
je 0x450acd
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov edx, 0x202c
add eax, ebx
mov word [eax], dx
mov byte [eax + 2], 0
mov dword [esp], ebp
call sub.msvcrt.dll_strlen
mov ecx, 0x202c
add eax, ebp
mov word [eax], cx
mov byte [eax + 2], 0
mov esi, dword [esp + 0x24]
mov dword [esp], esi
call sub.msvcrt.dll_atoi
mov dword [esp + 0xc], 0x75
mov dword [esp + 8], eax
mov dword [esp + 4], 0x73
mov dword [esp], 0x518f07
call fcn.00402550
mov dword [esp], ebx
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcat
mov dword [esp], esi
call sub.msvcrt.dll_atoi
mov dword [esp + 0xc], 0x75
mov dword [esp + 8], eax
mov dword [esp + 4], 0x73
mov dword [esp], 0x518f07
call fcn.00402550
mov dword [esp], ebp
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcat
mov dword [esp], esi
call sub.msvcrt.dll_atoi
add edi, eax
cmp edi, 0x63
jle 0x450cf8
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov esi, eax
mov eax, 0x2e
mov word [ebx + esi], ax
mov dword [esp], ebp
call sub.msvcrt.dll_strlen
mov edx, 0x2e
add dword [esp + 0x30], 1
mov word [ebp + eax], dx
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x788]
shl eax, 8
add edx, eax
lea eax, [esi + 2]
cmp eax, 4
jae 0x450b72
test eax, eax
je 0x44fc1b
movzx ecx, byte [esp + 0x160]
mov byte [edx], cl
test al, 2
je 0x44fc1b
movzx ecx, word [esp + eax + 0x15e]
mov word [edx + eax - 2], cx
jmp 0x44fc1b
mov dword [esp + 4], 0x518cae
mov dword [esp], ebx
call fcn.0044d730
jmp 0x44fbce
mov byte [esp + 0x48], 1
jmp case.0x44f503.1
mov byte [esp + 0x51], 0
mov byte [esp + 0x52], 1
jmp 0x44f297
mov ecx, dword [esp + 0x160]
lea edi, [edx + 4]
mov esi, ebx
and edi, 0xfffffffc
mov dword [edx], ecx
mov ecx, dword [esp + eax + 0x15c]
mov dword [edx + eax - 4], ecx
sub edx, edi
add eax, edx
sub esi, edx
shr eax, 2
mov ecx, eax
rep movsd dword es:[edi], dword [esi]
jmp 0x44fc1b
mov eax, dword [esp + 0x2c]
add dword [esp + 0x40], 1
mov esi, dword [esp + 0x24]
lea edi, [eax + 1]
mov eax, dword [esp + 0x40]
cmp eax, 2
je 0x45160c
mov eax, dword [esp + 0x44]
mov dword [esp + 4], ebx
mov dword [esp], eax
call sub.msvcrt.dll_strcat
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], 2
add eax, 8
mov dword [esp + 8], 0xffffffff
mov dword [esp + 4], eax
mov dword [esp], 2
call fcn.00408cb0
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov dword [esp + 0x2c], edi
add eax, 2
mov byte [esp + 0x44], 1
mov dword [esp + 0x28], eax
jmp case.0x44f503.1
mov byte [esp + 0x44], 1
jmp case.0x44f503.1
mov dword [esp + 4], 0x3a
mov dword [esp], edi
call sub.msvcrt.dll_strchr
mov dword [esp], edi
lea esi, [eax + 1]
call sub.msvcrt.dll_atoi
test eax, eax
jne 0x450ca1
mov byte [esp + 0x51], 0
mov edx, 1
mov dword [esp], esi
mov dword [esp + 0x24], edx
call sub.msvcrt.dll_atoi
mov edx, dword [esp + 0x24]
test eax, eax
je 0x451187
test edx, edx
jne 0x4505cd
mov dword [esp], esi
call sub.msvcrt.dll_atoi
mov edx, 0x518bff
mov dword [esp], str.Leg_s
cmp eax, 1
mov eax, 0x518c00
cmove eax, edx
mov dword [esp + 4], eax
call fcn.00402550
mov dword [esp], ebx
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcat
jmp 0x450611
mov byte [esp + 0x51], 0
mov dword [esp], edi
call sub.msvcrt.dll_atoi
mov edx, 0x518bff
mov dword [esp + 8], 0x73
cmp eax, 1
mov eax, 0x518c00
mov dword [esp + 4], 0x75
cmove eax, edx
mov dword [esp], 0x518e6c
mov dword [esp + 0xc], eax
call fcn.00402550
jmp 0x4505b5
mov dword [esp + 4], 0x518cc4
mov dword [esp], ebx
call fcn.0044d730
jmp 0x44fbce
mov dword [esp], ebx
mov esi, 0x202c
call sub.msvcrt.dll_strlen
mov ecx, 0x202c
add eax, ebx
mov word [eax], cx
mov byte [eax + 2], 0
mov dword [esp], ebp
call sub.msvcrt.dll_strlen
add eax, ebp
mov word [eax], si
mov esi, 0x64
sub esi, edi
mov byte [eax + 2], 0
mov dword [esp + 0xc], 0x75
mov dword [esp + 8], esi
mov dword [esp + 4], 0x73
mov dword [esp], 0x518f32
call fcn.00402550
mov dword [esp], ebx
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcat
mov dword [esp + 0xc], 0x75
mov dword [esp + 8], esi
mov dword [esp + 4], 0x73
mov dword [esp], 0x518f32
call fcn.00402550
mov dword [esp], ebp
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcat
jmp 0x450ad6
mov dword [esp + 8], 0x75
mov dword [esp + 4], 0x73
mov dword [esp], 0x518ca1
call fcn.00402550
mov dword [esp], ebp
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcat
jmp 0x44fbda
mov dword [esp + 4], 0x3a
mov dword [esp], edi
call sub.msvcrt.dll_strchr
mov dword [esp], edi
lea esi, [eax + 1]
call sub.msvcrt.dll_atoi
test eax, eax
sete al
or al, byte [esp + 0x52]
mov byte [esp + 0x24], al
jne 0x450517
mov byte [esp + 0x24], 1
mov dword [esp], edi
call sub.msvcrt.dll_atoi
mov edx, 0x518bff
mov dword [esp + 8], 0x73
cmp eax, 1
mov eax, 0x518c00
mov dword [esp + 4], 0x75
cmove eax, edx
mov dword [esp], 0x518e28
mov dword [esp + 0xc], eax
call fcn.00402550
mov dword [esp], ebx
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcat
movzx eax, byte [esp + 0x24]
mov byte [esp + 0x38], al
jmp 0x4513bb
mov ecx, 0x73
mov dword [eax], 0x646e6148
mov word [eax + 4], cx
jmp 0x45074a
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x10], str.Melee_attacks__see_guide_for_explanation_:
mov dword [esp + 0xc], 7
lea esi, [eax + 1]
add eax, 7
mov dword [esp + 8], 0xffffffff
mov dword [esp + 4], eax
mov dword [esp], 1
call fcn.00408cb0
mov dword [esp + 4], 0x73
mov dword [esp], 0x518ce7
call fcn.00402550
add dword [esp + 0x30], 1
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0x788]
mov dword [esp + 4], eax
shl edx, 8
add ebx, edx
mov dword [esp], ebx
call sub.msvcrt.dll_strcpy
mov dword [esp + 0x2c], esi
jmp 0x450689
lea ebx, [esp + 0x160]
mov dword [esp + 0x10], 0x75
mov dword [esp + 0xc], 0x73
mov dword [esp + 8], 0x75
mov dword [esp + 4], 0x518c54
mov dword [esp], ebx
call fcn.0044d730
jmp 0x44fa71
mov dword [esp + 4], 0x3a
mov dword [esp], edi
mov dword [esp + 0x24], eax
call sub.msvcrt.dll_strchr
mov dword [esp], edi
lea esi, [eax + 1]
call sub.msvcrt.dll_atoi
mov edx, dword [esp + 0x24]
test eax, eax
sete al
or al, byte [esp + 0x52]
mov byte [esp + 0x38], al
je 0x451380
mov byte [esp + 0x24], 0
lea ebx, [esp + 0x160]
jmp 0x450521
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov edx, 0x202c
add eax, ebx
mov word [eax], dx
mov byte [eax + 2], 0
mov dword [esp], ebp
call sub.msvcrt.dll_strlen
mov ecx, 0x202c
mov dword [esp + 0x38], edi
add eax, ebp
mov word [eax], cx
mov byte [eax + 2], 0
jmp 0x44f97c
mov eax, dword [esp + 0x44]
mov dword [esp + 4], ebx
mov dword [esp], eax
call sub.msvcrt.dll_strcat
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], 2
add eax, 7
mov dword [esp], edi
mov dword [esp + 8], 0xffffffff
mov dword [esp + 4], eax
call fcn.00408cb0
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov byte [esp + 0x44], 1
add edi, eax
mov dword [esp + 0x28], edi
jmp case.0x44f503.1
mov dword [esp], 0x518d70
call fcn.00402550
mov dword [esp], ebx
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcat
mov dword [esp + 0xc], 0x75
mov dword [esp + 8], edi
mov dword [esp + 4], 0x73
mov dword [esp], 0x518d70
call fcn.00402550
mov dword [esp], ebp
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcat
mov dword [esp], esi
call sub.msvcrt.dll_atoi
mov dword [esp + 0xc], 0x75
mov dword [esp + 8], eax
mov dword [esp + 4], 0x73
mov dword [esp], str.XP:
call fcn.00402550
mov dword [esp], ebx
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcat
mov dword [esp], esi
call sub.msvcrt.dll_atoi
mov dword [esp + 0xc], 0x75
mov dword [esp + 8], eax
mov dword [esp + 4], 0x73
mov dword [esp], str.XP:
call fcn.00402550
mov dword [esp], ebp
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcat
add dword [esp + 0x30], 1
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x788]
mov dword [esp + 8], 0x75
shl eax, 8
mov dword [esp + 4], 0x518ce7
add esi, eax
mov dword [esp], esi
call fcn.0044d730
mov dword [esp + 4], ebx
mov dword [esp], esi
call sub.msvcrt.dll_strcat
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x10], ebp
mov dword [esp + 0xc], 7
lea ebx, [eax + 1]
add eax, 7
mov dword [esp + 8], 0xffffffff
mov dword [esp + 4], eax
mov dword [esp], 1
call fcn.00408cb0
mov dword [esp + 0x2c], ebx
mov byte [esp + 0x53], 1
jmp case.0x44f503.1
mov dword [esp + 4], 0x3a
mov dword [esp], esi
call sub.msvcrt.dll_strchr
mov dword [esp], esi
add eax, 1
mov dword [esp + 0x24], eax
call sub.msvcrt.dll_atoi
test eax, eax
jne 0x450f39
mov edx, 1
mov eax, dword [esp + 0x24]
mov dword [esp + 0x38], edx
mov dword [esp], eax
call sub.msvcrt.dll_atoi
mov edx, dword [esp + 0x38]
test eax, eax
jne 0x451373
test edx, edx
jne 0x450acd
mov dword [esp + 8], 0x75
mov dword [esp + 4], 0x73
mov dword [esp], 0x518f18
call fcn.00402550
mov dword [esp], ebx
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcat
mov dword [esp + 8], 0x75
mov dword [esp + 4], 0x73
mov dword [esp], 0x518f18
call fcn.00402550
mov dword [esp], ebp
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcat
jmp 0x450ad6
mov dword [esp], ebx
mov dword [esp + 0x24], edx
call sub.msvcrt.dll_strlen
mov edx, dword [esp + 0x24]
add eax, ebx
test edx, edx
jne 0x450611
mov dword [eax], 0x656e6f4e
mov byte [eax + 4], 0
jmp 0x450611
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x10], str.No_melee_attacks.
mov dword [esp + 0xc], 7
add eax, 7
mov dword [esp + 8], 0xffffffff
mov dword [esp + 4], eax
mov dword [esp], 1
call fcn.00408cb0
mov dword [esp + 0x4c], 1
jmp 0x4507c9
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x38]
add eax, 1
add ecx, esi
mov edi, eax
cmp eax, 4
jae 0x45134d
test eax, eax
je 0x4502d1
movzx eax, byte [ebx]
mov byte [ecx], al
test edi, 2
je 0x4502d1
movzx ebx, word [ebx + edi - 2]
mov word [ecx + edi - 2], bx
jmp 0x4502d1
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
mov dword [esp + 0x10], ebp
mov dword [esp + 0xc], 2
add eax, 7
mov dword [esp + 8], 0xffffffff
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.00408cb0
mov dword [esp], ebp
call sub.msvcrt.dll_strlen
lea esi, [edi + eax]
mov eax, ebp
call fcn.0044d760
mov byte [esp + 0x48], 1
sub esi, eax
mov dword [esp + 0x28], esi
jmp case.0x44f503.1
add dword [esp + 0x40], 1
mov edx, dword [esp + 0x40]
xor eax, eax
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x10], ebp
cmp edx, 2
mov dword [esp + 0xc], 2
cmovne eax, edx
mov dword [esp + 8], 0xffffffff
lea esi, [ecx + 1]
mov dword [esp], 2
mov dword [esp + 0x40], eax
lea eax, [ecx + 8]
mov dword [esp + 4], eax
call fcn.00408cb0
mov dword [esp], ebp
call sub.msvcrt.dll_strlen
lea edi, [eax + 2]
mov eax, ebp
call fcn.0044d760
mov dword [esp + 0x2c], esi
sub edi, eax
mov byte [esp + 0x48], 1
mov dword [esp + 0x28], edi
jmp case.0x44f503.1
add dword [esp + 0x40], 1
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x10], ebp
cmp eax, 2
mov dword [esp + 0xc], 2
cmovne esi, eax
lea eax, [edx + 8]
mov dword [esp], 2
lea edi, [edx + 1]
mov dword [esp + 8], 0xffffffff
mov dword [esp + 4], eax
mov dword [esp + 0x40], esi
call fcn.00408cb0
mov dword [esp], ebp
call sub.msvcrt.dll_strlen
lea esi, [eax + 2]
mov eax, ebp
call fcn.0044d760
mov dword [esp + 0x2c], edi
sub esi, eax
mov byte [esp + 0x48], 1
mov dword [esp + 0x28], esi
jmp case.0x44f503.1
mov esi, dword [ebx]
lea edi, [ecx + 4]
and edi, 0xfffffffc
mov dword [ecx], esi
mov esi, dword [ebx + eax - 4]
mov dword [ecx + eax - 4], esi
sub ecx, edi
mov esi, ebx
add eax, ecx
sub esi, ecx
shr eax, 2
mov ecx, eax
rep movsd dword es:[edi], dword [esi]
jmp 0x4502d1
test edx, edx
je 0x450a57
jmp 0x450a2b
mov dword [esp], edi
lea ebx, [esp + 0x160]
call sub.msvcrt.dll_atoi
mov edx, 0x518bff
mov dword [esp], str.Arm_s
cmp eax, 1
mov eax, 0x518c00
cmove eax, edx
mov dword [esp + 4], eax
call fcn.00402550
mov dword [esp], ebx
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcat
mov dword [esp + 4], 0x3a
mov dword [esp], esi
call sub.msvcrt.dll_strchr
mov dword [esp], esi
lea edi, [eax + 1]
call sub.msvcrt.dll_atoi
test eax, eax
je 0x450c1f
cmp byte [esp + 0x38], 0
je 0x451650
mov byte [esp + 0x38], 0
mov dword [esp], esi
call sub.msvcrt.dll_atoi
mov edx, 0x518bff
mov dword [esp + 8], 0x73
cmp eax, 1
mov eax, 0x518c00
mov dword [esp + 4], 0x75
cmove eax, edx
mov dword [esp], 0x518e3c
mov dword [esp + 0xc], eax
call fcn.00402550
mov dword [esp], ebx
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcat
mov dword [esp + 4], 0x3a
mov dword [esp], edi
call sub.msvcrt.dll_strchr
mov dword [esp], edi
lea esi, [eax + 1]
call sub.msvcrt.dll_atoi
test eax, eax
jne 0x450ca1
mov dword [esp], esi
call sub.msvcrt.dll_atoi
test eax, eax
jne 0x451847
cmp byte [esp + 0x38], 0
je 0x451489
mov edi, 0x73
mov dword [ebx], 0x646e6148
mov dword [ebx + 4], 0x6966202c
mov dword [ebx + 8], 0x7265676e
mov word [ebx + 0xc], di
mov byte [esp + 0x51], 0
jmp 0x450611
mov dword [esp], 0x518db3
call fcn.00402550
mov dword [esp], ebx
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcat
mov dword [esp + 0xc], 0x75
mov dword [esp + 8], edi
mov dword [esp + 4], 0x73
mov dword [esp], 0x518dcb
call fcn.00402550
mov dword [esp], ebp
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcat
jmp 0x451005
cmp byte [esp + 0x24], 0
je 0x451699
test edx, edx
jne 0x4513ee
mov dword [esp], esi
call sub.msvcrt.dll_atoi
mov edx, 0x518bff
mov dword [esp], str.Finger_s
cmp eax, 1
mov eax, 0x518c00
cmove eax, edx
mov dword [esp + 4], eax
call fcn.00402550
mov dword [esp], ebx
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcat
jmp 0x451432
mov eax, dword [esp + 0x2c]
lea ebx, [esp + 0x160]
lea esi, [eax + 1]
lea eax, [esp + 0x65]
mov dword [esp], eax
call sub.msvcrt.dll_atoi
mov dword [esp], ebx
mov dword [esp + 0xc], 0x73
mov edi, eax
mov dword [esp + 8], eax
mov dword [esp + 4], str.Abilities__1_in__d_turns_:
call fcn.0044d730
add dword [esp + 0x30], 1
mov eax, dword [esp + 0x30]
mov dword [esp + 0x10], 0x73
shl eax, 8
add eax, dword [esp + 0x788]
mov dword [esp + 0xc], edi
mov dword [esp + 8], 0x75
mov dword [esp + 4], 0x51906c
mov dword [esp], eax
call fcn.0044d730
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], 7
add eax, 8
mov dword [esp + 8], 0xffffffff
mov dword [esp + 4], eax
mov dword [esp], 1
call fcn.00408cb0
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov dword [esp], ebx
mov dword [esp + 8], edi
sub eax, 1
mov dword [esp + 4], 0x519088
mov dword [esp + 0x28], eax
call fcn.0044d730
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
lea ebx, [ebp + eax + 5]
movzx eax, byte [ebx]
cmp al, 0x20
jne 0x451603
movzx eax, byte [ebx + 1]
add ebx, 1
cmp al, 0x20
je 0x4515f8
mov dword [esp + 0x2c], esi
jmp 0x44f787
mov dword [esp + 4], 0x73
mov dword [esp], 0x518ce7
add dword [esp + 0x30], 1
call fcn.00402550
mov edx, dword [esp + 0x788]
mov dword [esp + 4], eax
lea edx, [edx + esi + 0x100]
mov dword [esp], edx
mov dword [esp + 0x44], edx
call sub.msvcrt.dll_strcpy
mov dword [esp + 0x40], 0
jmp 0x450bbd
mov dword [esp], esi
call sub.msvcrt.dll_atoi
mov edx, 0x518bff
mov dword [esp + 8], 0x73
cmp eax, 1
mov eax, 0x518c00
mov dword [esp + 4], 0x75
cmove eax, edx
mov dword [esp], 0x518e56
mov dword [esp + 0xc], eax
call fcn.00402550
mov dword [esp], ebx
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcat
jmp 0x451432
test edx, edx
jne 0x451650
mov dword [esp], esi
call sub.msvcrt.dll_atoi
mov edx, 0x518bff
mov dword [esp], str.Claw_s
cmp eax, 1
mov eax, 0x518c00
cmove eax, edx
mov dword [esp + 4], eax
call fcn.00402550
mov dword [esp], ebx
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcat
jmp 0x451432
mov dword [esp], 0x518d86
call fcn.00402550
mov dword [esp], ebx
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcat
mov dword [esp + 0xc], 0x75
mov dword [esp + 8], edi
mov dword [esp + 4], 0x73
mov dword [esp], 0x518d86
call fcn.00402550
mov dword [esp], ebp
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcat
jmp 0x451005
mov dword [esp + 8], ebx
jmp 0x4502a8
test dl, dl
je 0x450b59
mov ebx, ebp
jmp 0x450188
mov dword [esp + 8], 0xff
mov dword [esp + 4], 0x73
mov dword [esp], 0x518d46
call fcn.00402550
mov dword [esp], ebx
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcat
mov dword [esp + 0xc], 0x75
mov dword [esp + 8], 0xff
mov dword [esp + 4], 0x73
mov dword [esp], 0x518d46
call fcn.00402550
mov dword [esp], ebp
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcat
jmp 0x44f613
mov dword [esp + 8], eax
mov dword [esp + 4], 0x73
mov dword [esp], 0x518d17
call fcn.00402550
mov dword [esp], ebx
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcat
mov dword [esp + 0xc], 0x75
mov dword [esp + 8], esi
mov dword [esp + 4], 0x73
mov dword [esp], 0x518d2d
call fcn.00402550
mov dword [esp], ebp
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcat
jmp 0x44f613
mov dword [esp + 8], 0x75
mov dword [esp + 4], 0x73
mov dword [esp], 0x518d08
call fcn.00402550
mov dword [esp], ebx
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcat
mov dword [esp + 8], 0x75
mov dword [esp + 4], 0x73
mov dword [esp], 0x518d08
call fcn.00402550
mov dword [esp], ebp
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcat
jmp 0x44f613
mov esi, dword [esp + 0x58]
jmp 0x45026b
mov byte [esp + 0x51], 0
jmp 0x4505cd