Function at 0x40ef70
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x445d44
mov eax, dword fs:[0]
push eax
sub esp, 0x574
mov eax, dword [0x44eea4]
xor eax, esp
mov dword [esp + 0x570], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x44eea4]
xor eax, esp
push eax
lea eax, [esp + 0x588]
mov dword fs:[0], eax
mov esi, dword [esp + 0x5a0]
mov eax, dword [esp + 0x5a4]
mov ebp, ecx
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], eax
lea edi, [ebp + 0x7a4]
mov ebx, 0x18f
mov edi, edi
mov ecx, edi
call fcn.0040bc00
add edi, 0x178
sub ebx, 1
jns 0x40efd0
mov dword [ebp + 0xac], 0xffffffff
mov dword [ebp + 0xa8], 0xffffffff
mov dword [ebp + 0xa4], 0xffffffff
xor eax, eax
mov dword [ebp + 0xa0], eax
mov dword [ebp + 0x9c], eax
mov dword [ebp + 0x98], eax
mov dword [ebp + 0x90], eax
mov dword [ebp + 0x94], eax
mov ecx, dword [str.none]
mov dword [ebp + 0x700], ecx
movzx edx, byte [0x448860]
mov byte [ebp + 0x704], dl
mov ecx, dword [str.none]
mov dword [ebp + 0x25324], ecx
movzx edx, byte [0x448860]
mov ecx, dword [esp + 0x598]
mov dword [ebp + 0x498], eax
mov byte [ebp + 0x25328], dl
mov edx, dword [esp + 0x59c]
mov dword [ebp + 0x6f4], ecx
mov eax, 0xbb8
mov dword [ebp + 0x6f8], edx
mov dword [ebp + 0x62c], eax
mov dword [ebp + 0x630], eax
mov dword [ebp + 0x634], eax
mov dword [ebp + 0x638], eax
mov dword [ebp + 0x63c], eax
mov dword [ebp + 0x640], eax
mov dword [ebp + 0x644], eax
mov dword [ebp + 0x648], eax
mov dword [ebp + 0x64c], eax
mov dword [ebp + 0x650], eax
xor eax, eax
lea edi, [ebp + 0xb0]
mov ecx, 0xc8
rep stosd dword es:[edi], eax
mov eax, esi
lea ecx, [eax + 1]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x40f0c7
sub eax, ecx
mov cl, byte [esi + eax - 3]
cmp cl, 0x64
je 0x40f0e0
cmp cl, 0x44
jne 0x40f0fa
mov cl, byte [esi + eax - 2]
cmp cl, 0x61
je 0x40f0ee
cmp cl, 0x41
jne 0x40f0fa
mov al, byte [esi + eax - 1]
cmp al, 0x74
je 0x40f10b
cmp al, 0x54
je 0x40f10b
push 0x447b28
push esi
call dword [sym.imp.MSVCR80.dll_fopen]
add esp, 8
jmp 0x40f124
push esi
call fcn.00414910
push 0x447b28
push str.data_temporary.txt
call dword [sym.imp.MSVCR80.dll_fopen]
add esp, 0xc
push eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x30], 0xa
call dword [sym.imp.MSVCR80.dll_feof]
add esp, 4
test eax, eax
jne 0x4122fd
mov ebx, dword [sym.imp.MSVCR80.dll_fscanf]
jmp 0x40f150
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x138]
push eax
push 0x4477f4
push ecx
call ebx
lea eax, [esp + 0x144]
add esp, 0xc
xor esi, esi
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x40f173
sub eax, edx
je 0x40f1c5
mov edi, dword [0x44f620]
jmp 0x40f190
movsx edx, byte [esp + esi + 0x138]
imul edx, esi
add edi, edx
lea eax, [esp + 0x138]
add esi, 1
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x40f1b0
sub eax, edx
cmp esi, eax
jb 0x40f190
mov dword [0x44f620], edi
sub dword [esp + 0x2c], 1
jne 0x40f1d9
mov dword [esp + 0x2c], 0xa
call fcn.0043d330
mov edi, str._bmp_begin_
lea esi, [esp + 0x138]
mov ecx, 0xc
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x410051
cmp dword [esp + 0x28], 0
je 0x40f20d
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
push ecx
push edx
call fcn.00424360
add esp, 8
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x138]
push eax
push 0x4477f4
push ecx
call ebx
add esp, 0xc
mov edi, str._bmp_end_
lea esi, [esp + 0x138]
mov ecx, 0xa
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x40fcdf
xor eax, eax
mov cl, byte [esp + eax + 0x138]
mov byte [esp + eax + 0x200], cl
add eax, 1
test cl, cl
jne 0x40f241
mov byte [esp + 0x204], cl
mov edi, str.file
lea esi, [esp + 0x200]
mov ecx, 5
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x40f628
mov eax, dword [ebp + 0x498]
test eax, eax
jle 0x40f601
xor edx, edx
mov dword [ebp + eax*4 + 0x628], edx
mov ecx, dword [ebp + 0x498]
sub ecx, 1
test ecx, ecx
jle 0x40f2cf
lea eax, [ebp + 0x6a4]
mov esi, dword [eax + 0x28]
imul esi, dword [eax]
mov ecx, dword [ebp + 0x498]
add dword [ebp + ecx*4 + 0x628], esi
lea ecx, [ebp + ecx*4 + 0x628]
mov ecx, dword [ebp + 0x498]
add edx, 1
sub ecx, 1
add eax, 4
cmp edx, ecx
jl 0x40f2a2
push 0x1f50
call sub.MSVCR80.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x20], eax
xor esi, esi
cmp eax, esi
mov dword [esp + 0x590], 2
je 0x40f30d
mov edx, dword [ebp + 0x498]
lea edx, [edx + edx*4]
lea ecx, [ebp + edx*8 + 0x474]
push ecx
push 0x40
mov ecx, eax
call fcn.0043ef50
jmp 0x40f30f
xor eax, eax
mov edi, dword [esp + 0x28]
cmp edi, esi
mov edx, dword [ebp + 0x498]
mov dword [esp + 0x590], 0xffffffff
mov dword [ebp + edx*4 + 0x750], eax
je 0x40f33d
mov eax, dword [esp + 0x24]
push edi
push eax
call fcn.00424360
add esp, 8
push 0x1f50
call sub.MSVCR80.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x20], eax
cmp eax, esi
mov dword [esp + 0x590], 3
je 0x40f379
mov edx, dword [ebp + 0x498]
lea ecx, [edx + edx*4]
lea edx, [ebp + ecx*8 + 0x474]
push edx
push 0x40
mov ecx, eax
call fcn.0043ef50
jmp 0x40f37b
xor eax, eax
cmp edi, esi
mov ecx, dword [ebp + 0x498]
mov dword [esp + 0x590], 0xffffffff
mov dword [ebp + ecx*4 + 0x778], eax
je 0x40f3a5
mov edx, dword [esp + 0x24]
push edi
push edx
call fcn.00424360
add esp, 8
push 0x64
lea eax, [esp + 0xd8]
push esi
push eax
call sub.MSVCR80.dll_memset
mov eax, dword [ebp + 0x498]
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], esi
mov dword [esp + 0xe0], 0x64
mov dword [esp + 0xe4], 2
mov ecx, dword [ebp + eax*4 + 0x750]
mov edx, dword [ecx + 4]
mov dword [esp + 0x44], edx
mov ecx, dword [ebp + eax*4 + 0x750]
mov edx, dword [ecx + 8]
mov dword [esp + 0x5c], esi
mov dword [esp + 0x60], esi
mov dword [esp + 0x48], edx
mov ecx, dword [ebp + eax*4 + 0x750]
mov edx, dword [ecx + 4]
mov dword [esp + 0x64], edx
mov ecx, dword [ebp + eax*4 + 0x750]
mov edx, dword [ecx + 8]
add esp, 0xc
mov dword [esp + 0x5c], edx
mov ecx, dword [ebp + eax*4 + 0x778]
mov eax, dword [ebp + eax*4 + 0x750]
mov eax, dword [eax]
mov ecx, dword [ecx]
mov edx, dword [ecx]
lea esi, [esp + 0xd4]
push esi
push 0x1000800
lea esi, [esp + 0x58]
push esi
push eax
lea eax, [esp + 0x40]
push eax
push ecx
mov ecx, dword [edx + 0x14]
call ecx
test edi, edi
je 0x40f460
mov edx, dword [esp + 0x24]
push edi
push edx
call fcn.00424360
add esp, 8
mov eax, dword [ebp + 0x498]
mov ecx, dword [ebp + eax*4 + 0x6c8]
imul ecx, dword [ebp + eax*4 + 0x6a0]
mov edx, dword [ebp + eax*4 + 0x750]
mov dword [edx + 0xc], ecx
mov eax, dword [ebp + 0x498]
mov ecx, dword [ebp + eax*4 + 0x6c8]
imul ecx, dword [ebp + eax*4 + 0x6a0]
mov edx, dword [ebp + eax*4 + 0x778]
mov dword [edx + 0xc], ecx
mov eax, dword [ebp + 0x498]
mov ecx, dword [ebp + eax*4 + 0x750]
xor esi, esi
cmp dword [ecx + 0xc], esi
jle 0x40f601
mov ecx, 0x7e0
jmp 0x40f4c0
mov edi, dword [ebp + 0x498]
mov eax, esi
cdq
idiv dword [ebp + edi*4 + 0x6a0]
mov eax, dword [ebp + edi*4 + 0x650]
add eax, 1
add ecx, 4
imul edx, eax
mov eax, dword [ebp + edi*4 + 0x750]
mov dword [ecx + eax - 0x7d4], edx
mov edi, dword [ebp + 0x498]
mov eax, esi
cdq
idiv dword [ebp + edi*4 + 0x6a0]
mov edx, dword [ebp + edi*4 + 0x678]
add edx, 1
imul eax, edx
mov edx, dword [ebp + edi*4 + 0x750]
mov dword [ecx + edx - 4], eax
mov eax, dword [ebp + 0x498]
mov edx, dword [ebp + eax*4 + 0x750]
mov eax, dword [ebp + eax*4 + 0x650]
mov dword [ecx + edx + 0x7cc], eax
mov eax, dword [ebp + 0x498]
mov edx, dword [ebp + eax*4 + 0x750]
mov eax, dword [ebp + eax*4 + 0x678]
mov dword [ecx + edx + 0xf9c], eax
mov edi, dword [ebp + 0x498]
mov eax, esi
cdq
idiv dword [ebp + edi*4 + 0x6a0]
mov eax, dword [ebp + edi*4 + 0x650]
add eax, 1
imul edx, eax
mov eax, dword [ebp + edi*4 + 0x750]
mov eax, dword [eax + 4]
sub eax, edx
sub eax, dword [ebp + edi*4 + 0x650]
mov edx, dword [ebp + edi*4 + 0x778]
mov dword [ecx + edx - 0x7d4], eax
mov edi, dword [ebp + 0x498]
mov eax, esi
cdq
idiv dword [ebp + edi*4 + 0x6a0]
mov edx, dword [ebp + edi*4 + 0x678]
add edx, 1
add esi, 1
imul eax, edx
mov edx, dword [ebp + edi*4 + 0x778]
mov dword [ecx + edx - 4], eax
mov eax, dword [ebp + 0x498]
mov edx, dword [ebp + eax*4 + 0x778]
mov eax, dword [ebp + eax*4 + 0x650]
mov dword [ecx + edx + 0x7cc], eax
mov eax, dword [ebp + 0x498]
mov edx, dword [ebp + eax*4 + 0x778]
mov eax, dword [ebp + eax*4 + 0x678]
mov dword [ecx + edx + 0xf9c], eax
mov edx, dword [ebp + 0x498]
mov eax, dword [ebp + edx*4 + 0x750]
cmp esi, dword [eax + 0xc]
jl 0x40f4c0
add dword [ebp + 0x498], 1
mov eax, dword [ebp + 0x498]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
lea edx, [ebp + ecx*8 + 0x474]
push edx
push 0x4477f4
push eax
call ebx
add esp, 0xc
mov edi, str.head:
lea esi, [esp + 0x138]
mov ecx, 6
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40f691
mov eax, dword [esp + 0x14]
lea esi, [ebp + 0x700]
push esi
push 0x4477f4
push eax
call ebx
push 0x1f50
call sub.MSVCR80.dll_void____cdecl_operator_new_unsigned_int_
add esp, 0x10
mov dword [esp + 0x20], eax
test eax, eax
mov dword [esp + 0x590], 4
je 0x40f67e
push esi
push 0x40
mov ecx, eax
call fcn.0043ef50
jmp 0x40f680
xor eax, eax
mov dword [esp + 0x590], 0xffffffff
mov dword [ebp + 0x6fc], eax
mov edi, str.small:
lea esi, [esp + 0x138]
mov ecx, 7
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40f6fa
mov eax, dword [esp + 0x14]
lea esi, [ebp + 0x72c]
push esi
push 0x4477f4
push eax
call ebx
push 0x1f50
call sub.MSVCR80.dll_void____cdecl_operator_new_unsigned_int_
add esp, 0x10
mov dword [esp + 0x20], eax
test eax, eax
mov dword [esp + 0x590], 5
je 0x40f6e7
push esi
push 0x40
mov ecx, eax
call fcn.0043ef50
jmp 0x40f6e9
xor eax, eax
mov dword [esp + 0x590], 0xffffffff
mov dword [ebp + 0x728], eax
mov edi, str.walking_frame_rate
lea esi, [esp + 0x138]
mov ecx, 0x13
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40f721
mov eax, dword [esp + 0x14]
push ebp
push 0x447b00
push eax
call ebx
add esp, 0xc
mov edi, str.walking_speed
lea esi, [esp + 0x138]
mov ecx, 0xe
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40f74b
mov ecx, dword [esp + 0x14]
lea eax, [ebp + 8]
push eax
push 0x447b4c
push ecx
call ebx
add esp, 0xc
mov edi, str.walking_speedz
lea esi, [esp + 0x138]
mov ecx, 0xf
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40f775
mov ecx, dword [esp + 0x14]
lea eax, [ebp + 0x10]
push eax
push 0x447b4c
push ecx
call ebx
add esp, 0xc
mov edi, str.running_frame_rate
lea esi, [esp + 0x138]
mov ecx, 0x13
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40f79f
mov ecx, dword [esp + 0x14]
lea eax, [ebp + 0x18]
push eax
push 0x447b00
push ecx
call ebx
add esp, 0xc
mov edi, str.running_speed
lea esi, [esp + 0x138]
mov ecx, 0xe
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40f7c9
mov ecx, dword [esp + 0x14]
lea eax, [ebp + 0x20]
push eax
push 0x447b4c
push ecx
call ebx
add esp, 0xc
mov edi, str.running_speedz
lea esi, [esp + 0x138]
mov ecx, 0xf
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40f7f3
mov ecx, dword [esp + 0x14]
lea eax, [ebp + 0x28]
push eax
push 0x447b4c
push ecx
call ebx
add esp, 0xc
mov edi, str.heavy_walking_speed
lea esi, [esp + 0x138]
mov ecx, 0x14
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40f81d
mov ecx, dword [esp + 0x14]
lea eax, [ebp + 0x30]
push eax
push 0x447b4c
push ecx
call ebx
add esp, 0xc
mov edi, str.heavy_walking_speedz
lea esi, [esp + 0x138]
mov ecx, 0x15
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40f847
mov ecx, dword [esp + 0x14]
lea eax, [ebp + 0x38]
push eax
push 0x447b4c
push ecx
call ebx
add esp, 0xc
mov edi, str.heavy_running_speed
lea esi, [esp + 0x138]
mov ecx, 0x14
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40f871
mov ecx, dword [esp + 0x14]
lea eax, [ebp + 0x40]
push eax
push 0x447b4c
push ecx
call ebx
add esp, 0xc
mov edi, str.heavy_running_speedz
lea esi, [esp + 0x138]
mov ecx, 0x15
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40f89b
mov ecx, dword [esp + 0x14]
lea eax, [ebp + 0x48]
push eax
push 0x447b4c
push ecx
call ebx
add esp, 0xc
mov edi, str.jump_height
lea esi, [esp + 0x138]
mov ecx, 0xc
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40f8c5
mov ecx, dword [esp + 0x14]
lea eax, [ebp + 0x50]
push eax
push 0x447b4c
push ecx
call ebx
add esp, 0xc
mov edi, str.jump_distance
lea esi, [esp + 0x138]
mov ecx, 0xe
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40f8ef
mov ecx, dword [esp + 0x14]
lea eax, [ebp + 0x58]
push eax
push 0x447b4c
push ecx
call ebx
add esp, 0xc
mov edi, str.jump_distancez
lea esi, [esp + 0x138]
mov ecx, 0xf
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40f919
mov ecx, dword [esp + 0x14]
lea eax, [ebp + 0x60]
push eax
push 0x447b4c
push ecx
call ebx
add esp, 0xc
mov edi, str.dash_height
lea esi, [esp + 0x138]
mov ecx, 0xc
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40f943
mov ecx, dword [esp + 0x14]
lea eax, [ebp + 0x68]
push eax
push 0x447b4c
push ecx
call ebx
add esp, 0xc
mov edi, str.dash_distance
lea esi, [esp + 0x138]
mov ecx, 0xe
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40f96d
mov ecx, dword [esp + 0x14]
lea eax, [ebp + 0x70]
push eax
push 0x447b4c
push ecx
call ebx
add esp, 0xc
mov edi, str.dash_distancez
lea esi, [esp + 0x138]
mov ecx, 0xf
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40f997
mov ecx, dword [esp + 0x14]
lea eax, [ebp + 0x78]
push eax
push 0x447b4c
push ecx
call ebx
add esp, 0xc
mov edi, str.rowing_height
lea esi, [esp + 0x138]
mov ecx, 0xe
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40f9c4
mov ecx, dword [esp + 0x14]
lea eax, [ebp + 0x80]
push eax
push 0x447b4c
push ecx
call ebx
add esp, 0xc
mov edi, str.rowing_distance
lea esi, [esp + 0x138]
mov ecx, 0x10
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40f9f1
mov ecx, dword [esp + 0x14]
lea eax, [ebp + 0x88]
push eax
push 0x447b4c
push ecx
call ebx
add esp, 0xc
mov edi, str.name:
lea esi, [esp + 0x138]
mov ecx, 6
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40fa1e
lea eax, [ebp + 0x25324]
push eax
mov eax, dword [esp + 0x18]
push 0x4477f4
push eax
call ebx
add esp, 0xc
mov edi, 0x4486f0
lea esi, [esp + 0x138]
mov ecx, 3
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40fa52
mov eax, dword [ebp + 0x498]
mov edx, dword [esp + 0x14]
lea ecx, [ebp + eax*4 + 0x650]
push ecx
push 0x447b00
push edx
call ebx
add esp, 0xc
mov edi, 0x4486ec
lea esi, [esp + 0x138]
mov ecx, 3
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x40fa86
mov ecx, dword [ebp + 0x498]
mov eax, dword [esp + 0x14]
lea edx, [ebp + ecx*4 + 0x678]
push edx
push 0x447b00
push eax
call ebx
add esp, 0xc
mov edi, str.row:
lea esi, [esp + 0x138]
mov ecx, 5
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40faba
mov eax, dword [ebp + 0x498]
mov edx, dword [esp + 0x14]
lea ecx, [ebp + eax*4 + 0x6a0]
push ecx
push 0x447b00
push edx
call ebx
add esp, 0xc
mov edi, str.col:
lea esi, [esp + 0x138]
mov ecx, 5
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x40faee
mov ecx, dword [ebp + 0x498]
mov eax, dword [esp + 0x14]
lea edx, [ebp + ecx*4 + 0x6c8]
push edx
push 0x447b00
push eax
call ebx
add esp, 0xc
mov edi, str.weapon_hp:
lea esi, [esp + 0x138]
mov ecx, 0xb
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40fb1b
lea eax, [ebp + 0x90]
push eax
mov eax, dword [esp + 0x18]
push 0x447b00
push eax
call ebx
add esp, 0xc
mov edi, str.weapon_drop_hurt:
lea esi, [esp + 0x138]
mov ecx, 0x12
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40fb48
lea eax, [ebp + 0x94]
push eax
mov eax, dword [esp + 0x18]
push 0x447b00
push eax
call ebx
add esp, 0xc
mov edi, str.weapon_hit_sound:
lea esi, [esp + 0x138]
mov ecx, 0x12
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40fbca
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x200]
push eax
push 0x4477f4
push ecx
call ebx
lea eax, [esp + 0x20c]
add esp, 0xc
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x40fb80
sub eax, edx
add eax, 1
push eax
call dword [sym.imp.MSVCR80.dll_malloc]
add esp, 4
mov dword [ebp + 0x98], eax
lea ecx, [esp + 0x200]
mov edx, eax
mov al, byte [ecx]
mov byte [edx], al
add ecx, 1
add edx, 1
test al, al
jne 0x40fba7
mov edx, dword [ebp + 0x98]
lea eax, [ebp + 0xa4]
push eax
push edx
mov ecx, ebp
call fcn.0040bda0
mov edi, str.weapon_drop_sound:
lea esi, [esp + 0x138]
mov ecx, 0x13
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x40fc53
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x200]
push ecx
push 0x4477f4
push edx
call ebx
lea eax, [esp + 0x20c]
add esp, 0xc
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x40fc02
sub eax, edx
add eax, 1
push eax
call dword [sym.imp.MSVCR80.dll_malloc]
add esp, 4
mov dword [ebp + 0x9c], eax
lea ecx, [esp + 0x200]
mov edx, eax
lea esp, [esp]
mov al, byte [ecx]
mov byte [edx], al
add ecx, 1
add edx, 1
test al, al
jne 0x40fc30
lea eax, [ebp + 0xa8]
push eax
mov eax, dword [ebp + 0x9c]
push eax
mov ecx, ebp
call fcn.0040bda0
mov edi, str.weapon_broken_sound:
lea esi, [esp + 0x138]
mov ecx, 0x15
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40f1f4
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x200]
push eax
push 0x4477f4
push ecx
call ebx
lea eax, [esp + 0x20c]
add esp, 0xc
lea edx, [eax + 1]
nop
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x40fc90
sub eax, edx
add eax, 1
push eax
call dword [sym.imp.MSVCR80.dll_malloc]
add esp, 4
mov dword [ebp + 0xa0], eax
lea ecx, [esp + 0x200]
mov edx, eax
mov al, byte [ecx]
mov byte [edx], al
add ecx, 1
add edx, 1
test al, al
jne 0x40fcb7
mov edx, dword [ebp + 0xa0]
lea eax, [ebp + 0xac]
push eax
push edx
mov ecx, ebp
call fcn.0040bda0
jmp 0x40f1f4
mov eax, dword [ebp + 0x498]
xor esi, esi
mov dword [ebp + eax*4 + 0x628], esi
mov ecx, dword [ebp + 0x498]
sub ecx, 1
xor edx, edx
test ecx, ecx
jle 0x40fd30
lea eax, [ebp + 0x6a4]
mov edi, dword [eax + 0x28]
imul edi, dword [eax]
mov ecx, dword [ebp + 0x498]
add dword [ebp + ecx*4 + 0x628], edi
lea ecx, [ebp + ecx*4 + 0x628]
mov ecx, dword [ebp + 0x498]
add edx, 1
sub ecx, 1
add eax, 4
cmp edx, ecx
jl 0x40fd03
push 0x1f50
call sub.MSVCR80.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x20], eax
cmp eax, esi
mov dword [esp + 0x590], esi
je 0x40fd68
mov edx, dword [ebp + 0x498]
lea edx, [edx + edx*4]
lea ecx, [ebp + edx*8 + 0x474]
push ecx
push 0x40
mov ecx, eax
call fcn.0043ef50
jmp 0x40fd6a
xor eax, eax
mov edi, dword [esp + 0x28]
cmp edi, esi
mov edx, dword [ebp + 0x498]
mov dword [esp + 0x590], 0xffffffff
mov dword [ebp + edx*4 + 0x750], eax
je 0x40fd98
mov eax, dword [esp + 0x24]
push edi
push eax
call fcn.00424360
add esp, 8
push 0x1f50
call sub.MSVCR80.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x20], eax
cmp eax, esi
mov dword [esp + 0x590], 1
je 0x40fdd4
mov edx, dword [ebp + 0x498]
lea ecx, [edx + edx*4]
lea edx, [ebp + ecx*8 + 0x474]
push edx
push 0x40
mov ecx, eax
call fcn.0043ef50
jmp 0x40fdd6
xor eax, eax
cmp edi, esi
mov ecx, dword [ebp + 0x498]
mov dword [esp + 0x590], 0xffffffff
mov dword [ebp + ecx*4 + 0x778], eax
je 0x40fe00
mov edx, dword [esp + 0x24]
push edi
push edx
call fcn.00424360
add esp, 8
push 0x64
lea eax, [esp + 0x74]
push esi
push eax
call sub.MSVCR80.dll_memset
mov eax, dword [ebp + 0x498]
mov dword [esp + 0x6c], esi
mov dword [esp + 0x70], esi
mov dword [esp + 0x7c], 0x64
mov dword [esp + 0x80], 2
mov ecx, dword [ebp + eax*4 + 0x750]
mov edx, dword [ecx + 4]
mov dword [esp + 0x74], edx
mov ecx, dword [ebp + eax*4 + 0x750]
mov edx, dword [ecx + 8]
mov dword [esp + 0x4c], esi
mov dword [esp + 0x50], esi
mov dword [esp + 0x78], edx
mov ecx, dword [ebp + eax*4 + 0x750]
mov edx, dword [ecx + 4]
mov dword [esp + 0x54], edx
mov ecx, dword [ebp + eax*4 + 0x750]
mov edx, dword [ecx + 8]
add esp, 0xc
mov dword [esp + 0x4c], edx
mov ecx, dword [ebp + eax*4 + 0x778]
mov eax, dword [ebp + eax*4 + 0x750]
mov eax, dword [eax]
mov ecx, dword [ecx]
mov edx, dword [ecx]
lea esi, [esp + 0x70]
push esi
push 0x1000800
lea esi, [esp + 0x48]
push esi
push eax
lea eax, [esp + 0x70]
push eax
push ecx
mov ecx, dword [edx + 0x14]
call ecx
test edi, edi
je 0x40feb2
mov edx, dword [esp + 0x24]
push edi
push edx
call fcn.00424360
add esp, 8
mov eax, dword [ebp + 0x498]
mov ecx, dword [ebp + eax*4 + 0x6c8]
imul ecx, dword [ebp + eax*4 + 0x6a0]
mov edx, dword [ebp + eax*4 + 0x750]
mov dword [edx + 0xc], ecx
mov eax, dword [ebp + 0x498]
mov ecx, dword [ebp + eax*4 + 0x6c8]
imul ecx, dword [ebp + eax*4 + 0x6a0]
mov edx, dword [ebp + eax*4 + 0x778]
mov dword [edx + 0xc], ecx
mov eax, dword [ebp + 0x498]
mov ecx, dword [ebp + eax*4 + 0x750]
xor esi, esi
cmp dword [ecx + 0xc], esi
jle 0x410051
mov ecx, 0x7e0
lea ecx, [ecx]
mov edi, dword [ebp + 0x498]
mov eax, esi
cdq
idiv dword [ebp + edi*4 + 0x6a0]
mov eax, dword [ebp + edi*4 + 0x650]
add eax, 1
add ecx, 4
imul edx, eax
mov eax, dword [ebp + edi*4 + 0x750]
mov dword [ecx + eax - 0x7d4], edx
mov edi, dword [ebp + 0x498]
mov eax, esi
cdq
idiv dword [ebp + edi*4 + 0x6a0]
mov edx, dword [ebp + edi*4 + 0x678]
add edx, 1
imul eax, edx
mov edx, dword [ebp + edi*4 + 0x750]
mov dword [ecx + edx - 4], eax
mov eax, dword [ebp + 0x498]
mov edx, dword [ebp + eax*4 + 0x750]
mov eax, dword [ebp + eax*4 + 0x650]
mov dword [ecx + edx + 0x7cc], eax
mov eax, dword [ebp + 0x498]
mov edx, dword [ebp + eax*4 + 0x750]
mov eax, dword [ebp + eax*4 + 0x678]
mov dword [ecx + edx + 0xf9c], eax
mov edi, dword [ebp + 0x498]
mov eax, esi
cdq
idiv dword [ebp + edi*4 + 0x6a0]
mov eax, dword [ebp + edi*4 + 0x650]
add eax, 1
imul edx, eax
mov eax, dword [ebp + edi*4 + 0x750]
mov eax, dword [eax + 4]
sub eax, edx
sub eax, dword [ebp + edi*4 + 0x650]
mov edx, dword [ebp + edi*4 + 0x778]
mov dword [ecx + edx - 0x7d4], eax
mov edi, dword [ebp + 0x498]
mov eax, esi
cdq
idiv dword [ebp + edi*4 + 0x6a0]
mov edx, dword [ebp + edi*4 + 0x678]
add edx, 1
add esi, 1
imul eax, edx
mov edx, dword [ebp + edi*4 + 0x778]
mov dword [ecx + edx - 4], eax
mov eax, dword [ebp + 0x498]
mov edx, dword [ebp + eax*4 + 0x778]
mov eax, dword [ebp + eax*4 + 0x650]
mov dword [ecx + edx + 0x7cc], eax
mov eax, dword [ebp + 0x498]
mov edx, dword [ebp + eax*4 + 0x778]
mov eax, dword [ebp + eax*4 + 0x678]
mov dword [ecx + edx + 0xf9c], eax
mov edx, dword [ebp + 0x498]
mov eax, dword [ebp + edx*4 + 0x750]
cmp esi, dword [eax + 0xc]
jl 0x40ff10
mov edi, str._weapon_strength_list_
lea esi, [esp + 0x138]
mov ecx, 0x17
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x410311
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x138]
push eax
push 0x4477f4
push ecx
mov dword [esp + 0x28], edx
call ebx
add esp, 0xc
mov edi, str._weapon_strength_list_end_
lea esi, [esp + 0x138]
mov ecx, 0x1b
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x410311
mov edi, str.entry:
lea esi, [esp + 0x138]
mov ecx, 7
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x4100e5
mov eax, dword [esp + 0x1c]
mov ecx, eax
shl ecx, 4
sub ecx, eax
lea edx, [ebp + ecx*2 + 0x3d0]
mov ecx, dword [esp + 0x14]
push edx
lea eax, [esp + 0x20]
push eax
push str._d__s
push ecx
call ebx
add esp, 0x10
jmp 0x4102df
mov edi, str.dvx:
lea esi, [esp + 0x138]
mov ecx, 5
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x410112
mov eax, dword [esp + 0x1c]
lea eax, [eax + eax*4]
shl eax, 4
lea ecx, [eax + ebp + 0xc4]
jmp 0x4102cf
mov edi, str.dvy:
lea esi, [esp + 0x138]
mov ecx, 5
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x41014a
mov eax, dword [esp + 0x1c]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
shl ecx, 4
lea edx, [ecx + ebp + 0xc8]
push edx
push 0x447b00
push eax
jmp 0x4102da
mov edi, str.fall:
lea esi, [esp + 0x138]
mov ecx, 6
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x410177
mov eax, dword [esp + 0x1c]
lea eax, [eax + eax*4]
shl eax, 4
lea ecx, [eax + ebp + 0xcc]
jmp 0x4102cf
mov edi, str.arest:
lea esi, [esp + 0x138]
mov ecx, 7
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x4101af
mov eax, dword [esp + 0x1c]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
shl ecx, 4
lea edx, [ecx + ebp + 0xd0]
push edx
push 0x447b00
push eax
jmp 0x4102da
mov edi, str.vrest:
lea esi, [esp + 0x138]
mov ecx, 7
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x4101dc
mov eax, dword [esp + 0x1c]
lea eax, [eax + eax*4]
shl eax, 4
lea ecx, [eax + ebp + 0xd4]
jmp 0x4102cf
mov edi, str.respond:
lea esi, [esp + 0x138]
mov ecx, 9
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x410214
mov eax, dword [esp + 0x1c]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
shl ecx, 4
lea edx, [ecx + ebp + 0xd8]
push edx
push 0x447b00
push eax
jmp 0x4102da
mov edi, str.bdefend:
lea esi, [esp + 0x138]
mov ecx, 9
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x410248
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
lea eax, [eax + eax*4 + 0xf]
shl eax, 4
add eax, ebp
push eax
push 0x447b00
push ecx
jmp 0x4102da
mov edi, str.injury:
lea esi, [esp + 0x138]
mov ecx, 8
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x410272
mov eax, dword [esp + 0x1c]
lea eax, [eax + eax*4]
shl eax, 4
lea ecx, [eax + ebp + 0xf4]
jmp 0x4102cf
mov edi, str.zwidth:
lea esi, [esp + 0x138]
mov ecx, 8
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x4102a7
mov eax, dword [esp + 0x1c]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
shl ecx, 4
lea edx, [ecx + ebp + 0xf8]
push edx
push 0x447b00
push eax
jmp 0x4102da
mov edi, str.effect:
lea esi, [esp + 0x138]
mov ecx, 8
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x4102df
mov eax, dword [esp + 0x1c]
lea eax, [eax + eax*4]
shl eax, 4
lea ecx, [eax + ebp + 0xdc]
mov edx, dword [esp + 0x14]
push ecx
push 0x447b00
push edx
call ebx
add esp, 0xc
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x138]
push eax
push 0x4477f4
push ecx
call ebx
add esp, 0xc
mov edi, str._weapon_strength_list_end_
lea esi, [esp + 0x138]
mov ecx, 0x1b
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x4100a2
mov edi, str._frame_
lea esi, [esp + 0x138]
mov ecx, 8
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x4122e7
mov esi, dword [esp + 0x14]
lea ecx, [esp + 0x18]
push ecx
push 0x447b00
push esi
call ebx
mov edx, dword [esp + 0x24]
imul edx, edx, 0x178
lea eax, [edx + ebp + 0x900]
push eax
push 0x4477f4
push esi
call ebx
mov ecx, dword [esp + 0x30]
add ecx, 6
imul ecx, ecx, 0x178
mov dword [ecx + ebp], 0
mov edx, dword [esp + 0x30]
imul edx, edx, 0x178
mov dword [edx + ebp + 0x8cc], 0
mov eax, dword [esp + 0x30]
imul eax, eax, 0x178
mov byte [eax + ebp + 0x7a4], 1
mov ecx, dword [esp + 0x30]
push ecx
lea edx, [esp + 0x474]
push 0x447b00
push edx
call dword [sym.imp.MSVCR80.dll_sprintf]
lea eax, [esp + 0x15c]
push eax
push 0x4477f4
push esi
call ebx
add esp, 0x30
mov edi, str._frame_end_
lea esi, [esp + 0x138]
mov ecx, 0xc
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x411f5b
jmp 0x4103e0
mov edi, str.pic:
lea esi, [esp + 0x138]
mov ecx, 5
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x410418
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
imul ecx, ecx, 0x178
lea edx, [ecx + ebp + 0x7a8]
push edx
push 0x447b00
push eax
call ebx
add esp, 0xc
mov edi, str.state:
lea esi, [esp + 0x138]
mov ecx, 7
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x410450
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
imul eax, eax, 0x178
lea ecx, [eax + ebp + 0x7ac]
push ecx
push 0x447b00
push edx
call ebx
add esp, 0xc
mov edi, str.wait:
lea esi, [esp + 0x138]
mov ecx, 6
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x410488
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
imul ecx, ecx, 0x178
lea edx, [ecx + ebp + 0x7b0]
push edx
push 0x447b00
push eax
call ebx
add esp, 0xc
mov edi, str.next:
lea esi, [esp + 0x138]
mov ecx, 6
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x4104c0
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
imul eax, eax, 0x178
lea ecx, [eax + ebp + 0x7b4]
push ecx
push 0x447b00
push edx
call ebx
add esp, 0xc
mov edi, str.dvx:
lea esi, [esp + 0x138]
mov ecx, 5
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x4104f8
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
imul ecx, ecx, 0x178
lea edx, [ecx + ebp + 0x7b8]
push edx
push 0x447b00
push eax
call ebx
add esp, 0xc
mov edi, str.dvy:
lea esi, [esp + 0x138]
mov ecx, 5
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x410530
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
imul eax, eax, 0x178
lea ecx, [eax + ebp + 0x7bc]
push ecx
push 0x447b00
push edx
call ebx
add esp, 0xc
mov edi, str.dvz:
lea esi, [esp + 0x138]
mov ecx, 5
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x410568
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
imul ecx, ecx, 0x178
lea edx, [ecx + ebp + 0x7c0]
push edx
push 0x447b00
push eax
call ebx
add esp, 0xc
mov edi, str.centerx:
lea esi, [esp + 0x138]
mov ecx, 9
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x4105a0
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
imul eax, eax, 0x178
lea ecx, [eax + ebp + 0x7f4]
push ecx
push 0x447b00
push edx
call ebx
add esp, 0xc
mov edi, str.centery:
lea esi, [esp + 0x138]
mov ecx, 9
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x4105d8
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
imul ecx, ecx, 0x178
lea edx, [ecx + ebp + 0x7f8]
push edx
push 0x447b00
push eax
call ebx
add esp, 0xc
mov edi, str.hit_a:
lea esi, [esp + 0x138]
mov ecx, 7
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x410610
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
imul eax, eax, 0x178
lea ecx, [eax + ebp + 0x7c8]
push ecx
push 0x447b00
push edx
call ebx
add esp, 0xc
mov edi, str.hit_d:
lea esi, [esp + 0x138]
mov ecx, 7
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x410648
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
imul ecx, ecx, 0x178
lea edx, [ecx + ebp + 0x7cc]
push edx
push 0x447b00
push eax
call ebx
add esp, 0xc
mov edi, str.hit_j:
lea esi, [esp + 0x138]
mov ecx, 7
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x410680
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
imul eax, eax, 0x178
lea ecx, [eax + ebp + 0x7d0]
push ecx
push 0x447b00
push edx
call ebx
add esp, 0xc
mov edi, str.hit_Fa:
lea esi, [esp + 0x138]
mov ecx, 8
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x4106b8
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
imul ecx, ecx, 0x178
lea edx, [ecx + ebp + 0x7d4]
push edx
push 0x447b00
push eax
call ebx
add esp, 0xc
mov edi, str.hit_Ua:
lea esi, [esp + 0x138]
mov ecx, 8
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x4106f0
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
imul eax, eax, 0x178
lea ecx, [eax + ebp + 0x7d8]
push ecx
push 0x447b00
push edx
call ebx
add esp, 0xc
mov edi, str.hit_Da:
lea esi, [esp + 0x138]
mov ecx, 8
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x410728
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
imul ecx, ecx, 0x178
lea edx, [ecx + ebp + 0x7dc]
push edx
push 0x447b00
push eax
call ebx
add esp, 0xc
mov edi, str.hit_Fj:
lea esi, [esp + 0x138]
mov ecx, 8
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x410760
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
imul eax, eax, 0x178
lea ecx, [eax + ebp + 0x7e0]
push ecx
push 0x447b00
push edx
call ebx
add esp, 0xc
mov edi, str.hit_Uj:
lea esi, [esp + 0x138]
mov ecx, 8
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x410798
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
imul ecx, ecx, 0x178
lea edx, [ecx + ebp + 0x7e4]
push edx
push 0x447b00
push eax
call ebx
add esp, 0xc
mov edi, str.hit_Dj:
lea esi, [esp + 0x138]
mov ecx, 8
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x4107d0
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
imul eax, eax, 0x178
lea ecx, [eax + ebp + 0x7e8]
push ecx
push 0x447b00
push edx
call ebx
add esp, 0xc
mov edi, str.hit_ja:
lea esi, [esp + 0x138]
mov ecx, 8
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x410808
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
imul ecx, ecx, 0x178
lea edx, [ecx + ebp + 0x7ec]
push edx
push 0x447b00
push eax
call ebx
add esp, 0xc
mov edi, 0x448538
lea esi, [esp + 0x138]
mov ecx, 4
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x410840
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
imul eax, eax, 0x178
lea ecx, [eax + ebp + 0x7f0]
push ecx
push 0x447b00
push edx
call ebx
add esp, 0xc
mov edi, str.sound:
lea esi, [esp + 0x138]
mov ecx, 7
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x4109ff
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x32c]
push ecx
push 0x4477f4
push edx
call ebx
lea eax, [esp + 0x338]
add esp, 0xc
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x410880
sub eax, edx
add eax, 1
push eax
call dword [sym.imp.MSVCR80.dll_malloc]
mov ecx, dword [esp + 0x1c]
imul ecx, ecx, 0x178
mov dword [ecx + ebp + 0x914], eax
mov edx, dword [esp + 0x1c]
add esp, 4
imul edx, edx, 0x178
mov edx, dword [edx + ebp + 0x914]
lea ecx, [esp + 0x32c]
mov al, byte [ecx]
mov byte [edx], al
add ecx, 1
add edx, 1
test al, al
jne 0x4108c1
mov eax, dword [esp + 0x18]
imul eax, eax, 0x178
xor edi, edi
mov dword [eax + ebp + 0x918], 0xffffffff
cmp dword [0x458438], edi
jle 0x410959
mov ecx, dword [esp + 0x18]
imul ecx, ecx, 0x178
mov edx, dword [ecx + ebp + 0x914]
lea eax, [ecx + ebp]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], eax
mov edx, 0x455638
nop
mov eax, dword [esp + 0x1c]
mov esi, edx
mov cl, byte [eax]
cmp cl, byte [esi]
jne 0x410936
test cl, cl
je 0x410932
mov cl, byte [eax + 1]
cmp cl, byte [esi + 1]
jne 0x410936
add eax, 2
add esi, 2
test cl, cl
jne 0x410916
xor eax, eax
jmp 0x41093b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x41094f
add edi, 1
add edx, 0x14
cmp edi, dword [0x458438]
jl 0x410910
jmp 0x410959
mov eax, dword [esp + 0x20]
mov dword [eax + 0x918], edi
mov ecx, dword [esp + 0x18]
imul ecx, ecx, 0x178
cmp dword [ecx + ebp + 0x918], 0xffffffff
lea eax, [ecx + ebp + 0x918]
jne 0x4109ff
mov edx, dword [0x458438]
mov dword [eax], edx
cmp dword [0x44eecc], 0
je 0x4109c7
mov eax, dword [esp + 0x18]
imul eax, eax, 0x178
mov ecx, dword [eax + ebp + 0x914]
push ecx
mov ecx, dword [0x458438]
lea ecx, [ecx*4 + 0x452948]
call fcn.004014e0
mov edx, dword [0x458438]
mov eax, dword [edx*4 + 0x452948]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x3c]
push 0xffffd8f0
push eax
call edx
mov eax, dword [esp + 0x18]
mov esi, dword [0x458438]
imul eax, eax, 0x178
mov ecx, dword [eax + ebp + 0x914]
lea edx, [esi + esi*4]
lea edx, [edx*4 + 0x455638]
mov al, byte [ecx]
mov byte [edx], al
add ecx, 1
add edx, 1
test al, al
jne 0x4109e8
add esi, 1
mov dword [0x458438], esi
mov edi, str.opoint:
lea esi, [esp + 0x138]
mov ecx, 8
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x410c42
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x138]
push eax
push 0x4477f4
push ecx
call ebx
add esp, 0xc
mov edi, str.opoint_end:
lea esi, [esp + 0x138]
mov ecx, 0xc
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x410c42
lea esp, [esp]
mov edi, str.kind:
lea esi, [esp + 0x138]
mov ecx, 6
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x410a88
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
imul ecx, ecx, 0x178
lea edx, [ecx + ebp + 0x7fc]
push edx
push 0x447b00
push eax
call ebx
add esp, 0xc
mov edi, 0x447aa0
lea esi, [esp + 0x138]
mov ecx, 3
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x410ac0
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
imul eax, eax, 0x178
lea ecx, [eax + ebp + 0x800]
push ecx
push 0x447b00
push edx
call ebx
add esp, 0xc
mov edi, 0x447a9c
lea esi, [esp + 0x138]
mov ecx, 3
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x410af8
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
imul ecx, ecx, 0x178
lea edx, [ecx + ebp + 0x804]
push edx
push 0x447b00
push eax
call ebx
add esp, 0xc
mov edi, str.action:
lea esi, [esp + 0x138]
mov ecx, 8
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x410b30
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
imul eax, eax, 0x178
lea ecx, [eax + ebp + 0x808]
push ecx
push 0x447b00
push edx
call ebx
add esp, 0xc
mov edi, str.dvx:
lea esi, [esp + 0x138]
mov ecx, 5
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x410b68
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
imul ecx, ecx, 0x178
lea edx, [ecx + ebp + 0x80c]
push edx
push 0x447b00
push eax
call ebx
add esp, 0xc
mov edi, str.dvy:
lea esi, [esp + 0x138]
mov ecx, 5
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x410ba0
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
imul eax, eax, 0x178
lea ecx, [eax + ebp + 0x810]
push ecx
push 0x447b00
push edx
call ebx
add esp, 0xc
mov edi, str.oid:
lea esi, [esp + 0x138]
mov ecx, 5
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x410bd8
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
imul ecx, ecx, 0x178
lea edx, [ecx + ebp + 0x814]
push edx
push 0x447b00
push eax
call ebx
add esp, 0xc
mov edi, str.facing:
lea esi, [esp + 0x138]
mov ecx, 8
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x410c10
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
imul eax, eax, 0x178
lea ecx, [eax + ebp + 0x818]
push ecx
push 0x447b00
push edx
call ebx
add esp, 0xc
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x138]
push eax
push 0x4477f4
push ecx
call ebx
add esp, 0xc
mov edi, str.opoint_end:
lea esi, [esp + 0x138]
mov ecx, 0xc
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x410a50
mov edi, str.bpoint:
lea esi, [esp + 0x138]
mov ecx, 8
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x410d32
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x138]
push ecx
push 0x4477f4
push edx
call ebx
add esp, 0xc
mov edi, str.bpoint_end:
lea esi, [esp + 0x138]
mov ecx, 0xc
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x410d32
nop
mov edi, 0x447aa0
lea esi, [esp + 0x138]
mov ecx, 3
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x410cc8
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
imul eax, eax, 0x178
lea ecx, [eax + ebp + 0x824]
push ecx
push 0x447b00
push edx
call ebx
add esp, 0xc
mov edi, 0x447a9c
lea esi, [esp + 0x138]
mov ecx, 3
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x410d00
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
imul ecx, ecx, 0x178
lea edx, [ecx + ebp + 0x828]
push edx
push 0x447b00
push eax
call ebx
add esp, 0xc
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x138]
push ecx
push 0x4477f4
push edx
call ebx
add esp, 0xc
mov edi, str.bpoint_end:
lea esi, [esp + 0x138]
mov ecx, 0xc
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x410c90
mov edi, str.cpoint:
lea esi, [esp + 0x138]
mov ecx, 8
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x4111da
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x138]
push eax
push 0x4477f4
push ecx
call ebx
add esp, 0xc
mov edi, str.cpoint_end:
lea esi, [esp + 0x138]
mov ecx, 0xc
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x4111da
nop
mov edi, str.kind:
lea esi, [esp + 0x138]
mov ecx, 6
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x410db8
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
imul ecx, ecx, 0x178
lea edx, [ecx + ebp + 0x82c]
push edx
push 0x447b00
push eax
call ebx
add esp, 0xc
mov edi, 0x447aa0
lea esi, [esp + 0x138]
mov ecx, 3
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x410df0
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
imul eax, eax, 0x178
lea ecx, [eax + ebp + 0x830]
push ecx
push 0x447b00
push edx
call ebx
add esp, 0xc
mov edi, 0x447a9c
lea esi, [esp + 0x138]
mov ecx, 3
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x410e28
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
imul ecx, ecx, 0x178
lea edx, [ecx + ebp + 0x834]
push edx
push 0x447b00
push eax
call ebx
add esp, 0xc
mov edi, str.injury:
lea esi, [esp + 0x138]
mov ecx, 8
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x410e60
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
imul eax, eax, 0x178
lea ecx, [eax + ebp + 0x838]
push ecx
push 0x447b00
push edx
call ebx
add esp, 0xc
mov edi, str.cover:
lea esi, [esp + 0x138]
mov ecx, 7
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x410e98
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
imul ecx, ecx, 0x178
lea edx, [ecx + ebp + 0x83c]
push edx
push 0x447b00
push eax
call ebx
add esp, 0xc
mov edi, str.vaction:
lea esi, [esp + 0x138]
mov ecx, 9
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x410ed0
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
imul eax, eax, 0x178
lea ecx, [eax + ebp + 0x840]
push ecx
push 0x447b00
push edx
call ebx
add esp, 0xc
mov edi, str.aaction:
lea esi, [esp + 0x138]
mov ecx, 9
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x410f08
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
imul ecx, ecx, 0x178
lea edx, [ecx + ebp + 0x844]
push edx
push 0x447b00
push eax
call ebx
add esp, 0xc
mov edi, str.jaction:
lea esi, [esp + 0x138]
mov ecx, 9
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x410f40
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
imul eax, eax, 0x178
lea ecx, [eax + ebp + 0x848]
push ecx
push 0x447b00
push edx
call ebx
add esp, 0xc
mov edi, str.taction:
lea esi, [esp + 0x138]
mov ecx, 9
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x410f78
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
imul ecx, ecx, 0x178
lea edx, [ecx + ebp + 0x864]
push edx
push 0x447b00
push eax
call ebx
add esp, 0xc
mov edi, str.daction:
lea esi, [esp + 0x138]
mov ecx, 9
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x410fb0
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
imul eax, eax, 0x178
lea ecx, [eax + ebp + 0x84c]
push ecx
push 0x447b00
push edx
call ebx
add esp, 0xc
mov edi, str.throwvx:
lea esi, [esp + 0x138]
mov ecx, 9
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x410fe8
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
imul ecx, ecx, 0x178
lea edx, [ecx + ebp + 0x850]
push edx
push 0x447b00
push eax
call ebx
add esp, 0xc
mov edi, str.throwvy:
lea esi, [esp + 0x138]
mov ecx, 9
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x411020
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
imul eax, eax, 0x178
lea ecx, [eax + ebp + 0x854]
push ecx
push 0x447b00
push edx
call ebx
add esp, 0xc
mov edi, str.throwvz:
lea esi, [esp + 0x138]
mov ecx, 9
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x411058
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
imul ecx, ecx, 0x178
lea edx, [ecx + ebp + 0x86c]
push edx
push 0x447b00
push eax
call ebx
add esp, 0xc
mov edi, str.hurtable:
lea esi, [esp + 0x138]
mov ecx, 0xa
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x411090
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
imul eax, eax, 0x178
lea ecx, [eax + ebp + 0x858]
push ecx
push 0x447b00
push edx
call ebx
add esp, 0xc
mov edi, str.throwinjury:
lea esi, [esp + 0x138]
mov ecx, 0xd
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x4110c8
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
imul ecx, ecx, 0x178
lea edx, [ecx + ebp + 0x868]
push edx
push 0x447b00
push eax
call ebx
add esp, 0xc
mov edi, str.fronthurtact:
lea esi, [esp + 0x138]
mov ecx, 0xe
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x411100
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
imul eax, eax, 0x178
lea ecx, [eax + ebp + 0x838]
push ecx
push 0x447b00
push edx
call ebx
add esp, 0xc
mov edi, str.backhurtact:
lea esi, [esp + 0x138]
mov ecx, 0xd
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x411138
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
imul ecx, ecx, 0x178
lea edx, [ecx + ebp + 0x83c]
push edx
push 0x447b00
push eax
call ebx
add esp, 0xc
mov edi, str.decrease:
lea esi, [esp + 0x138]
mov ecx, 0xa
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x411170
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
imul eax, eax, 0x178
lea ecx, [eax + ebp + 0x85c]
push ecx
push 0x447b00
push edx
call ebx
add esp, 0xc
mov edi, str.dircontrol:
lea esi, [esp + 0x138]
mov ecx, 0xc
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x4111a8
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
imul ecx, ecx, 0x178
lea edx, [ecx + ebp + 0x860]
push edx
push 0x447b00
push eax
call ebx
add esp, 0xc
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x138]
push ecx
push 0x4477f4
push edx
call ebx
add esp, 0xc
mov edi, str.cpoint_end:
lea esi, [esp + 0x138]
mov ecx, 0xc
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x410d80
mov edi, str.wpoint:
lea esi, [esp + 0x138]
mov ecx, 8
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x41145a
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x138]
push eax
push 0x4477f4
push ecx
call ebx
add esp, 0xc
mov edi, str.wpoint_end:
lea esi, [esp + 0x138]
mov ecx, 0xc
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x41145a
jmp 0x411230
mov edi, str.kind:
lea esi, [esp + 0x138]
mov ecx, 6
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x411268
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
imul ecx, ecx, 0x178
lea edx, [ecx + ebp + 0x87c]
push edx
push 0x447b00
push eax
call ebx
add esp, 0xc
mov edi, 0x447aa0
lea esi, [esp + 0x138]
mov ecx, 3
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x4112a0
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
imul eax, eax, 0x178
lea ecx, [eax + ebp + 0x880]
push ecx
push 0x447b00
push edx
call ebx
add esp, 0xc
mov edi, 0x447a9c
lea esi, [esp + 0x138]
mov ecx, 3
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x4112d8
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
imul ecx, ecx, 0x178
lea edx, [ecx + ebp + 0x884]
push edx
push 0x447b00
push eax
call ebx
add esp, 0xc
mov edi, str.weaponact:
lea esi, [esp + 0x138]
mov ecx, 0xb
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x411310
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
imul eax, eax, 0x178
lea ecx, [eax + ebp + 0x888]
push ecx
push 0x447b00
push edx
call ebx
add esp, 0xc
mov edi, str.attacking:
lea esi, [esp + 0x138]
mov ecx, 0xb
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x411348
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
imul ecx, ecx, 0x178
lea edx, [ecx + ebp + 0x88c]
push edx
push 0x447b00
push eax
call ebx
add esp, 0xc
mov edi, str.cover:
lea esi, [esp + 0x138]
mov ecx, 7
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x411380
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
imul eax, eax, 0x178
lea ecx, [eax + ebp + 0x890]
push ecx
push 0x447b00
push edx
call ebx
add esp, 0xc
mov edi, str.dvx:
lea esi, [esp + 0x138]
mov ecx, 5
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x4113b8
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
imul ecx, ecx, 0x178
lea edx, [ecx + ebp + 0x894]
push edx
push 0x447b00
push eax
call ebx
add esp, 0xc
mov edi, str.dvy:
lea esi, [esp + 0x138]
mov ecx, 5
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x4113f0
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
imul eax, eax, 0x178
lea ecx, [eax + ebp + 0x898]
push ecx
push 0x447b00
push edx
call ebx
add esp, 0xc
mov edi, str.dvz:
lea esi, [esp + 0x138]
mov ecx, 5
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x411428
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
imul ecx, ecx, 0x178
lea edx, [ecx + ebp + 0x89c]
push edx
push 0x447b00
push eax
call ebx
add esp, 0xc
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x138]
push ecx
push 0x4477f4
push edx
call ebx
add esp, 0xc
mov edi, str.wpoint_end:
lea esi, [esp + 0x138]
mov ecx, 0xc
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x411230
mov edi, str.itr:
lea esi, [esp + 0x138]
mov ecx, 5
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x411b7a
mov eax, dword [esp + 0x18]
imul eax, eax, 0x178
add dword [eax + ebp + 0x8cc], 1
mov ecx, dword [esp + 0x18]
lea eax, [eax + ebp + 0x8cc]
mov eax, ecx
imul eax, eax, 0x178
cmp dword [eax + ebp + 0x8cc], 1
jne 0x4114c7
push 0x190
call dword [sym.imp.MSVCR80.dll_malloc]
mov ecx, dword [esp + 0x1c]
add esp, 4
imul ecx, ecx, 0x178
mov dword [ecx + ebp + 0x8d4], eax
mov ecx, dword [esp + 0x18]
xor eax, eax
xor esi, esi
jmp 0x4114d4
mov ecx, dword [esp + 0x18]
imul ecx, ecx, 0x178
mov edx, dword [ecx + ebp + 0x8cc]
lea edx, [edx + edx*4]
lea edx, [eax + edx*4]
add ecx, ebp
mov ecx, dword [ecx + 0x8d4]
mov dword [ecx + edx*4 - 0x50], esi
mov edx, dword [esp + 0x18]
imul edx, edx, 0x178
lea ecx, [edx + ebp]
mov edx, dword [ecx + 0x8cc]
mov ecx, dword [ecx + 0x8d4]
lea edx, [edx + edx*4]
lea edx, [eax + edx*4]
mov dword [ecx + edx*4 - 0x4c], esi
mov edx, dword [esp + 0x18]
imul edx, edx, 0x178
lea ecx, [edx + ebp]
mov edx, dword [ecx + 0x8cc]
mov ecx, dword [ecx + 0x8d4]
lea edx, [edx + edx*4]
lea edx, [eax + edx*4]
mov dword [ecx + edx*4 - 0x48], esi
mov edx, dword [esp + 0x18]
imul edx, edx, 0x178
lea ecx, [edx + ebp]
mov edx, dword [ecx + 0x8cc]
mov ecx, dword [ecx + 0x8d4]
lea edx, [edx + edx*4]
lea edx, [eax + edx*4]
mov dword [ecx + edx*4 - 0x44], esi
mov edx, dword [esp + 0x18]
imul edx, edx, 0x178
lea ecx, [edx + ebp]
mov edx, dword [ecx + 0x8cc]
mov ecx, dword [ecx + 0x8d4]
lea edx, [edx + edx*4]
lea edx, [eax + edx*4]
add eax, 5
cmp eax, 0x14
mov dword [ecx + edx*4 - 0x40], esi
jl 0x4114d0
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x138]
push edx
push 0x4477f4
push eax
call ebx
add esp, 0xc
mov edi, str.itr_end:
lea esi, [esp + 0x138]
mov ecx, 9
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x411b7a
lea ecx, [ecx]
mov edi, str.kind:
lea esi, [esp + 0x138]
mov ecx, 6
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x41160a
mov ecx, dword [esp + 0x18]
imul ecx, ecx, 0x178
lea eax, [ecx + ebp]
mov ecx, dword [eax + 0x8cc]
mov eax, dword [eax + 0x8d4]
lea edx, [ecx + ecx*4]
shl edx, 4
lea ecx, [edx + eax - 0x50]
mov edx, dword [esp + 0x14]
push ecx
push 0x447b00
push edx
call ebx
add esp, 0xc
mov edi, 0x447aa0
lea esi, [esp + 0x138]
mov ecx, 3
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x411654
mov ecx, dword [esp + 0x18]
imul ecx, ecx, 0x178
lea eax, [ecx + ebp]
mov ecx, dword [eax + 0x8cc]
mov eax, dword [eax + 0x8d4]
lea edx, [ecx + ecx*4]
shl edx, 4
lea ecx, [edx + eax - 0x4c]
mov edx, dword [esp + 0x14]
push ecx
push 0x447b00
push edx
call ebx
add esp, 0xc
mov edi, 0x447a9c
lea esi, [esp + 0x138]
mov ecx, 3
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x41169e
mov ecx, dword [esp + 0x18]
imul ecx, ecx, 0x178
lea eax, [ecx + ebp]
mov ecx, dword [eax + 0x8cc]
mov eax, dword [eax + 0x8d4]
lea edx, [ecx + ecx*4]
shl edx, 4
lea ecx, [edx + eax - 0x48]
mov edx, dword [esp + 0x14]
push ecx
push 0x447b00
push edx
call ebx
add esp, 0xc
mov edi, 0x4486f0
lea esi, [esp + 0x138]
mov ecx, 3
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x4116e8
mov ecx, dword [esp + 0x18]
imul ecx, ecx, 0x178
lea eax, [ecx + ebp]
mov ecx, dword [eax + 0x8cc]
mov eax, dword [eax + 0x8d4]
lea edx, [ecx + ecx*4]
shl edx, 4
lea ecx, [edx + eax - 0x44]
mov edx, dword [esp + 0x14]
push ecx
push 0x447b00
push edx
call ebx
add esp, 0xc
mov edi, 0x4486ec
lea esi, [esp + 0x138]
mov ecx, 3
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x411732
mov ecx, dword [esp + 0x18]
imul ecx, ecx, 0x178
lea eax, [ecx + ebp]
mov ecx, dword [eax + 0x8cc]
mov eax, dword [eax + 0x8d4]
lea edx, [ecx + ecx*4]
shl edx, 4
lea ecx, [edx + eax - 0x40]
mov edx, dword [esp + 0x14]
push ecx
push 0x447b00
push edx
call ebx
add esp, 0xc
mov edi, str.dvx:
lea esi, [esp + 0x138]
mov ecx, 5
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x41177c
mov ecx, dword [esp + 0x18]
imul ecx, ecx, 0x178
lea eax, [ecx + ebp]
mov ecx, dword [eax + 0x8cc]
mov eax, dword [eax + 0x8d4]
lea edx, [ecx + ecx*4]
shl edx, 4
lea ecx, [edx + eax - 0x3c]
mov edx, dword [esp + 0x14]
push ecx
push 0x447b00
push edx
call ebx
add esp, 0xc
mov edi, str.dvy:
lea esi, [esp + 0x138]
mov ecx, 5
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x4117c6
mov ecx, dword [esp + 0x18]
imul ecx, ecx, 0x178
lea eax, [ecx + ebp]
mov ecx, dword [eax + 0x8cc]
mov eax, dword [eax + 0x8d4]
lea edx, [ecx + ecx*4]
shl edx, 4
lea ecx, [edx + eax - 0x38]
mov edx, dword [esp + 0x14]
push ecx
push 0x447b00
push edx
call ebx
add esp, 0xc
mov edi, str.fall:
lea esi, [esp + 0x138]
mov ecx, 6
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x411810
mov ecx, dword [esp + 0x18]
imul ecx, ecx, 0x178
lea eax, [ecx + ebp]
mov ecx, dword [eax + 0x8cc]
mov eax, dword [eax + 0x8d4]
lea edx, [ecx + ecx*4]
shl edx, 4
lea ecx, [edx + eax - 0x34]
mov edx, dword [esp + 0x14]
push ecx
push 0x447b00
push edx
call ebx
add esp, 0xc
mov edi, str.arest:
lea esi, [esp + 0x138]
mov ecx, 7
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x41185a
mov ecx, dword [esp + 0x18]
imul ecx, ecx, 0x178
lea eax, [ecx + ebp]
mov ecx, dword [eax + 0x8cc]
mov eax, dword [eax + 0x8d4]
lea edx, [ecx + ecx*4]
shl edx, 4
lea ecx, [edx + eax - 0x30]
mov edx, dword [esp + 0x14]
push ecx
push 0x447b00
push edx
call ebx
add esp, 0xc
mov edi, str.vrest:
lea esi, [esp + 0x138]
mov ecx, 7
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x4118a4
mov ecx, dword [esp + 0x18]
imul ecx, ecx, 0x178
lea eax, [ecx + ebp]
mov ecx, dword [eax + 0x8cc]
mov eax, dword [eax + 0x8d4]
lea edx, [ecx + ecx*4]
shl edx, 4
lea ecx, [edx + eax - 0x2c]
mov edx, dword [esp + 0x14]
push ecx
push 0x447b00
push edx
call ebx
add esp, 0xc
mov edi, str.respond:
lea esi, [esp + 0x138]
mov ecx, 9
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x4118ee
mov ecx, dword [esp + 0x18]
imul ecx, ecx, 0x178
lea eax, [ecx + ebp]
mov ecx, dword [eax + 0x8cc]
mov eax, dword [eax + 0x8d4]
lea edx, [ecx + ecx*4]
shl edx, 4
lea ecx, [edx + eax - 0x28]
mov edx, dword [esp + 0x14]
push ecx
push 0x447b00
push edx
call ebx
add esp, 0xc
mov edi, str.bdefend:
lea esi, [esp + 0x138]
mov ecx, 9
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x411938
mov ecx, dword [esp + 0x18]
imul ecx, ecx, 0x178
lea eax, [ecx + ebp]
mov ecx, dword [eax + 0x8cc]
mov eax, dword [eax + 0x8d4]
lea edx, [ecx + ecx*4]
shl edx, 4
lea ecx, [edx + eax - 0x10]
mov edx, dword [esp + 0x14]
push ecx
push 0x447b00
push edx
call ebx
add esp, 0xc
mov edi, str.injury:
lea esi, [esp + 0x138]
mov ecx, 8
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x411982
mov ecx, dword [esp + 0x18]
imul ecx, ecx, 0x178
lea eax, [ecx + ebp]
mov ecx, dword [eax + 0x8cc]
mov eax, dword [eax + 0x8d4]
lea edx, [ecx + ecx*4]
shl edx, 4
lea ecx, [edx + eax - 0xc]
mov edx, dword [esp + 0x14]
push ecx
push 0x447b00
push edx
call ebx
add esp, 0xc
mov edi, str.zwidth:
lea esi, [esp + 0x138]
mov ecx, 8
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x4119cc
mov ecx, dword [esp + 0x18]
imul ecx, ecx, 0x178
lea eax, [ecx + ebp]
mov ecx, dword [eax + 0x8cc]
mov eax, dword [eax + 0x8d4]
lea edx, [ecx + ecx*4]
shl edx, 4
lea ecx, [edx + eax - 8]
mov edx, dword [esp + 0x14]
push ecx
push 0x447b00
push edx
call ebx
add esp, 0xc
mov edi, str.effect:
lea esi, [esp + 0x138]
mov ecx, 8
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x411a16
mov ecx, dword [esp + 0x18]
imul ecx, ecx, 0x178
lea eax, [ecx + ebp]
mov ecx, dword [eax + 0x8cc]
mov eax, dword [eax + 0x8d4]
lea edx, [ecx + ecx*4]
shl edx, 4
lea ecx, [edx + eax - 0x24]
mov edx, dword [esp + 0x14]
push ecx
push 0x447b00
push edx
call ebx
add esp, 0xc
mov edi, str.catchingact:
lea esi, [esp + 0x138]
mov ecx, 0xd
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x411a65
mov ecx, dword [esp + 0x18]
imul ecx, ecx, 0x178
lea eax, [ecx + ebp]
mov ecx, dword [eax + 0x8cc]
mov eax, dword [eax + 0x8d4]
lea edx, [ecx + ecx*4]
shl edx, 4
add eax, edx
mov edx, dword [esp + 0x14]
lea ecx, [eax - 0x1c]
push ecx
add eax, 0xffffffe0
push eax
push str._d__d
push edx
call ebx
add esp, 0x10
mov edi, str.caughtact:
lea esi, [esp + 0x138]
mov ecx, 0xb
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x411ab4
mov ecx, dword [esp + 0x18]
imul ecx, ecx, 0x178
lea eax, [ecx + ebp]
mov ecx, dword [eax + 0x8cc]
mov eax, dword [eax + 0x8d4]
lea edx, [ecx + ecx*4]
shl edx, 4
add eax, edx
mov edx, dword [esp + 0x14]
lea ecx, [eax - 0x14]
push ecx
add eax, 0xffffffe8
push eax
push str._d__d
push edx
call ebx
add esp, 0x10
mov edi, str.pickingact:
lea esi, [esp + 0x138]
mov ecx, 0xc
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x411afe
mov ecx, dword [esp + 0x18]
imul ecx, ecx, 0x178
lea eax, [ecx + ebp]
mov ecx, dword [eax + 0x8cc]
mov eax, dword [eax + 0x8d4]
lea edx, [ecx + ecx*4]
shl edx, 4
lea ecx, [edx + eax - 0x20]
mov edx, dword [esp + 0x14]
push ecx
push 0x447b00
push edx
call ebx
add esp, 0xc
mov edi, str.pickedact:
lea esi, [esp + 0x138]
mov ecx, 0xb
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x411b48
mov ecx, dword [esp + 0x18]
imul ecx, ecx, 0x178
lea eax, [ecx + ebp]
mov ecx, dword [eax + 0x8cc]
mov eax, dword [eax + 0x8d4]
lea edx, [ecx + ecx*4]
shl edx, 4
lea ecx, [edx + eax - 0x1c]
mov edx, dword [esp + 0x14]
push ecx
push 0x447b00
push edx
call ebx
add esp, 0xc
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x138]
push eax
push 0x4477f4
push ecx
call ebx
add esp, 0xc
mov edi, str.itr_end:
lea esi, [esp + 0x138]
mov ecx, 9
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x4115c0
mov edi, str.bdy:
lea esi, [esp + 0x138]
mov ecx, 5
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x411f29
mov ecx, dword [esp + 0x18]
add ecx, 6
imul ecx, ecx, 0x178
add dword [ecx + ebp], 1
lea eax, [ecx + ebp]
mov eax, dword [esp + 0x18]
lea edx, [eax + 6]
imul edx, edx, 0x178
cmp dword [edx + ebp], 1
jne 0x411bdf
push 0xc8
call dword [sym.imp.MSVCR80.dll_malloc]
mov ecx, dword [esp + 0x1c]
add esp, 4
imul ecx, ecx, 0x178
mov dword [ecx + ebp + 0x8d8], eax
mov eax, dword [esp + 0x18]
lea edx, [eax + 6]
imul eax, eax, 0x178
imul edx, edx, 0x178
mov ecx, dword [edx + ebp]
mov edx, dword [eax + ebp + 0x8d8]
lea ecx, [ecx + ecx*4]
xor eax, eax
mov dword [edx + ecx*8 - 0x28], eax
mov ecx, dword [esp + 0x18]
lea edx, [ecx + 6]
imul ecx, ecx, 0x178
mov ecx, dword [ecx + ebp + 0x8d8]
imul edx, edx, 0x178
mov edx, dword [edx + ebp]
lea edx, [edx + edx*4]
mov dword [ecx + edx*8 - 0x24], eax
mov ecx, dword [esp + 0x18]
lea edx, [ecx + 6]
imul ecx, ecx, 0x178
mov ecx, dword [ecx + ebp + 0x8d8]
imul edx, edx, 0x178
mov edx, dword [edx + ebp]
lea edx, [edx + edx*4]
mov dword [ecx + edx*8 - 0x20], eax
mov ecx, dword [esp + 0x18]
lea edx, [ecx + 6]
imul ecx, ecx, 0x178
mov ecx, dword [ecx + ebp + 0x8d8]
imul edx, edx, 0x178
mov edx, dword [edx + ebp]
lea edx, [edx + edx*4]
mov dword [ecx + edx*8 - 0x1c], eax
mov ecx, dword [esp + 0x18]
lea edx, [ecx + 6]
imul ecx, ecx, 0x178
mov ecx, dword [ecx + ebp + 0x8d8]
imul edx, edx, 0x178
mov edx, dword [edx + ebp]
lea edx, [edx + edx*4]
mov dword [ecx + edx*8 - 0x18], eax
mov ecx, dword [esp + 0x18]
lea edx, [ecx + 6]
imul ecx, ecx, 0x178
mov ecx, dword [ecx + ebp + 0x8d8]
imul edx, edx, 0x178
mov edx, dword [edx + ebp]
lea edx, [edx + edx*4]
mov dword [ecx + edx*8 - 0x14], eax
mov ecx, dword [esp + 0x18]
lea edx, [ecx + 6]
imul ecx, ecx, 0x178
mov ecx, dword [ecx + ebp + 0x8d8]
imul edx, edx, 0x178
mov edx, dword [edx + ebp]
lea edx, [edx + edx*4]
mov dword [ecx + edx*8 - 0x10], eax
mov ecx, dword [esp + 0x18]
lea edx, [ecx + 6]
imul ecx, ecx, 0x178
mov ecx, dword [ecx + ebp + 0x8d8]
imul edx, edx, 0x178
mov edx, dword [edx + ebp]
lea edx, [edx + edx*4]
mov dword [ecx + edx*8 - 0xc], eax
mov ecx, dword [esp + 0x18]
lea edx, [ecx + 6]
imul ecx, ecx, 0x178
mov ecx, dword [ecx + ebp + 0x8d8]
imul edx, edx, 0x178
mov edx, dword [edx + ebp]
lea edx, [edx + edx*4]
mov dword [ecx + edx*8 - 8], eax
mov ecx, dword [esp + 0x18]
lea edx, [ecx + 6]
imul edx, edx, 0x178
imul ecx, ecx, 0x178
mov edx, dword [edx + ebp]
mov ecx, dword [ecx + ebp + 0x8d8]
lea edx, [edx + edx*4]
mov dword [ecx + edx*8 - 4], eax
lea edx, [esp + 0x138]
mov eax, dword [esp + 0x14]
push edx
push 0x4477f4
push eax
call ebx
add esp, 0xc
mov edi, 0x448390
lea esi, [esp + 0x138]
mov ecx, 9
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x411f29
jmp 0x411d80
mov edi, str.kind:
lea esi, [esp + 0x138]
mov ecx, 6
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x411dcb
mov eax, dword [esp + 0x18]
lea ecx, [eax + 6]
imul eax, eax, 0x178
mov eax, dword [eax + ebp + 0x8d8]
imul ecx, ecx, 0x178
mov ecx, dword [ecx + ebp]
lea edx, [ecx + ecx*4]
lea ecx, [eax + edx*8 - 0x28]
mov edx, dword [esp + 0x14]
push ecx
push 0x447b00
push edx
call ebx
add esp, 0xc
mov edi, 0x447aa0
lea esi, [esp + 0x138]
mov ecx, 3
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x411e16
mov eax, dword [esp + 0x18]
lea ecx, [eax + 6]
imul eax, eax, 0x178
mov eax, dword [eax + ebp + 0x8d8]
imul ecx, ecx, 0x178
mov ecx, dword [ecx + ebp]
lea edx, [ecx + ecx*4]
lea ecx, [eax + edx*8 - 0x24]
mov edx, dword [esp + 0x14]
push ecx
push 0x447b00
push edx
call ebx
add esp, 0xc
mov edi, 0x447a9c
lea esi, [esp + 0x138]
mov ecx, 3
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x411e61
mov eax, dword [esp + 0x18]
lea ecx, [eax + 6]
imul eax, eax, 0x178
mov eax, dword [eax + ebp + 0x8d8]
imul ecx, ecx, 0x178
mov ecx, dword [ecx + ebp]
lea edx, [ecx + ecx*4]
lea ecx, [eax + edx*8 - 0x20]
mov edx, dword [esp + 0x14]
push ecx
push 0x447b00
push edx
call ebx
add esp, 0xc
mov edi, 0x4486f0
lea esi, [esp + 0x138]
mov ecx, 3
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x411eac
mov eax, dword [esp + 0x18]
lea ecx, [eax + 6]
imul eax, eax, 0x178
mov eax, dword [eax + ebp + 0x8d8]
imul ecx, ecx, 0x178
mov ecx, dword [ecx + ebp]
lea edx, [ecx + ecx*4]
lea ecx, [eax + edx*8 - 0x1c]
mov edx, dword [esp + 0x14]
push ecx
push 0x447b00
push edx
call ebx
add esp, 0xc
mov edi, 0x4486ec
lea esi, [esp + 0x138]
mov ecx, 3
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x411ef7
mov eax, dword [esp + 0x18]
lea ecx, [eax + 6]
imul eax, eax, 0x178
mov eax, dword [eax + ebp + 0x8d8]
imul ecx, ecx, 0x178
mov ecx, dword [ecx + ebp]
lea edx, [ecx + ecx*4]
lea ecx, [eax + edx*8 - 0x18]
mov edx, dword [esp + 0x14]
push ecx
push 0x447b00
push edx
call ebx
add esp, 0xc
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x138]
push eax
push 0x4477f4
push ecx
call ebx
add esp, 0xc
mov edi, 0x448390
lea esi, [esp + 0x138]
mov ecx, 9
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x411d80
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x138]
push eax
push 0x4477f4
push ecx
call ebx
add esp, 0xc
mov edi, str._frame_end_
lea esi, [esp + 0x138]
mov ecx, 0xc
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x4103e0
mov eax, dword [esp + 0x18]
mov ecx, eax
imul ecx, ecx, 0x178
add ecx, ebp
cmp dword [ecx + 0x8cc], 0
jle 0x412122
mov edx, dword [ecx + 0x8d4]
mov eax, dword [edx + 4]
mov dword [ecx + 0x8dc], eax
mov ecx, dword [esp + 0x18]
imul ecx, ecx, 0x178
mov edx, dword [ecx + ebp + 0x8d4]
lea eax, [ecx + ebp]
mov ecx, dword [edx + 8]
mov dword [eax + 0x8e0], ecx
mov edx, dword [esp + 0x18]
imul edx, edx, 0x178
mov ecx, dword [edx + ebp + 0x8d4]
lea eax, [edx + ebp]
mov edx, dword [ecx + 0xc]
add edx, dword [ecx + 4]
mov dword [eax + 0x8e4], edx
mov eax, dword [esp + 0x18]
imul eax, eax, 0x178
mov ecx, dword [eax + ebp + 0x8d4]
mov edx, dword [ecx + 0x10]
add edx, dword [ecx + 8]
add eax, ebp
mov dword [eax + 0x8e8], edx
mov ecx, dword [esp + 0x18]
mov eax, ecx
imul eax, eax, 0x178
mov edx, 1
add eax, ebp
cmp dword [eax + 0x8cc], edx
mov dword [esp + 0x1c], edx
jle 0x4120ef
mov edx, 0x50
lea esp, [esp]
mov esi, dword [eax + 0x8d4]
mov esi, dword [esi + edx + 4]
cmp esi, dword [eax + 0x8dc]
jge 0x41202c
mov dword [eax + 0x8dc], esi
mov ecx, dword [esp + 0x18]
mov eax, ecx
imul eax, eax, 0x178
mov esi, dword [eax + ebp + 0x8d4]
mov esi, dword [esi + edx + 8]
add eax, ebp
cmp esi, dword [eax + 0x8e0]
jge 0x412053
mov dword [eax + 0x8e0], esi
mov ecx, dword [esp + 0x18]
mov eax, ecx
imul eax, eax, 0x178
mov esi, dword [eax + ebp + 0x8d4]
mov edi, dword [esi + edx + 0xc]
add edi, dword [esi + edx + 4]
add eax, ebp
add esi, edx
cmp edi, dword [eax + 0x8e4]
jle 0x41208f
mov ecx, dword [eax + 0x8d4]
mov esi, dword [ecx + edx + 0xc]
add ecx, edx
add esi, dword [ecx + 4]
mov dword [eax + 0x8e4], esi
mov ecx, dword [esp + 0x18]
mov eax, ecx
imul eax, eax, 0x178
mov esi, dword [eax + ebp + 0x8d4]
mov edi, dword [esi + edx + 0x10]
add edi, dword [esi + edx + 8]
add eax, ebp
add esi, edx
cmp edi, dword [eax + 0x8e8]
jle 0x4120cb
mov ecx, dword [eax + 0x8d4]
mov esi, dword [ecx + edx + 0x10]
add ecx, edx
add esi, dword [ecx + 8]
mov dword [eax + 0x8e8], esi
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov eax, ecx
imul eax, eax, 0x178
add esi, 1
add eax, ebp
add edx, 0x50
cmp esi, dword [eax + 0x8cc]
mov dword [esp + 0x1c], esi
jl 0x412010
imul ecx, ecx, 0x178
mov edx, dword [ecx + ebp + 0x8dc]
sub dword [ecx + ebp + 0x8e4], edx
mov eax, dword [esp + 0x18]
add ecx, ebp
imul eax, eax, 0x178
mov ecx, dword [eax + ebp + 0x8e0]
add eax, ebp
sub dword [eax + 0x8e8], ecx
mov eax, dword [esp + 0x18]
lea edx, [eax + 6]
imul edx, edx, 0x178
cmp dword [edx + ebp], 0
jle 0x4122e7
imul eax, eax, 0x178
mov ecx, dword [eax + ebp + 0x8d8]
mov edx, dword [ecx + 4]
mov dword [eax + ebp + 0x8ec], edx
add eax, ebp
mov eax, dword [esp + 0x18]
imul eax, eax, 0x178
mov ecx, dword [eax + ebp + 0x8d8]
mov edx, dword [ecx + 8]
add eax, ebp
mov dword [eax + 0x8f0], edx
mov eax, dword [esp + 0x18]
imul eax, eax, 0x178
mov ecx, dword [eax + ebp + 0x8d8]
mov edx, dword [ecx + 0xc]
add edx, dword [ecx + 4]
add eax, ebp
mov dword [eax + 0x8f4], edx
mov eax, dword [esp + 0x18]
imul eax, eax, 0x178
mov ecx, dword [eax + ebp + 0x8d8]
mov edx, dword [ecx + 0x10]
add edx, dword [ecx + 8]
add eax, ebp
mov dword [eax + 0x8f8], edx
mov eax, dword [esp + 0x18]
lea ecx, [eax + 6]
imul ecx, ecx, 0x178
cmp dword [ecx + ebp], 1
mov dword [esp + 0x1c], 1
jle 0x4122b6
mov ecx, 0x28
lea esp, [esp]
mov edx, eax
imul edx, edx, 0x178
mov esi, dword [edx + ebp + 0x8d8]
mov esi, dword [esi + ecx + 4]
add edx, ebp
cmp esi, dword [edx + 0x8ec]
jge 0x4121f7
mov dword [edx + 0x8ec], esi
mov eax, dword [esp + 0x18]
mov edx, eax
imul edx, edx, 0x178
mov esi, dword [edx + ebp + 0x8d8]
mov esi, dword [esi + ecx + 8]
add edx, ebp
cmp esi, dword [edx + 0x8f0]
jge 0x41221e
mov dword [edx + 0x8f0], esi
mov eax, dword [esp + 0x18]
mov edx, eax
imul edx, edx, 0x178
mov esi, dword [edx + ebp + 0x8d8]
mov edi, dword [esi + ecx + 0xc]
add edi, dword [esi + ecx + 4]
add edx, ebp
add esi, ecx
cmp edi, dword [edx + 0x8f4]
jle 0x41225a
mov eax, dword [edx + 0x8d8]
mov esi, dword [eax + ecx + 0xc]
add eax, ecx
add esi, dword [eax + 4]
mov dword [edx + 0x8f4], esi
mov eax, dword [esp + 0x18]
mov edx, eax
imul edx, edx, 0x178
mov esi, dword [edx + ebp + 0x8d8]
mov edi, dword [esi + ecx + 0x10]
add edi, dword [esi + ecx + 8]
add edx, ebp
add esi, ecx
cmp edi, dword [edx + 0x8f8]
jle 0x412296
mov eax, dword [edx + 0x8d8]
mov esi, dword [eax + ecx + 0x10]
add eax, ecx
add esi, dword [eax + 8]
mov dword [edx + 0x8f8], esi
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
lea esi, [eax + 6]
imul esi, esi, 0x178
add edx, 1
add ecx, 0x28
cmp edx, dword [esi + ebp]
mov dword [esp + 0x1c], edx
jl 0x4121d0
imul eax, eax, 0x178
mov ecx, dword [eax + ebp + 0x8ec]
sub dword [eax + ebp + 0x8f4], ecx
mov edx, dword [esp + 0x18]
add eax, ebp
imul edx, edx, 0x178
mov ecx, dword [edx + ebp + 0x8f0]
sub dword [edx + ebp + 0x8f8], ecx
lea eax, [edx + ebp]
mov edx, dword [esp + 0x14]
push edx
call dword [sym.imp.MSVCR80.dll_feof]
add esp, 4
test eax, eax
je 0x40f150
mov eax, dword [esp + 0x14]
mov edi, dword [sym.imp.MSVCR80.dll_fclose]
push eax
call edi
push 0x447a68
push str.data_temporary.txt
call dword [sym.imp.MSVCR80.dll_fopen]
mov esi, eax
push 0x447a50
push esi
call dword [sym.imp.MSVCR80.dll_fprintf]
push esi
call edi
add esp, 0x18
mov eax, ebp
mov ecx, dword [esp + 0x588]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x570]
xor ecx, esp
call fcn.004451a2
add esp, 0x580
ret 0x10