41097a:	e8 1a 30 ff ff       	call   0x403999
41097f:	33 db                	xor    %ebx,%ebx
410981:	8b 86 bc 00 00 00    	mov    0xbc(%esi),%eax
410987:	85 c0                	test   %eax,%eax
410989:	74 06                	je     0x410991
41098b:	50                   	push   %eax
41098c:	e8 5e 4b 03 00       	call   0x4454ef
410991:	8b 86 c0 00 00 00    	mov    0xc0(%esi),%eax
410997:	85 c0                	test   %eax,%eax
410999:	74 06                	je     0x4109a1
41099b:	50                   	push   %eax
41099c:	e8 4e 4b 03 00       	call   0x4454ef
4109a1:	8d 86 b4 00 00 00    	lea    0xb4(%esi),%eax
4109a7:	50                   	push   %eax
4109a8:	e8 b3 82 01 00       	call   0x428c60
4109ad:	68 a8 01 00 00       	push   $0x1a8
4109b2:	53                   	push   %ebx
4109b3:	56                   	push   %esi
4109b4:	e8 b7 ec 01 00       	call   0x42f670
4109b9:	83 c4 0c             	add    $0xc,%esp
4109bc:	5f                   	pop    %edi
4109bd:	5e                   	pop    %esi
4109be:	5b                   	pop    %ebx
4109bf:	5d                   	pop    %ebp
4109c0:	c2 04 00             	ret    $0x4
4109c3:	55                   	push   %ebp
4109c4:	8b ec                	mov    %esp,%ebp
4109c6:	51                   	push   %ecx
4109c7:	51                   	push   %ecx
4109c8:	53                   	push   %ebx
4109c9:	8b 5d 08             	mov    0x8(%ebp),%ebx
4109cc:	8d 45 fc             	lea    -0x4(%ebp),%eax
4109cf:	56                   	push   %esi
4109d0:	57                   	push   %edi
4109d1:	50                   	push   %eax
4109d2:	ff 75 0c             	push   0xc(%ebp)
4109d5:	33 f6                	xor    %esi,%esi
4109d7:	ff 73 04             	push   0x4(%ebx)
4109da:	89 75 fc             	mov    %esi,-0x4(%ebp)
4109dd:	89 75 f8             	mov    %esi,-0x8(%ebp)
4109e0:	e8 ce 8e 00 00       	call   0x4198b3
4109e5:	8b f8                	mov    %eax,%edi
4109e7:	85 ff                	test   %edi,%edi
4109e9:	79 12                	jns    0x4109fd
4109eb:	68 24 38 45 00       	push   $0x453824
4109f0:	57                   	push   %edi
4109f1:	e8 39 f7 02 00       	call   0x44012f
4109f6:	8b 75 fc             	mov    -0x4(%ebp),%esi
4109f9:	59                   	pop    %ecx
4109fa:	59                   	pop    %ecx
4109fb:	eb 45                	jmp    0x410a42
4109fd:	8d 45 f8             	lea    -0x8(%ebp),%eax
410a00:	50                   	push   %eax
410a01:	53                   	push   %ebx
410a02:	e8 ec 04 00 00       	call   0x410ef3
410a07:	8b f8                	mov    %eax,%edi
410a09:	85 ff                	test   %edi,%edi
410a0b:	79 07                	jns    0x410a14
410a0d:	68 0c 37 45 00       	push   $0x45370c
410a12:	eb dc                	jmp    0x4109f0
410a14:	8b 4d f8             	mov    -0x8(%ebp),%ecx
410a17:	8b 45 0c             	mov    0xc(%ebp),%eax
410a1a:	c7 01 07 00 00 00    	movl   $0x7,(%ecx)
410a20:	89 41 08             	mov    %eax,0x8(%ecx)
410a23:	8b 45 fc             	mov    -0x4(%ebp),%eax
410a26:	89 41 0c             	mov    %eax,0xc(%ecx)
410a29:	8b 45 10             	mov    0x10(%ebp),%eax
410a2c:	89 75 fc             	mov    %esi,-0x4(%ebp)
410a2f:	85 c0                	test   %eax,%eax
410a31:	74 02                	je     0x410a35
410a33:	89 08                	mov    %ecx,(%eax)
410a35:	8b 4d 14             	mov    0x14(%ebp),%ecx
410a38:	85 c9                	test   %ecx,%ecx
410a3a:	74 10                	je     0x410a4c
410a3c:	8b 43 50             	mov    0x50(%ebx),%eax
410a3f:	48                   	dec    %eax
410a40:	89 01                	mov    %eax,(%ecx)
410a42:	85 f6                	test   %esi,%esi
410a44:	74 06                	je     0x410a4c
410a46:	56                   	push   %esi
410a47:	e8 a3 4a 03 00       	call   0x4454ef
410a4c:	8b c7                	mov    %edi,%eax
410a4e:	5f                   	pop    %edi
410a4f:	5e                   	pop    %esi
410a50:	5b                   	pop    %ebx
410a51:	8b e5                	mov    %ebp,%esp
410a53:	5d                   	pop    %ebp
410a54:	c2 10 00             	ret    $0x10
410a57:	55                   	push   %ebp
410a58:	8b ec                	mov    %esp,%ebp
410a5a:	56                   	push   %esi
410a5b:	57                   	push   %edi
410a5c:	8b 7d 0c             	mov    0xc(%ebp),%edi
410a5f:	83 bf 8c 00 00 00 02 	cmpl   $0x2,0x8c(%edi)
410a66:	75 1f                	jne    0x410a87
410a68:	83 bf d4 00 00 00 00 	cmpl   $0x0,0xd4(%edi)
410a6f:	76 16                	jbe    0x410a87
410a71:	57                   	push   %edi
410a72:	ff 75 08             	push   0x8(%ebp)
410a75:	e8 3e 02 00 00       	call   0x410cb8
410a7a:	8b f0                	mov    %eax,%esi
410a7c:	85 f6                	test   %esi,%esi
410a7e:	79 07                	jns    0x410a87
410a80:	68 90 33 45 00       	push   $0x453390
410a85:	eb 17                	jmp    0x410a9e
410a87:	ff 75 10             	push   0x10(%ebp)
410a8a:	57                   	push   %edi
410a8b:	ff 75 08             	push   0x8(%ebp)
410a8e:	e8 1b 00 00 00       	call   0x410aae
410a93:	8b f0                	mov    %eax,%esi
410a95:	85 f6                	test   %esi,%esi
410a97:	79 0d                	jns    0x410aa6
410a99:	68 54 29 45 00       	push   $0x452954
410a9e:	56                   	push   %esi
410a9f:	e8 8b f6 02 00       	call   0x44012f
410aa4:	59                   	pop    %ecx
410aa5:	59                   	pop    %ecx
410aa6:	5f                   	pop    %edi
410aa7:	8b c6                	mov    %esi,%eax
410aa9:	5e                   	pop    %esi
410aaa:	5d                   	pop    %ebp
410aab:	c2 0c 00             	ret    $0xc
410aae:	55                   	push   %ebp
410aaf:	8b ec                	mov    %esp,%ebp
410ab1:	83 ec 0c             	sub    $0xc,%esp
410ab4:	53                   	push   %ebx
410ab5:	8b 5d 08             	mov    0x8(%ebp),%ebx
410ab8:	56                   	push   %esi
410ab9:	8b 75 0c             	mov    0xc(%ebp),%esi
410abc:	57                   	push   %edi
410abd:	ff 75 10             	push   0x10(%ebp)
410ac0:	33 ff                	xor    %edi,%edi
410ac2:	ff 36                	push   (%esi)
410ac4:	21 7d fc             	and    %edi,-0x4(%ebp)
410ac7:	53                   	push   %ebx
410ac8:	e8 b1 03 00 00       	call   0x410e7e
410acd:	85 c0                	test   %eax,%eax
410acf:	0f 85 d8 01 00 00    	jne    0x410cad
410ad5:	a1 60 aa 46 00       	mov    0x46aa60,%eax
410ada:	40                   	inc    %eax
410adb:	89 45 08             	mov    %eax,0x8(%ebp)
410ade:	a3 60 aa 46 00       	mov    %eax,0x46aa60
410ae3:	8d 45 fc             	lea    -0x4(%ebp),%eax
410ae6:	50                   	push   %eax
410ae7:	53                   	push   %ebx
410ae8:	e8 06 04 00 00       	call   0x410ef3
410aed:	8b f8                	mov    %eax,%edi
410aef:	85 ff                	test   %edi,%edi
410af1:	79 12                	jns    0x410b05
410af3:	68 fc 29 45 00       	push   $0x4529fc
410af8:	57                   	push   %edi
410af9:	e8 31 f6 02 00       	call   0x44012f
410afe:	59                   	pop    %ecx
410aff:	59                   	pop    %ecx
410b00:	e9 a8 01 00 00       	jmp    0x410cad
410b05:	8b 45 fc             	mov    -0x4(%ebp),%eax
410b08:	33 d2                	xor    %edx,%edx
410b0a:	8b 4d 08             	mov    0x8(%ebp),%ecx
410b0d:	42                   	inc    %edx
410b0e:	89 10                	mov    %edx,(%eax)
410b10:	89 48 08             	mov    %ecx,0x8(%eax)
410b13:	8b 46 60             	mov    0x60(%esi),%eax
410b16:	89 45 f8             	mov    %eax,-0x8(%ebp)
410b19:	3b c2                	cmp    %edx,%eax
410b1b:	75 26                	jne    0x410b43
410b1d:	8d 45 fc             	lea    -0x4(%ebp),%eax
410b20:	50                   	push   %eax
410b21:	53                   	push   %ebx
410b22:	e8 95 07 00 00       	call   0x4112bc
410b27:	8b f8                	mov    %eax,%edi
410b29:	85 ff                	test   %edi,%edi
410b2b:	79 07                	jns    0x410b34
410b2d:	68 c0 33 45 00       	push   $0x4533c0
410b32:	eb c4                	jmp    0x410af8
410b34:	8b 45 fc             	mov    -0x4(%ebp),%eax
410b37:	8b 4d 08             	mov    0x8(%ebp),%ecx
410b3a:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
410b40:	89 48 08             	mov    %ecx,0x8(%eax)
410b43:	8d 45 fc             	lea    -0x4(%ebp),%eax
410b46:	50                   	push   %eax
410b47:	53                   	push   %ebx
410b48:	e8 a6 03 00 00       	call   0x410ef3
410b4d:	8b f8                	mov    %eax,%edi
410b4f:	85 ff                	test   %edi,%edi
410b51:	78 a0                	js     0x410af3
410b53:	8b 45 fc             	mov    -0x4(%ebp),%eax
410b56:	c7 00 03 00 00 00    	movl   $0x3,(%eax)
410b5c:	89 70 08             	mov    %esi,0x8(%eax)
410b5f:	8b 43 50             	mov    0x50(%ebx),%eax
410b62:	48                   	dec    %eax
410b63:	83 7d f8 01          	cmpl   $0x1,-0x8(%ebp)
410b67:	89 45 08             	mov    %eax,0x8(%ebp)
410b6a:	75 1f                	jne    0x410b8b
410b6c:	8d 45 fc             	lea    -0x4(%ebp),%eax
410b6f:	50                   	push   %eax
410b70:	53                   	push   %ebx
410b71:	e8 46 07 00 00       	call   0x4112bc
410b76:	8b f8                	mov    %eax,%edi
410b78:	85 ff                	test   %edi,%edi
410b7a:	78 b1                	js     0x410b2d
410b7c:	8b 45 fc             	mov    -0x4(%ebp),%eax
410b7f:	c7 00 05 00 00 00    	movl   $0x5,(%eax)
410b85:	89 70 08             	mov    %esi,0x8(%eax)
410b88:	8b 45 08             	mov    0x8(%ebp),%eax
410b8b:	33 ff                	xor    %edi,%edi
410b8d:	89 7d f8             	mov    %edi,-0x8(%ebp)
410b90:	39 be 80 00 00 00    	cmp    %edi,0x80(%esi)
410b96:	77 1d                	ja     0x410bb5
410b98:	8d 45 fc             	lea    -0x4(%ebp),%eax
410b9b:	50                   	push   %eax
410b9c:	53                   	push   %ebx
410b9d:	e8 51 03 00 00       	call   0x410ef3
410ba2:	8b f8                	mov    %eax,%edi
410ba4:	85 ff                	test   %edi,%edi
410ba6:	79 6a                	jns    0x410c12
410ba8:	68 80 2a 45 00       	push   $0x452a80
410bad:	e9 46 ff ff ff       	jmp    0x410af8
410bb2:	8b 45 08             	mov    0x8(%ebp),%eax
410bb5:	8b 4e 7c             	mov    0x7c(%esi),%ecx
410bb8:	6a 00                	push   $0x0
410bba:	89 4d f4             	mov    %ecx,-0xc(%ebp)
410bbd:	ff 74 f9 04          	push   0x4(%ecx,%edi,8)
410bc1:	ff 34 f9             	push   (%ecx,%edi,8)
410bc4:	50                   	push   %eax
410bc5:	56                   	push   %esi
410bc6:	53                   	push   %ebx
410bc7:	e8 6e 03 00 00       	call   0x410f3a
410bcc:	8b f8                	mov    %eax,%edi
410bce:	85 ff                	test   %edi,%edi
410bd0:	78 36                	js     0x410c08
410bd2:	6b 75 08 28          	imul   $0x28,0x8(%ebp),%esi
410bd6:	8b 43 4c             	mov    0x4c(%ebx),%eax
410bd9:	8b 7d f8             	mov    -0x8(%ebp),%edi
410bdc:	8b 4d f4             	mov    -0xc(%ebp),%ecx
410bdf:	ff 44 06 0c          	incl   0xc(%esi,%eax,1)
410be3:	8b 0c f9             	mov    (%ecx,%edi,8),%ecx
410be6:	8b 53 4c             	mov    0x4c(%ebx),%edx
410be9:	8b 41 10             	mov    0x10(%ecx),%eax
410bec:	01 44 16 10          	add    %eax,0x10(%esi,%edx,1)
410bf0:	8b 41 14             	mov    0x14(%ecx),%eax
410bf3:	11 44 16 14          	adc    %eax,0x14(%esi,%edx,1)
410bf7:	47                   	inc    %edi
410bf8:	8b 75 0c             	mov    0xc(%ebp),%esi
410bfb:	89 7d f8             	mov    %edi,-0x8(%ebp)
410bfe:	3b be 80 00 00 00    	cmp    0x80(%esi),%edi
410c04:	72 ac                	jb     0x410bb2
410c06:	eb 90                	jmp    0x410b98
410c08:	68 e8 33 45 00       	push   $0x4533e8
410c0d:	e9 e6 fe ff ff       	jmp    0x410af8
410c12:	8b 45 fc             	mov    -0x4(%ebp),%eax
410c15:	6b 4d 08 28          	imul   $0x28,0x8(%ebp),%ecx
410c19:	c7 00 04 00 00 00    	movl   $0x4,(%eax)
410c1f:	89 70 08             	mov    %esi,0x8(%eax)
410c22:	8b 43 4c             	mov    0x4c(%ebx),%eax
410c25:	8b 53 50             	mov    0x50(%ebx),%edx
410c28:	4a                   	dec    %edx
410c29:	89 54 01 18          	mov    %edx,0x18(%ecx,%eax,1)
410c2d:	8d 45 fc             	lea    -0x4(%ebp),%eax
410c30:	50                   	push   %eax
410c31:	53                   	push   %ebx
410c32:	e8 bc 02 00 00       	call   0x410ef3
410c37:	8b f8                	mov    %eax,%edi
410c39:	85 ff                	test   %edi,%edi
410c3b:	0f 88 67 ff ff ff    	js     0x410ba8
410c41:	8b 75 fc             	mov    -0x4(%ebp),%esi
410c44:	33 c0                	xor    %eax,%eax
410c46:	50                   	push   %eax
410c47:	50                   	push   %eax
410c48:	6a 01                	push   $0x1
410c4a:	50                   	push   %eax
410c4b:	c7 06 06 00 00 00    	movl   $0x6,(%esi)
410c51:	ff 15 00 b2 44 00    	call   *0x44b200
410c57:	89 46 08             	mov    %eax,0x8(%esi)
410c5a:	85 c0                	test   %eax,%eax
410c5c:	75 38                	jne    0x410c96
410c5e:	ff 15 e8 b0 44 00    	call   *0x44b0e8
410c64:	0f b7 f8             	movzwl %ax,%edi
410c67:	81 cf 00 00 07 80    	or     $0x80070000,%edi
410c6d:	85 c0                	test   %eax,%eax
410c6f:	0f 4e f8             	cmovle %eax,%edi
410c72:	b8 05 40 00 80       	mov    $0x80004005,%eax
410c77:	85 ff                	test   %edi,%edi
410c79:	0f 49 f8             	cmovns %eax,%edi
410c7c:	57                   	push   %edi
410c7d:	68 60 08 00 00       	push   $0x860
410c82:	68 b8 28 45 00       	push   $0x4528b8
410c87:	e8 47 2b ff ff       	call   0x4037d3
410c8c:	68 10 34 45 00       	push   $0x453410
410c91:	e9 62 fe ff ff       	jmp    0x410af8
410c96:	8b 4d 10             	mov    0x10(%ebp),%ecx
410c99:	89 01                	mov    %eax,(%ecx)
410c9b:	33 c0                	xor    %eax,%eax
410c9d:	8b 4d 0c             	mov    0xc(%ebp),%ecx
410ca0:	ff 43 34             	incl   0x34(%ebx)
410ca3:	83 79 44 02          	cmpl   $0x2,0x44(%ecx)
410ca7:	0f 95 c0             	setne  %al
410caa:	89 41 54             	mov    %eax,0x54(%ecx)
410cad:	8b c7                	mov    %edi,%eax
410caf:	5f                   	pop    %edi
410cb0:	5e                   	pop    %esi
410cb1:	5b                   	pop    %ebx
410cb2:	8b e5                	mov    %ebp,%esp
410cb4:	5d                   	pop    %ebp
410cb5:	c2 0c 00             	ret    $0xc
410cb8:	55                   	push   %ebp
410cb9:	8b ec                	mov    %esp,%ebp
410cbb:	51                   	push   %ecx
410cbc:	53                   	push   %ebx
410cbd:	8b 5d 0c             	mov    0xc(%ebp),%ebx
410cc0:	56                   	push   %esi
410cc1:	33 f6                	xor    %esi,%esi
410cc3:	57                   	push   %edi
410cc4:	8b fe                	mov    %esi,%edi
410cc6:	39 b3 d4 00 00 00    	cmp    %esi,0xd4(%ebx)
410ccc:	76 3d                	jbe    0x410d0b
410cce:	8b 83 cc 00 00 00    	mov    0xcc(%ebx),%eax
410cd4:	8d 4d fc             	lea    -0x4(%ebp),%ecx
410cd7:	51                   	push   %ecx
410cd8:	8b 04 b8             	mov    (%eax,%edi,4),%eax
410cdb:	50                   	push   %eax
410cdc:	ff 75 08             	push   0x8(%ebp)
410cdf:	89 45 0c             	mov    %eax,0xc(%ebp)
410ce2:	e8 c7 fd ff ff       	call   0x410aae
410ce7:	8b f0                	mov    %eax,%esi
410ce9:	85 f6                	test   %esi,%esi
410ceb:	78 0b                	js     0x410cf8
410ced:	47                   	inc    %edi
410cee:	3b bb d4 00 00 00    	cmp    0xd4(%ebx),%edi
410cf4:	72 d8                	jb     0x410cce
410cf6:	eb 13                	jmp    0x410d0b
410cf8:	8b 45 0c             	mov    0xc(%ebp),%eax
410cfb:	ff 30                	push   (%eax)
410cfd:	68 34 34 45 00       	push   $0x453434
410d02:	56                   	push   %esi
410d03:	e8 27 f4 02 00       	call   0x44012f
410d08:	83 c4 0c             	add    $0xc,%esp
410d0b:	5f                   	pop    %edi
410d0c:	8b c6                	mov    %esi,%eax
410d0e:	5e                   	pop    %esi
410d0f:	5b                   	pop    %ebx
410d10:	8b e5                	mov    %ebp,%esp
410d12:	5d                   	pop    %ebp
410d13:	c2 08 00             	ret    $0x8
410d16:	55                   	push   %ebp
410d17:	8b ec                	mov    %esp,%ebp
410d19:	53                   	push   %ebx
410d1a:	56                   	push   %esi
410d1b:	8b 75 08             	mov    0x8(%ebp),%esi
410d1e:	57                   	push   %edi
410d1f:	6a 05                	push   $0x5