40ca83:	57                   	push   %edi
40ca84:	8b cb                	mov    %ebx,%ecx
40ca86:	e8 0c 68 ff ff       	call   0x403297
40ca8b:	8b ce                	mov    %esi,%ecx
40ca8d:	e8 7d 0c 00 00       	call   0x40d70f
40ca92:	bf 14 7d 41 00       	mov    $0x417d14,%edi
40ca97:	56                   	push   %esi
40ca98:	8b cf                	mov    %edi,%ecx
40ca9a:	e8 c5 67 ff ff       	call   0x403264
40ca9f:	68 d0 35 41 00       	push   $0x4135d0
40caa4:	8b cf                	mov    %edi,%ecx
40caa6:	e8 ec 67 ff ff       	call   0x403297
40caab:	bf ec 35 41 00       	mov    $0x4135ec,%edi
40cab0:	8b ce                	mov    %esi,%ecx
40cab2:	57                   	push   %edi
40cab3:	e8 df 67 ff ff       	call   0x403297
40cab8:	57                   	push   %edi
40cab9:	8b cb                	mov    %ebx,%ecx
40cabb:	e8 d7 67 ff ff       	call   0x403297
40cac0:	5f                   	pop    %edi
40cac1:	5e                   	pop    %esi
40cac2:	b8 d8 7c 41 00       	mov    $0x417cd8,%eax
40cac7:	5b                   	pop    %ebx
40cac8:	c9                   	leave
40cac9:	c3                   	ret
40caca:	55                   	push   %ebp
40cacb:	8b ec                	mov    %esp,%ebp
40cacd:	83 ec 54             	sub    $0x54,%esp
40cad0:	56                   	push   %esi
40cad1:	6a 44                	push   $0x44
40cad3:	33 f6                	xor    %esi,%esi
40cad5:	8d 45 ac             	lea    -0x54(%ebp),%eax
40cad8:	56                   	push   %esi
40cad9:	50                   	push   %eax
40cada:	e8 73 45 ff ff       	call   0x401052
40cadf:	8b 45 0c             	mov    0xc(%ebp),%eax
40cae2:	83 c4 0c             	add    $0xc,%esp
40cae5:	89 45 e8             	mov    %eax,-0x18(%ebp)
40cae8:	8b 45 10             	mov    0x10(%ebp),%eax
40caeb:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40caee:	8b 45 14             	mov    0x14(%ebp),%eax
40caf1:	89 45 ec             	mov    %eax,-0x14(%ebp)
40caf4:	33 c0                	xor    %eax,%eax
40caf6:	66 89 45 dc          	mov    %ax,-0x24(%ebp)
40cafa:	8d 45 f0             	lea    -0x10(%ebp),%eax
40cafd:	50                   	push   %eax
40cafe:	8d 45 ac             	lea    -0x54(%ebp),%eax
40cb01:	c7 45 ac 44 00 00 00 	movl   $0x44,-0x54(%ebp)
40cb08:	50                   	push   %eax
40cb09:	56                   	push   %esi
40cb0a:	56                   	push   %esi
40cb0b:	6a 10                	push   $0x10
40cb0d:	6a 01                	push   $0x1
40cb0f:	56                   	push   %esi
40cb10:	56                   	push   %esi
40cb11:	56                   	push   %esi
40cb12:	ff 75 08             	push   0x8(%ebp)
40cb15:	c7 45 d8 01 01 00 00 	movl   $0x101,-0x28(%ebp)
40cb1c:	ff 15 00 21 41 00    	call   *0x412100
40cb22:	85 c0                	test   %eax,%eax
40cb24:	74 09                	je     0x40cb2f
40cb26:	8b 45 f0             	mov    -0x10(%ebp),%eax
40cb29:	46                   	inc    %esi
40cb2a:	a3 54 65 41 00       	mov    %eax,0x416554
40cb2f:	8b 4d 08             	mov    0x8(%ebp),%ecx
40cb32:	e8 f6 8e ff ff       	call   0x405a2d
40cb37:	8b c6                	mov    %esi,%eax
40cb39:	5e                   	pop    %esi
40cb3a:	c9                   	leave
40cb3b:	c2 10 00             	ret    $0x10
40cb3e:	55                   	push   %ebp
40cb3f:	8b ec                	mov    %esp,%ebp
40cb41:	8b 4d 08             	mov    0x8(%ebp),%ecx
40cb44:	e8 e4 8e ff ff       	call   0x405a2d
40cb49:	5d                   	pop    %ebp
40cb4a:	c2 04 00             	ret    $0x4
40cb4d:	55                   	push   %ebp
40cb4e:	8b ec                	mov    %esp,%ebp
40cb50:	8b 4d 08             	mov    0x8(%ebp),%ecx
40cb53:	e8 d5 8e ff ff       	call   0x405a2d
40cb58:	5d                   	pop    %ebp
40cb59:	c2 04 00             	ret    $0x4
40cb5c:	c7 01 b4 3b 41 00    	movl   $0x413bb4,(%ecx)
40cb62:	c3                   	ret
40cb63:	55                   	push   %ebp
40cb64:	8b ec                	mov    %esp,%ebp
40cb66:	83 e4 f8             	and    $0xfffffff8,%esp
40cb69:	51                   	push   %ecx
40cb6a:	51                   	push   %ecx
40cb6b:	56                   	push   %esi
40cb6c:	57                   	push   %edi
40cb6d:	8b 7d 08             	mov    0x8(%ebp),%edi
40cb70:	8b 47 04             	mov    0x4(%edi),%eax
40cb73:	89 44 24 08          	mov    %eax,0x8(%esp)
40cb77:	8b 47 10             	mov    0x10(%edi),%eax
40cb7a:	89 44 24 0c          	mov    %eax,0xc(%esp)
40cb7e:	eb 1b                	jmp    0x40cb9b
40cb80:	ff 77 1c             	push   0x1c(%edi)
40cb83:	8d 44 24 0c          	lea    0xc(%esp),%eax
40cb87:	6a 00                	push   $0x0
40cb89:	50                   	push   %eax
40cb8a:	6a 02                	push   $0x2
40cb8c:	ff 15 ec 20 41 00    	call   *0x4120ec
40cb92:	85 c0                	test   %eax,%eax
40cb94:	74 19                	je     0x40cbaf
40cb96:	83 f8 01             	cmp    $0x1,%eax
40cb99:	74 0f                	je     0x40cbaa
40cb9b:	8b cf                	mov    %edi,%ecx
40cb9d:	e8 2d 00 00 00       	call   0x40cbcf
40cba2:	8b f0                	mov    %eax,%esi
40cba4:	85 f6                	test   %esi,%esi
40cba6:	7f d8                	jg     0x40cb80
40cba8:	eb 14                	jmp    0x40cbbe
40cbaa:	33 f6                	xor    %esi,%esi
40cbac:	46                   	inc    %esi
40cbad:	eb 0f                	jmp    0x40cbbe
40cbaf:	8b cf                	mov    %edi,%ecx
40cbb1:	e8 19 00 00 00       	call   0x40cbcf
40cbb6:	8b f0                	mov    %eax,%esi
40cbb8:	85 f6                	test   %esi,%esi
40cbba:	7e 02                	jle    0x40cbbe
40cbbc:	33 f6                	xor    %esi,%esi
40cbbe:	8b cf                	mov    %edi,%ecx
40cbc0:	e8 f5 00 00 00       	call   0x40ccba
40cbc5:	5f                   	pop    %edi
40cbc6:	8b c6                	mov    %esi,%eax
40cbc8:	5e                   	pop    %esi
40cbc9:	8b e5                	mov    %ebp,%esp
40cbcb:	5d                   	pop    %ebp
40cbcc:	c2 04 00             	ret    $0x4
40cbcf:	55                   	push   %ebp
40cbd0:	8b ec                	mov    %esp,%ebp
40cbd2:	83 ec 18             	sub    $0x18,%esp
40cbd5:	53                   	push   %ebx
40cbd6:	56                   	push   %esi
40cbd7:	8b f1                	mov    %ecx,%esi
40cbd9:	33 db                	xor    %ebx,%ebx
40cbdb:	e9 9c 00 00 00       	jmp    0x40cc7c
40cbe0:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40cbe3:	85 c9                	test   %ecx,%ecx
40cbe5:	0f 84 c4 00 00 00    	je     0x40ccaf
40cbeb:	41                   	inc    %ecx
40cbec:	e8 ea 8e ff ff       	call   0x405adb
40cbf1:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
40cbf5:	8b d8                	mov    %eax,%ebx
40cbf7:	6a 00                	push   $0x0
40cbf9:	8d 45 f8             	lea    -0x8(%ebp),%eax
40cbfc:	50                   	push   %eax
40cbfd:	ff 75 fc             	push   -0x4(%ebp)
40cc00:	53                   	push   %ebx
40cc01:	ff 76 08             	push   0x8(%esi)
40cc04:	ff 15 a8 20 41 00    	call   *0x4120a8
40cc0a:	85 c0                	test   %eax,%eax
40cc0c:	0f 84 86 00 00 00    	je     0x40cc98
40cc12:	8b 45 f8             	mov    -0x8(%ebp),%eax
40cc15:	33 c9                	xor    %ecx,%ecx
40cc17:	89 4d e8             	mov    %ecx,-0x18(%ebp)
40cc1a:	89 4d ec             	mov    %ecx,-0x14(%ebp)
40cc1d:	88 0c 18             	mov    %cl,(%eax,%ebx,1)
40cc20:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40cc23:	ff 75 f8             	push   -0x8(%ebp)
40cc26:	53                   	push   %ebx
40cc27:	e8 95 61 ff ff       	call   0x402dc1
40cc2c:	8d 45 f0             	lea    -0x10(%ebp),%eax
40cc2f:	50                   	push   %eax
40cc30:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40cc33:	e8 d0 60 ff ff       	call   0x402d08
40cc38:	8d 45 f4             	lea    -0xc(%ebp),%eax
40cc3b:	50                   	push   %eax
40cc3c:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40cc3f:	e8 15 61 ff ff       	call   0x402d59
40cc44:	8d 4d f4             	lea    -0xc(%ebp),%ecx
40cc47:	e8 6d 62 ff ff       	call   0x402eb9
40cc4c:	51                   	push   %ecx
40cc4d:	8d 45 f4             	lea    -0xc(%ebp),%eax
40cc50:	8b cc                	mov    %esp,%ecx
40cc52:	50                   	push   %eax
40cc53:	e8 ca 65 ff ff       	call   0x403222
40cc58:	8b 06                	mov    (%esi),%eax
40cc5a:	8b ce                	mov    %esi,%ecx
40cc5c:	ff 50 04             	call   *0x4(%eax)
40cc5f:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40cc62:	e8 c6 8d ff ff       	call   0x405a2d
40cc67:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40cc6a:	e8 be 8d ff ff       	call   0x405a2d
40cc6f:	33 db                	xor    %ebx,%ebx
40cc71:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40cc74:	89 5d f0             	mov    %ebx,-0x10(%ebp)
40cc77:	e8 ea 61 ff ff       	call   0x402e66
40cc7c:	53                   	push   %ebx
40cc7d:	8d 45 fc             	lea    -0x4(%ebp),%eax
40cc80:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40cc83:	50                   	push   %eax
40cc84:	53                   	push   %ebx
40cc85:	53                   	push   %ebx
40cc86:	53                   	push   %ebx
40cc87:	ff 76 08             	push   0x8(%esi)
40cc8a:	ff 15 f4 20 41 00    	call   *0x4120f4
40cc90:	85 c0                	test   %eax,%eax
40cc92:	0f 85 48 ff ff ff    	jne    0x40cbe0
40cc98:	ff 15 0c 22 41 00    	call   *0x41220c
40cc9e:	83 f8 6d             	cmp    $0x6d,%eax
40cca1:	74 11                	je     0x40ccb4
40cca3:	3d e8 00 00 00       	cmp    $0xe8,%eax
40cca8:	74 0a                	je     0x40ccb4
40ccaa:	83 c8 ff             	or     $0xffffffff,%eax
40ccad:	eb 07                	jmp    0x40ccb6
40ccaf:	33 c0                	xor    %eax,%eax
40ccb1:	40                   	inc    %eax
40ccb2:	eb 02                	jmp    0x40ccb6
40ccb4:	33 c0                	xor    %eax,%eax
40ccb6:	5e                   	pop    %esi
40ccb7:	5b                   	pop    %ebx
40ccb8:	c9                   	leave
40ccb9:	c3                   	ret
40ccba:	56                   	push   %esi
40ccbb:	8b f1                	mov    %ecx,%esi
40ccbd:	57                   	push   %edi
40ccbe:	8d 7e 14             	lea    0x14(%esi),%edi
40ccc1:	83 3f 00             	cmpl   $0x0,(%edi)
40ccc4:	74 3f                	je     0x40cd05
40ccc6:	ff 15 a0 20 41 00    	call   *0x4120a0
40cccc:	3b 46 18             	cmp    0x18(%esi),%eax
40cccf:	74 2d                	je     0x40ccfe
40ccd1:	83 7e 10 00          	cmpl   $0x0,0x10(%esi)
40ccd5:	74 52                	je     0x40cd29
40ccd7:	ff 76 10             	push   0x10(%esi)
40ccda:	ff 15 fc 20 41 00    	call   *0x4120fc
40cce0:	68 88 13 00 00       	push   $0x1388
40cce5:	ff 37                	push   (%edi)
40cce7:	ff 15 e4 20 41 00    	call   *0x4120e4
40cced:	3d 02 01 00 00       	cmp    $0x102,%eax
40ccf2:	75 0a                	jne    0x40ccfe
40ccf4:	6a fe                	push   $0xfffffffe
40ccf6:	ff 37                	push   (%edi)
40ccf8:	ff 15 88 20 41 00    	call   *0x412088
40ccfe:	8b cf                	mov    %edi,%ecx
40cd00:	e8 b8 01 00 00       	call   0x40cebd
40cd05:	8d 4e 10             	lea    0x10(%esi),%ecx
40cd08:	e8 b0 01 00 00       	call   0x40cebd
40cd0d:	8d 4e 04             	lea    0x4(%esi),%ecx
40cd10:	e8 a8 01 00 00       	call   0x40cebd
40cd15:	8d 4e 0c             	lea    0xc(%esi),%ecx
40cd18:	e8 a0 01 00 00       	call   0x40cebd
40cd1d:	8d 4e 08             	lea    0x8(%esi),%ecx
40cd20:	e8 98 01 00 00       	call   0x40cebd
40cd25:	83 66 18 00          	andl   $0x0,0x18(%esi)
40cd29:	5f                   	pop    %edi
40cd2a:	5e                   	pop    %esi
40cd2b:	c3                   	ret
40cd2c:	55                   	push   %ebp
40cd2d:	8b ec                	mov    %esp,%ebp
40cd2f:	83 ec 20             	sub    $0x20,%esp
40cd32:	53                   	push   %ebx
40cd33:	56                   	push   %esi
40cd34:	57                   	push   %edi
40cd35:	b9 50 65 41 00       	mov    $0x416550,%ecx
40cd3a:	e8 7b ff ff ff       	call   0x40ccba
40cd3f:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
40cd43:	8d 45 e0             	lea    -0x20(%ebp),%eax
40cd46:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
40cd4a:	33 f6                	xor    %esi,%esi
40cd4c:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40cd50:	46                   	inc    %esi
40cd51:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
40cd55:	83 65 ec 00          	andl   $0x0,-0x14(%ebp)
40cd59:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
40cd5d:	6a 00                	push   $0x0
40cd5f:	50                   	push   %eax
40cd60:	8d 45 fc             	lea    -0x4(%ebp),%eax
40cd63:	c7 45 e0 0c 00 00 00 	movl   $0xc,-0x20(%ebp)
40cd6a:	50                   	push   %eax
40cd6b:	8d 45 f8             	lea    -0x8(%ebp),%eax
40cd6e:	89 75 e8             	mov    %esi,-0x18(%ebp)
40cd71:	50                   	push   %eax
40cd72:	ff 15 f0 20 41 00    	call   *0x4120f0
40cd78:	85 c0                	test   %eax,%eax
40cd7a:	0f 84 f8 00 00 00    	je     0x40ce78
40cd80:	8b 3d e8 20 41 00    	mov    0x4120e8,%edi
40cd86:	8d 45 f4             	lea    -0xc(%ebp),%eax
40cd89:	6a 02                	push   $0x2
40cd8b:	56                   	push   %esi
40cd8c:	6a 00                	push   $0x0
40cd8e:	50                   	push   %eax
40cd8f:	ff d7                	call   *%edi
40cd91:	50                   	push   %eax
40cd92:	ff 75 fc             	push   -0x4(%ebp)
40cd95:	ff d7                	call   *%edi
40cd97:	8b 1d f8 20 41 00    	mov    0x4120f8,%ebx
40cd9d:	50                   	push   %eax
40cd9e:	ff d3                	call   *%ebx
40cda0:	85 c0                	test   %eax,%eax
40cda2:	0f 84 d0 00 00 00    	je     0x40ce78
40cda8:	6a 00                	push   $0x0
40cdaa:	8d 45 e0             	lea    -0x20(%ebp),%eax
40cdad:	50                   	push   %eax
40cdae:	8d 45 f0             	lea    -0x10(%ebp),%eax
40cdb1:	50                   	push   %eax
40cdb2:	8d 45 ec             	lea    -0x14(%ebp),%eax
40cdb5:	50                   	push   %eax
40cdb6:	ff 15 f0 20 41 00    	call   *0x4120f0
40cdbc:	85 c0                	test   %eax,%eax
40cdbe:	0f 84 b4 00 00 00    	je     0x40ce78
40cdc4:	6a 02                	push   $0x2
40cdc6:	6a 00                	push   $0x0
40cdc8:	6a 00                	push   $0x0
40cdca:	68 58 65 41 00       	push   $0x416558
40cdcf:	ff d7                	call   *%edi
40cdd1:	50                   	push   %eax
40cdd2:	ff 75 f8             	push   -0x8(%ebp)
40cdd5:	ff d7                	call   *%edi
40cdd7:	50                   	push   %eax
40cdd8:	ff d3                	call   *%ebx
40cdda:	85 c0                	test   %eax,%eax
40cddc:	0f 84 96 00 00 00    	je     0x40ce78
40cde2:	6a 02                	push   $0x2
40cde4:	6a 00                	push   $0x0
40cde6:	6a 00                	push   $0x0
40cde8:	68 5c 65 41 00       	push   $0x41655c
40cded:	ff d7                	call   *%edi
40cdef:	50                   	push   %eax
40cdf0:	ff 75 f0             	push   -0x10(%ebp)
40cdf3:	ff d7                	call   *%edi
40cdf5:	50                   	push   %eax
40cdf6:	ff d3                	call   *%ebx
40cdf8:	85 c0                	test   %eax,%eax
40cdfa:	74 7c                	je     0x40ce78
40cdfc:	8d 4d f8             	lea    -0x8(%ebp),%ecx
40cdff:	e8 b9 00 00 00       	call   0x40cebd
40ce04:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40ce07:	e8 b1 00 00 00       	call   0x40cebd
40ce0c:	ff 75 f4             	push   -0xc(%ebp)
40ce0f:	8d 45 08             	lea    0x8(%ebp),%eax
40ce12:	ff 75 ec             	push   -0x14(%ebp)
40ce15:	ff 75 fc             	push   -0x4(%ebp)
40ce18:	51                   	push   %ecx
40ce19:	8b cc                	mov    %esp,%ecx
40ce1b:	50                   	push   %eax
40ce1c:	e8 39 66 ff ff       	call   0x40345a
40ce21:	e8 a4 fc ff ff       	call   0x40caca
40ce26:	85 c0                	test   %eax,%eax
40ce28:	74 4e                	je     0x40ce78
40ce2a:	8d 4d fc             	lea    -0x4(%ebp),%ecx
40ce2d:	e8 8b 00 00 00       	call   0x40cebd
40ce32:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40ce35:	e8 83 00 00 00       	call   0x40cebd
40ce3a:	8d 4d f4             	lea    -0xc(%ebp),%ecx
40ce3d:	e8 7b 00 00 00       	call   0x40cebd
40ce42:	6a 00                	push   $0x0
40ce44:	6a 00                	push   $0x0