45299f:	b8 03 00 00 00       	mov    $0x3,%eax
4529a4:	0f 47 d8             	cmova  %eax,%ebx
4529a7:	53                   	push   %ebx
4529a8:	e8 a3 5a 17 00       	call   0x5c8450
4529ad:	68 54 48 60 00       	push   $0x604854
4529b2:	e8 f9 4b ff ff       	call   0x4475b0
4529b7:	8b 06                	mov    (%esi),%eax
4529b9:	83 c4 10             	add    $0x10,%esp
4529bc:	8b ce                	mov    %esi,%ecx
4529be:	ff 50 28             	call   *0x28(%eax)
4529c1:	e8 0a 49 17 00       	call   0x5c72d0
4529c6:	8b ca                	mov    %edx,%ecx
4529c8:	8b d8                	mov    %eax,%ebx
4529ca:	89 5d f8             	mov    %ebx,-0x8(%ebp)
4529cd:	89 4d fc             	mov    %ecx,-0x4(%ebp)
4529d0:	3b 8e 14 01 00 00    	cmp    0x114(%esi),%ecx
4529d6:	0f 87 c2 00 00 00    	ja     0x452a9e
4529dc:	72 0c                	jb     0x4529ea
4529de:	3b 9e 10 01 00 00    	cmp    0x110(%esi),%ebx
4529e4:	0f 83 b4 00 00 00    	jae    0x452a9e
4529ea:	8b 46 08             	mov    0x8(%esi),%eax
4529ed:	85 c0                	test   %eax,%eax
4529ef:	0f 85 a9 00 00 00    	jne    0x452a9e
4529f5:	e8 b6 48 17 00       	call   0x5c72b0
4529fa:	8b be 10 01 00 00    	mov    0x110(%esi),%edi
452a00:	b9 e8 03 00 00       	mov    $0x3e8,%ecx
452a05:	2b 7d f8             	sub    -0x8(%ebp),%edi
452a08:	89 45 e8             	mov    %eax,-0x18(%ebp)
452a0b:	8b 86 14 01 00 00    	mov    0x114(%esi),%eax
452a11:	1b 45 fc             	sbb    -0x4(%ebp),%eax
452a14:	52                   	push   %edx
452a15:	ff 75 e8             	push   -0x18(%ebp)
452a18:	f7 e1                	mul    %ecx
452a1a:	ba e8 03 00 00       	mov    $0x3e8,%edx
452a1f:	8b c8                	mov    %eax,%ecx
452a21:	8b c7                	mov    %edi,%eax
452a23:	f7 e2                	mul    %edx
452a25:	03 ca                	add    %edx,%ecx
452a27:	51                   	push   %ecx
452a28:	50                   	push   %eax
452a29:	e8 f2 ea 17 00       	call   0x5d1520
452a2e:	8b c8                	mov    %eax,%ecx
452a30:	8b 45 f0             	mov    -0x10(%ebp),%eax
452a33:	89 4d f4             	mov    %ecx,-0xc(%ebp)
452a36:	8b f9                	mov    %ecx,%edi
452a38:	85 c0                	test   %eax,%eax
452a3a:	74 0b                	je     0x452a47
452a3c:	50                   	push   %eax
452a3d:	e8 4e da 16 00       	call   0x5c0490
452a42:	83 c4 04             	add    $0x4,%esp
452a45:	8b cf                	mov    %edi,%ecx
452a47:	89 7d ec             	mov    %edi,-0x14(%ebp)
452a4a:	8b df                	mov    %edi,%ebx
452a4c:	89 7d e8             	mov    %edi,-0x18(%ebp)
452a4f:	85 c9                	test   %ecx,%ecx
452a51:	0f 85 0e ff ff ff    	jne    0x452965
452a57:	8b 5d f8             	mov    -0x8(%ebp),%ebx
452a5a:	8b 4d fc             	mov    -0x4(%ebp),%ecx
452a5d:	8b be 10 01 00 00    	mov    0x110(%esi),%edi
452a63:	8b c7                	mov    %edi,%eax
452a65:	8b 96 14 01 00 00    	mov    0x114(%esi),%edx
452a6b:	0b c2                	or     %edx,%eax
452a6d:	74 12                	je     0x452a81
452a6f:	3b ca                	cmp    %edx,%ecx
452a71:	0f 82 20 02 00 00    	jb     0x452c97
452a77:	77 08                	ja     0x452a81
452a79:	3b df                	cmp    %edi,%ebx
452a7b:	0f 82 16 02 00 00    	jb     0x452c97
452a81:	8b 4e 0c             	mov    0xc(%esi),%ecx
452a84:	e8 87 2d 00 00       	call   0x455810
452a89:	84 c0                	test   %al,%al
452a8b:	0f 84 bf 01 00 00    	je     0x452c50
452a91:	83 3d 7c 71 69 00 00 	cmpl   $0x0,0x69717c
452a98:	75 1b                	jne    0x452ab5
452a9a:	33 c0                	xor    %eax,%eax
452a9c:	eb 2a                	jmp    0x452ac8
452a9e:	8b 45 f0             	mov    -0x10(%ebp),%eax
452aa1:	85 c0                	test   %eax,%eax
452aa3:	74 b8                	je     0x452a5d
452aa5:	50                   	push   %eax
452aa6:	e8 e5 d9 16 00       	call   0x5c0490
452aab:	83 c4 04             	add    $0x4,%esp
452aae:	eb aa                	jmp    0x452a5a
452ab0:	8b 5d f8             	mov    -0x8(%ebp),%ebx
452ab3:	eb a8                	jmp    0x452a5d
452ab5:	8d 45 ec             	lea    -0x14(%ebp),%eax
452ab8:	50                   	push   %eax
452ab9:	6a 05                	push   $0x5
452abb:	68 68 48 60 00       	push   $0x604868
452ac0:	e8 0b da 16 00       	call   0x5c04d0
452ac5:	83 c4 0c             	add    $0xc,%esp
452ac8:	68 a0 48 60 00       	push   $0x6048a0
452acd:	89 45 ec             	mov    %eax,-0x14(%ebp)
452ad0:	e8 db 4a ff ff       	call   0x4475b0
452ad5:	83 c4 04             	add    $0x4,%esp
452ad8:	8d 7e 4c             	lea    0x4c(%esi),%edi
452adb:	57                   	push   %edi
452adc:	ff 15 ac 21 60 00    	call   *0x6021ac
452ae2:	8b 86 84 00 00 00    	mov    0x84(%esi),%eax
452ae8:	3b 86 d4 00 00 00    	cmp    0xd4(%esi),%eax
452aee:	0f 85 db 00 00 00    	jne    0x452bcf
452af4:	8b 86 88 00 00 00    	mov    0x88(%esi),%eax
452afa:	3b 86 d8 00 00 00    	cmp    0xd8(%esi),%eax
452b00:	0f 85 c9 00 00 00    	jne    0x452bcf
452b06:	8b 86 8c 00 00 00    	mov    0x8c(%esi),%eax
452b0c:	3b 86 dc 00 00 00    	cmp    0xdc(%esi),%eax
452b12:	0f 85 b7 00 00 00    	jne    0x452bcf
452b18:	8b 86 90 00 00 00    	mov    0x90(%esi),%eax
452b1e:	3b 86 e0 00 00 00    	cmp    0xe0(%esi),%eax
452b24:	0f 85 a5 00 00 00    	jne    0x452bcf
452b2a:	8d 46 64             	lea    0x64(%esi),%eax
452b2d:	8d 8e b4 00 00 00    	lea    0xb4(%esi),%ecx
452b33:	50                   	push   %eax
452b34:	e8 67 fb ff ff       	call   0x4526a0
452b39:	57                   	push   %edi
452b3a:	ff 15 60 21 60 00    	call   *0x602160
452b40:	8b 4e 0c             	mov    0xc(%esi),%ecx
452b43:	8d 45 e8             	lea    -0x18(%ebp),%eax
452b46:	50                   	push   %eax
452b47:	8d 45 f0             	lea    -0x10(%ebp),%eax
452b4a:	50                   	push   %eax
452b4b:	e8 f0 2d 00 00       	call   0x455940
452b50:	8d be 1c 01 00 00    	lea    0x11c(%esi),%edi
452b56:	57                   	push   %edi
452b57:	8d 86 18 01 00 00    	lea    0x118(%esi),%eax
452b5d:	50                   	push   %eax
452b5e:	ff 75 e8             	push   -0x18(%ebp)
452b61:	ff 75 f0             	push   -0x10(%ebp)
452b64:	ff b6 e0 00 00 00    	push   0xe0(%esi)
452b6a:	ff b6 dc 00 00 00    	push   0xdc(%esi)
452b70:	e8 3b 13 00 00       	call   0x453eb0
452b75:	83 c4 18             	add    $0x18,%esp
452b78:	83 be 18 01 00 00 00 	cmpl   $0x0,0x118(%esi)
452b7f:	7e 64                	jle    0x452be5
452b81:	83 3f 00             	cmpl   $0x0,(%edi)
452b84:	7e 5f                	jle    0x452be5
452b86:	80 be 28 01 00 00 00 	cmpb   $0x0,0x128(%esi)
452b8d:	75 56                	jne    0x452be5
452b8f:	8b 55 fc             	mov    -0x4(%ebp),%edx
452b92:	8d be 08 01 00 00    	lea    0x108(%esi),%edi
452b98:	52                   	push   %edx
452b99:	53                   	push   %ebx
452b9a:	57                   	push   %edi
452b9b:	e8 40 57 17 00       	call   0x5c82e0
452ba0:	8b 06                	mov    (%esi),%eax
452ba2:	8d 8e b4 00 00 00    	lea    0xb4(%esi),%ecx
452ba8:	83 c4 0c             	add    $0xc,%esp
452bab:	ff 76 0c             	push   0xc(%esi)
452bae:	ff b6 1c 01 00 00    	push   0x11c(%esi)
452bb4:	ff b6 18 01 00 00    	push   0x118(%esi)
452bba:	51                   	push   %ecx
452bbb:	8b ce                	mov    %esi,%ecx
452bbd:	ff 50 24             	call   *0x24(%eax)
452bc0:	6a 00                	push   $0x0
452bc2:	6a 00                	push   $0x0
452bc4:	57                   	push   %edi
452bc5:	e8 16 57 17 00       	call   0x5c82e0
452bca:	83 c4 0c             	add    $0xc,%esp
452bcd:	eb 16                	jmp    0x452be5
452bcf:	8d 46 64             	lea    0x64(%esi),%eax
452bd2:	50                   	push   %eax
452bd3:	8d 8e b4 00 00 00    	lea    0xb4(%esi),%ecx
452bd9:	e8 c2 fa ff ff       	call   0x4526a0
452bde:	57                   	push   %edi
452bdf:	ff 15 60 21 60 00    	call   *0x602160
452be5:	68 c4 48 60 00       	push   $0x6048c4
452bea:	e8 c1 49 ff ff       	call   0x4475b0
452bef:	8b 96 10 01 00 00    	mov    0x110(%esi),%edx
452bf5:	83 c4 04             	add    $0x4,%esp
452bf8:	8b be 14 01 00 00    	mov    0x114(%esi),%edi
452bfe:	8b c2                	mov    %edx,%eax
452c00:	0b c7                	or     %edi,%eax
452c02:	75 08                	jne    0x452c0c
452c04:	8b 45 f8             	mov    -0x8(%ebp),%eax
452c07:	8b 4d fc             	mov    -0x4(%ebp),%ecx
452c0a:	eb 2d                	jmp    0x452c39
452c0c:	2b 5d dc             	sub    -0x24(%ebp),%ebx
452c0f:	8b cf                	mov    %edi,%ecx
452c11:	8b 45 fc             	mov    -0x4(%ebp),%eax
452c14:	1b 45 d8             	sbb    -0x28(%ebp),%eax
452c17:	89 45 e8             	mov    %eax,-0x18(%ebp)
452c1a:	8b c2                	mov    %edx,%eax
452c1c:	3b 7d e8             	cmp    -0x18(%ebp),%edi
452c1f:	77 18                	ja     0x452c39
452c21:	72 04                	jb     0x452c27
452c23:	3b d3                	cmp    %ebx,%edx
452c25:	73 12                	jae    0x452c39
452c27:	68 dc 48 60 00       	push   $0x6048dc
452c2c:	e8 7f 49 ff ff       	call   0x4475b0
452c31:	8b 4d e8             	mov    -0x18(%ebp),%ecx
452c34:	83 c4 04             	add    $0x4,%esp
452c37:	8b c3                	mov    %ebx,%eax
452c39:	03 45 d4             	add    -0x2c(%ebp),%eax
452c3c:	89 86 10 01 00 00    	mov    %eax,0x110(%esi)
452c42:	13 4d d0             	adc    -0x30(%ebp),%ecx
452c45:	8b 45 ec             	mov    -0x14(%ebp),%eax
452c48:	89 8e 14 01 00 00    	mov    %ecx,0x114(%esi)
452c4e:	eb 3a                	jmp    0x452c8a
452c50:	83 3d 7c 71 69 00 00 	cmpl   $0x0,0x69717c
452c57:	75 04                	jne    0x452c5d
452c59:	33 c0                	xor    %eax,%eax
452c5b:	eb 13                	jmp    0x452c70
452c5d:	8d 45 e8             	lea    -0x18(%ebp),%eax
452c60:	50                   	push   %eax
452c61:	6a 05                	push   $0x5
452c63:	68 f4 48 60 00       	push   $0x6048f4
452c68:	e8 63 d8 16 00       	call   0x5c04d0
452c6d:	83 c4 0c             	add    $0xc,%esp
452c70:	68 08 49 60 00       	push   $0x604908
452c75:	89 45 e8             	mov    %eax,-0x18(%ebp)
452c78:	e8 33 49 ff ff       	call   0x4475b0
452c7d:	6a 01                	push   $0x1
452c7f:	e8 cc 57 17 00       	call   0x5c8450
452c84:	8b 45 e8             	mov    -0x18(%ebp),%eax
452c87:	83 c4 08             	add    $0x8,%esp
452c8a:	85 c0                	test   %eax,%eax
452c8c:	74 09                	je     0x452c97
452c8e:	50                   	push   %eax
452c8f:	e8 fc d7 16 00       	call   0x5c0490
452c94:	83 c4 04             	add    $0x4,%esp
452c97:	5f                   	pop    %edi
452c98:	5b                   	pop    %ebx
452c99:	5e                   	pop    %esi
452c9a:	8b e5                	mov    %ebp,%esp
452c9c:	5d                   	pop    %ebp
452c9d:	c3                   	ret
452c9e:	cc                   	int3
452c9f:	cc                   	int3
452ca0:	55                   	push   %ebp
452ca1:	8b ec                	mov    %esp,%ebp
452ca3:	53                   	push   %ebx
452ca4:	56                   	push   %esi
452ca5:	8b f1                	mov    %ecx,%esi
452ca7:	8b 4d 08             	mov    0x8(%ebp),%ecx
452caa:	57                   	push   %edi
452cab:	8b 7d 0c             	mov    0xc(%ebp),%edi
452cae:	85 c9                	test   %ecx,%ecx
452cb0:	74 2f                	je     0x452ce1
452cb2:	8b 16                	mov    (%esi),%edx
452cb4:	8d 04 b9             	lea    (%ecx,%edi,4),%eax
452cb7:	3b d0                	cmp    %eax,%edx
452cb9:	73 26                	jae    0x452ce1
452cbb:	8b 46 0c             	mov    0xc(%esi),%eax
452cbe:	8d 04 82             	lea    (%edx,%eax,4),%eax
452cc1:	3b c8                	cmp    %eax,%ecx
452cc3:	73 1c                	jae    0x452ce1
452cc5:	68 e8 49 60 00       	push   $0x6049e8
452cca:	68 dd 04 00 00       	push   $0x4dd
452ccf:	68 d8 27 60 00       	push   $0x6027d8
452cd4:	e8 87 87 16 00       	call   0x5bb460
452cd9:	83 c4 0c             	add    $0xc,%esp
452cdc:	84 c0                	test   %al,%al
452cde:	75 01                	jne    0x452ce1
452ce0:	cc                   	int3
452ce1:	8b 5e 0c             	mov    0xc(%esi),%ebx
452ce4:	3b fb                	cmp    %ebx,%edi
452ce6:	0f 8e d6 00 00 00    	jle    0x452dc2
452cec:	8b 4e 04             	mov    0x4(%esi),%ecx
452cef:	8b c7                	mov    %edi,%eax
452cf1:	2b c3                	sub    %ebx,%eax
452cf3:	89 45 0c             	mov    %eax,0xc(%ebp)
452cf6:	3b f9                	cmp    %ecx,%edi
452cf8:	0f 8e bf 00 00 00    	jle    0x452dbd
452cfe:	2b d9                	sub    %ecx,%ebx
452d00:	03 d8                	add    %eax,%ebx
452d02:	85 db                	test   %ebx,%ebx
452d04:	7f 1c                	jg     0x452d22
452d06:	68 b0 28 60 00       	push   $0x6028b0
452d0b:	68 e5 01 00 00       	push   $0x1e5
452d10:	68 48 28 60 00       	push   $0x602848
452d15:	e8 46 87 16 00       	call   0x5bb460
452d1a:	83 c4 0c             	add    $0xc,%esp
452d1d:	84 c0                	test   %al,%al
452d1f:	75 01                	jne    0x452d22
452d21:	cc                   	int3
452d22:	8b 56 08             	mov    0x8(%esi),%edx
452d25:	85 d2                	test   %edx,%edx
452d27:	79 24                	jns    0x452d4d
452d29:	68 b8 25 60 00       	push   $0x6025b8
452d2e:	68 ea 01 00 00       	push   $0x1ea
452d33:	68 48 28 60 00       	push   $0x602848
452d38:	e8 23 87 16 00       	call   0x5bb460
452d3d:	83 c4 0c             	add    $0xc,%esp
452d40:	84 c0                	test   %al,%al
452d42:	75 76                	jne    0x452dba
452d44:	cc                   	int3
452d45:	8b 45 0c             	mov    0xc(%ebp),%eax
452d48:	01 46 0c             	add    %eax,0xc(%esi)
452d4b:	eb 7c                	jmp    0x452dc9
452d4d:	8b 4e 04             	mov    0x4(%esi),%ecx
452d50:	6a 04                	push   $0x4
452d52:	8d 04 19             	lea    (%ecx,%ebx,1),%eax
452d55:	50                   	push   %eax
452d56:	52                   	push   %edx
452d57:	51                   	push   %ecx
452d58:	e8 43 8c 17 00       	call   0x5cb9a0
452d5d:	83 c4 10             	add    $0x10,%esp
452d60:	89 46 04             	mov    %eax,0x4(%esi)
452d63:	83 3e 00             	cmpl   $0x0,(%esi)
452d66:	74 2d                	je     0x452d95
452d68:	e8 03 3e 17 00       	call   0x5c6b70
452d6d:	6a 00                	push   $0x0
452d6f:	68 f9 01 00 00       	push   $0x1f9
452d74:	68 48 28 60 00       	push   $0x602848
452d79:	8b 08                	mov    (%eax),%ecx
452d7b:	8b 51 10             	mov    0x10(%ecx),%edx
452d7e:	8b 4e 04             	mov    0x4(%esi),%ecx
452d81:	c1 e1 02             	shl    $0x2,%ecx
452d84:	51                   	push   %ecx
452d85:	ff 36                	push   (%esi)
452d87:	8b c8                	mov    %eax,%ecx
452d89:	ff d2                	call   *%edx
452d8b:	89 06                	mov    %eax,(%esi)
452d8d:	8b 45 0c             	mov    0xc(%ebp),%eax
452d90:	01 46 0c             	add    %eax,0xc(%esi)
452d93:	eb 34                	jmp    0x452dc9
452d95:	e8 d6 3d 17 00       	call   0x5c6b70
452d9a:	6a 00                	push   $0x0
452d9c:	6a 00                	push   $0x0
452d9e:	68 fd 01 00 00       	push   $0x1fd
452da3:	8b 08                	mov    (%eax),%ecx
452da5:	68 48 28 60 00       	push   $0x602848
452daa:	8b 51 08             	mov    0x8(%ecx),%edx
452dad:	8b 4e 04             	mov    0x4(%esi),%ecx
452db0:	c1 e1 02             	shl    $0x2,%ecx
452db3:	51                   	push   %ecx
452db4:	8b c8                	mov    %eax,%ecx
452db6:	ff d2                	call   *%edx
452db8:	89 06                	mov    %eax,(%esi)
452dba:	8b 45 0c             	mov    0xc(%ebp),%eax
452dbd:	01 46 0c             	add    %eax,0xc(%esi)
452dc0:	eb 07                	jmp    0x452dc9
452dc2:	85 ff                	test   %edi,%edi
452dc4:	78 20                	js     0x452de6
452dc6:	89 7e 0c             	mov    %edi,0xc(%esi)
452dc9:	33 d2                	xor    %edx,%edx
452dcb:	85 ff                	test   %edi,%edi
452dcd:	7e 33                	jle    0x452e02
452dcf:	8b 5d 08             	mov    0x8(%ebp),%ebx
452dd2:	8b 0e                	mov    (%esi),%ecx
452dd4:	8b 04 93             	mov    (%ebx,%edx,4),%eax
452dd7:	89 04 91             	mov    %eax,(%ecx,%edx,4)
452dda:	42                   	inc    %edx
452ddb:	3b d7                	cmp    %edi,%edx
452ddd:	7c f3                	jl     0x452dd2
452ddf:	5f                   	pop    %edi
452de0:	5e                   	pop    %esi
452de1:	5b                   	pop    %ebx
452de2:	5d                   	pop    %ebp
452de3:	c2 08 00             	ret    $0x8