40bd22:	ff 75 fc             	push   -0x4(%ebp)
40bd25:	e8 c5 97 03 00       	call   0x4454ef
40bd2a:	8b 3d d4 b0 44 00    	mov    0x44b0d4,%edi
40bd30:	39 5d e0             	cmp    %ebx,-0x20(%ebp)
40bd33:	74 08                	je     0x40bd3d
40bd35:	ff 75 e0             	push   -0x20(%ebp)
40bd38:	ff d7                	call   *%edi
40bd3a:	89 5d e0             	mov    %ebx,-0x20(%ebp)
40bd3d:	39 5d dc             	cmp    %ebx,-0x24(%ebp)
40bd40:	74 05                	je     0x40bd47
40bd42:	ff 75 dc             	push   -0x24(%ebp)
40bd45:	ff d7                	call   *%edi
40bd47:	5f                   	pop    %edi
40bd48:	8b c6                	mov    %esi,%eax
40bd4a:	5e                   	pop    %esi
40bd4b:	5b                   	pop    %ebx
40bd4c:	8b e5                	mov    %ebp,%esp
40bd4e:	5d                   	pop    %ebp
40bd4f:	c2 0c 00             	ret    $0xc
40bd52:	55                   	push   %ebp
40bd53:	8b ec                	mov    %esp,%ebp
40bd55:	83 ec 0c             	sub    $0xc,%esp
40bd58:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
40bd5c:	8d 45 f4             	lea    -0xc(%ebp),%eax
40bd5f:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40bd63:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
40bd67:	56                   	push   %esi
40bd68:	50                   	push   %eax
40bd69:	68 34 f2 44 00       	push   $0x44f234
40bd6e:	ff 75 0c             	push   0xc(%ebp)
40bd71:	e8 8d 7a 03 00       	call   0x443803
40bd76:	8b f0                	mov    %eax,%esi
40bd78:	85 f6                	test   %esi,%esi
40bd7a:	79 12                	jns    0x40bd8e
40bd7c:	68 64 f2 44 00       	push   $0x44f264
40bd81:	56                   	push   %esi
40bd82:	e8 a8 43 03 00       	call   0x44012f
40bd87:	59                   	pop    %ecx
40bd88:	59                   	pop    %ecx
40bd89:	e9 49 01 00 00       	jmp    0x40bed7
40bd8e:	8b 45 f4             	mov    -0xc(%ebp),%eax
40bd91:	8d 55 f8             	lea    -0x8(%ebp),%edx
40bd94:	52                   	push   %edx
40bd95:	50                   	push   %eax
40bd96:	8b 08                	mov    (%eax),%ecx
40bd98:	ff 51 20             	call   *0x20(%ecx)
40bd9b:	8b f0                	mov    %eax,%esi
40bd9d:	85 f6                	test   %esi,%esi
40bd9f:	79 07                	jns    0x40bda8
40bda1:	68 8c f2 44 00       	push   $0x44f28c
40bda6:	eb d9                	jmp    0x40bd81
40bda8:	8b 45 f8             	mov    -0x8(%ebp),%eax
40bdab:	85 c0                	test   %eax,%eax
40bdad:	0f 84 24 01 00 00    	je     0x40bed7
40bdb3:	6a 01                	push   $0x1
40bdb5:	c1 e0 04             	shl    $0x4,%eax
40bdb8:	50                   	push   %eax
40bdb9:	e8 16 7b ff ff       	call   0x4038d4
40bdbe:	8b 4d 08             	mov    0x8(%ebp),%ecx
40bdc1:	89 01                	mov    %eax,(%ecx)
40bdc3:	85 c0                	test   %eax,%eax
40bdc5:	75 19                	jne    0x40bde0
40bdc7:	be 0e 00 07 80       	mov    $0x8007000e,%esi
40bdcc:	56                   	push   %esi
40bdcd:	6a 22                	push   $0x22
40bdcf:	68 b4 f2 44 00       	push   $0x44f2b4
40bdd4:	e8 fa 79 ff ff       	call   0x4037d3
40bdd9:	68 c4 f2 44 00       	push   $0x44f2c4
40bdde:	eb a1                	jmp    0x40bd81
40bde0:	8b 45 f8             	mov    -0x8(%ebp),%eax
40bde3:	53                   	push   %ebx
40bde4:	33 db                	xor    %ebx,%ebx
40bde6:	89 41 04             	mov    %eax,0x4(%ecx)
40bde9:	57                   	push   %edi
40bdea:	85 c0                	test   %eax,%eax
40bdec:	0f 84 e1 00 00 00    	je     0x40bed3
40bdf2:	33 c0                	xor    %eax,%eax
40bdf4:	89 45 0c             	mov    %eax,0xc(%ebp)
40bdf7:	8b 39                	mov    (%ecx),%edi
40bdf9:	03 f8                	add    %eax,%edi
40bdfb:	8d 45 fc             	lea    -0x4(%ebp),%eax
40bdfe:	6a 00                	push   $0x0
40be00:	50                   	push   %eax
40be01:	ff 75 f4             	push   -0xc(%ebp)
40be04:	e8 57 79 03 00       	call   0x443760
40be09:	8b f0                	mov    %eax,%esi
40be0b:	85 f6                	test   %esi,%esi
40be0d:	0f 88 b1 00 00 00    	js     0x40bec4
40be13:	57                   	push   %edi
40be14:	68 64 ca 44 00       	push   $0x44ca64
40be19:	ff 75 fc             	push   -0x4(%ebp)
40be1c:	e8 a6 73 03 00       	call   0x4431c7
40be21:	8b f0                	mov    %eax,%esi
40be23:	85 f6                	test   %esi,%esi
40be25:	0f 88 92 00 00 00    	js     0x40bebd
40be2b:	8d 47 04             	lea    0x4(%edi),%eax
40be2e:	50                   	push   %eax
40be2f:	68 40 e3 44 00       	push   $0x44e340
40be34:	ff 75 fc             	push   -0x4(%ebp)
40be37:	e8 8b 73 03 00       	call   0x4431c7
40be3c:	8b f0                	mov    %eax,%esi
40be3e:	85 f6                	test   %esi,%esi
40be40:	78 74                	js     0x40beb6
40be42:	8d 47 08             	lea    0x8(%edi),%eax
40be45:	50                   	push   %eax
40be46:	68 0c f3 44 00       	push   $0x44f30c
40be4b:	ff 75 fc             	push   -0x4(%ebp)
40be4e:	e8 74 73 03 00       	call   0x4431c7
40be53:	8b f0                	mov    %eax,%esi
40be55:	81 fe 90 04 07 80    	cmp    $0x80070490,%esi
40be5b:	74 04                	je     0x40be61
40be5d:	85 f6                	test   %esi,%esi
40be5f:	78 47                	js     0x40bea8
40be61:	8d 47 0c             	lea    0xc(%edi),%eax
40be64:	50                   	push   %eax
40be65:	68 88 e3 44 00       	push   $0x44e388
40be6a:	ff 75 fc             	push   -0x4(%ebp)
40be6d:	e8 69 75 03 00       	call   0x4433db
40be72:	8b f0                	mov    %eax,%esi
40be74:	81 fe 90 04 07 80    	cmp    $0x80070490,%esi
40be7a:	74 04                	je     0x40be80
40be7c:	85 f6                	test   %esi,%esi
40be7e:	78 2f                	js     0x40beaf
40be80:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40be83:	85 c9                	test   %ecx,%ecx
40be85:	74 0a                	je     0x40be91
40be87:	8b 01                	mov    (%ecx),%eax
40be89:	51                   	push   %ecx
40be8a:	ff 50 08             	call   *0x8(%eax)
40be8d:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40be91:	8b 45 0c             	mov    0xc(%ebp),%eax
40be94:	43                   	inc    %ebx
40be95:	83 c0 10             	add    $0x10,%eax
40be98:	89 45 0c             	mov    %eax,0xc(%ebp)
40be9b:	3b 5d f8             	cmp    -0x8(%ebp),%ebx
40be9e:	73 33                	jae    0x40bed3
40bea0:	8b 4d 08             	mov    0x8(%ebp),%ecx
40bea3:	e9 4f ff ff ff       	jmp    0x40bdf7
40bea8:	68 20 f3 44 00       	push   $0x44f320
40bead:	eb 1a                	jmp    0x40bec9
40beaf:	68 3c f3 44 00       	push   $0x44f33c
40beb4:	eb 13                	jmp    0x40bec9
40beb6:	68 f8 f2 44 00       	push   $0x44f2f8
40bebb:	eb 0c                	jmp    0x40bec9
40bebd:	68 6c ca 44 00       	push   $0x44ca6c
40bec2:	eb 05                	jmp    0x40bec9
40bec4:	68 48 ca 44 00       	push   $0x44ca48
40bec9:	56                   	push   %esi
40beca:	e8 60 42 03 00       	call   0x44012f
40becf:	59                   	pop    %ecx
40bed0:	59                   	pop    %ecx
40bed1:	eb 02                	jmp    0x40bed5
40bed3:	33 f6                	xor    %esi,%esi
40bed5:	5f                   	pop    %edi
40bed6:	5b                   	pop    %ebx
40bed7:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40beda:	85 c9                	test   %ecx,%ecx
40bedc:	74 06                	je     0x40bee4
40bede:	8b 01                	mov    (%ecx),%eax
40bee0:	51                   	push   %ecx
40bee1:	ff 50 08             	call   *0x8(%eax)
40bee4:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40bee7:	85 c9                	test   %ecx,%ecx
40bee9:	74 06                	je     0x40bef1
40beeb:	8b 01                	mov    (%ecx),%eax
40beed:	51                   	push   %ecx
40beee:	ff 50 08             	call   *0x8(%eax)
40bef1:	8b c6                	mov    %esi,%eax
40bef3:	5e                   	pop    %esi
40bef4:	8b e5                	mov    %ebp,%esp
40bef6:	5d                   	pop    %ebp
40bef7:	c2 08 00             	ret    $0x8
40befa:	55                   	push   %ebp
40befb:	8b ec                	mov    %esp,%ebp
40befd:	56                   	push   %esi
40befe:	57                   	push   %edi
40beff:	8b 7d 08             	mov    0x8(%ebp),%edi
40bf02:	33 f6                	xor    %esi,%esi
40bf04:	39 37                	cmp    %esi,(%edi)
40bf06:	74 4e                	je     0x40bf56
40bf08:	39 77 04             	cmp    %esi,0x4(%edi)
40bf0b:	76 42                	jbe    0x40bf4f
40bf0d:	8b c6                	mov    %esi,%eax
40bf0f:	89 45 08             	mov    %eax,0x8(%ebp)
40bf12:	53                   	push   %ebx
40bf13:	8b 1f                	mov    (%edi),%ebx
40bf15:	03 d8                	add    %eax,%ebx
40bf17:	83 3b 00             	cmpl   $0x0,(%ebx)
40bf1a:	74 07                	je     0x40bf23
40bf1c:	ff 33                	push   (%ebx)
40bf1e:	e8 cc 95 03 00       	call   0x4454ef
40bf23:	83 7b 04 00          	cmpl   $0x0,0x4(%ebx)
40bf27:	74 08                	je     0x40bf31
40bf29:	ff 73 04             	push   0x4(%ebx)
40bf2c:	e8 be 95 03 00       	call   0x4454ef
40bf31:	83 7b 08 00          	cmpl   $0x0,0x8(%ebx)
40bf35:	74 08                	je     0x40bf3f
40bf37:	ff 73 08             	push   0x8(%ebx)
40bf3a:	e8 b0 95 03 00       	call   0x4454ef
40bf3f:	8b 45 08             	mov    0x8(%ebp),%eax
40bf42:	46                   	inc    %esi
40bf43:	83 c0 10             	add    $0x10,%eax
40bf46:	89 45 08             	mov    %eax,0x8(%ebp)
40bf49:	3b 77 04             	cmp    0x4(%edi),%esi
40bf4c:	72 c5                	jb     0x40bf13
40bf4e:	5b                   	pop    %ebx
40bf4f:	ff 37                	push   (%edi)
40bf51:	e8 43 7a ff ff       	call   0x403999
40bf56:	5f                   	pop    %edi
40bf57:	5e                   	pop    %esi
40bf58:	5d                   	pop    %ebp
40bf59:	c2 04 00             	ret    $0x4
40bf5c:	55                   	push   %ebp
40bf5d:	8b ec                	mov    %esp,%ebp
40bf5f:	56                   	push   %esi
40bf60:	8b 75 08             	mov    0x8(%ebp),%esi
40bf63:	85 f6                	test   %esi,%esi
40bf65:	74 30                	je     0x40bf97
40bf67:	83 7e 0c 00          	cmpl   $0x0,0xc(%esi)
40bf6b:	74 08                	je     0x40bf75
40bf6d:	ff 76 0c             	push   0xc(%esi)
40bf70:	e8 7a 95 03 00       	call   0x4454ef
40bf75:	83 7e 08 00          	cmpl   $0x0,0x8(%esi)
40bf79:	74 08                	je     0x40bf83
40bf7b:	ff 76 08             	push   0x8(%esi)
40bf7e:	e8 6c 95 03 00       	call   0x4454ef
40bf83:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
40bf87:	74 08                	je     0x40bf91
40bf89:	ff 76 04             	push   0x4(%esi)
40bf8c:	e8 5e 95 03 00       	call   0x4454ef
40bf91:	56                   	push   %esi
40bf92:	e8 02 7a ff ff       	call   0x403999
40bf97:	5e                   	pop    %esi
40bf98:	5d                   	pop    %ebp
40bf99:	c2 04 00             	ret    $0x4
40bf9c:	55                   	push   %ebp
40bf9d:	8b ec                	mov    %esp,%ebp
40bf9f:	83 ec 0c             	sub    $0xc,%esp
40bfa2:	53                   	push   %ebx
40bfa3:	56                   	push   %esi
40bfa4:	57                   	push   %edi
40bfa5:	33 ff                	xor    %edi,%edi
40bfa7:	c7 45 f4 30 c7 44 00 	movl   $0x44c730,-0xc(%ebp)
40bfae:	89 7d fc             	mov    %edi,-0x4(%ebp)
40bfb1:	c7 45 f8 5c c7 44 00 	movl   $0x44c75c,-0x8(%ebp)
40bfb8:	8b 5c bd f4          	mov    -0xc(%ebp,%edi,4),%ebx
40bfbc:	8d 45 fc             	lea    -0x4(%ebp),%eax
40bfbf:	50                   	push   %eax
40bfc0:	53                   	push   %ebx
40bfc1:	ff 75 08             	push   0x8(%ebp)
40bfc4:	e8 c5 b3 ff ff       	call   0x40738e
40bfc9:	8b f0                	mov    %eax,%esi
40bfcb:	85 f6                	test   %esi,%esi
40bfcd:	78 16                	js     0x40bfe5
40bfcf:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40bfd2:	ff 73 08             	push   0x8(%ebx)
40bfd5:	ff 75 fc             	push   -0x4(%ebp)
40bfd8:	e8 c2 8d 03 00       	call   0x444d9f
40bfdd:	8b f0                	mov    %eax,%esi
40bfdf:	85 f6                	test   %esi,%esi
40bfe1:	74 59                	je     0x40c03c
40bfe3:	eb 0b                	jmp    0x40bff0
40bfe5:	81 fe 90 04 07 80    	cmp    $0x80070490,%esi
40bfeb:	75 40                	jne    0x40c02d
40bfed:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40bff0:	47                   	inc    %edi
40bff1:	83 ff 02             	cmp    $0x2,%edi
40bff4:	72 c2                	jb     0x40bfb8
40bff6:	8d 45 fc             	lea    -0x4(%ebp),%eax
40bff9:	33 ff                	xor    %edi,%edi
40bffb:	50                   	push   %eax
40bffc:	47                   	inc    %edi
40bffd:	57                   	push   %edi
40bffe:	57                   	push   %edi
40bfff:	e8 da e2 00 00       	call   0x41a2de
40c004:	8b f0                	mov    %eax,%esi
40c006:	85 f6                	test   %esi,%esi
40c008:	79 0f                	jns    0x40c019
40c00a:	68 68 f4 44 00       	push   $0x44f468
40c00f:	56                   	push   %esi
40c010:	e8 1a 41 03 00       	call   0x44012f
40c015:	59                   	pop    %ecx
40c016:	59                   	pop    %ecx
40c017:	eb 23                	jmp    0x40c03c
40c019:	ff 73 08             	push   0x8(%ebx)
40c01c:	ff 75 fc             	push   -0x4(%ebp)
40c01f:	e8 7b 8d 03 00       	call   0x444d9f
40c024:	8b f0                	mov    %eax,%esi
40c026:	85 f6                	test   %esi,%esi
40c028:	0f 45 f7             	cmovne %edi,%esi
40c02b:	eb 0f                	jmp    0x40c03c
40c02d:	53                   	push   %ebx
40c02e:	68 48 f4 44 00       	push   $0x44f448
40c033:	56                   	push   %esi
40c034:	e8 f6 40 03 00       	call   0x44012f
40c039:	83 c4 0c             	add    $0xc,%esp
40c03c:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
40c040:	74 08                	je     0x40c04a
40c042:	ff 75 fc             	push   -0x4(%ebp)
40c045:	e8 a5 94 03 00       	call   0x4454ef
40c04a:	5f                   	pop    %edi
40c04b:	8b c6                	mov    %esi,%eax
40c04d:	5e                   	pop    %esi
40c04e:	5b                   	pop    %ebx
40c04f:	8b e5                	mov    %ebp,%esp
40c051:	5d                   	pop    %ebp
40c052:	c2 08 00             	ret    $0x8
40c055:	55                   	push   %ebp
40c056:	8b ec                	mov    %esp,%ebp
40c058:	56                   	push   %esi
40c059:	57                   	push   %edi
40c05a:	8b 7d 08             	mov    0x8(%ebp),%edi
40c05d:	33 f6                	xor    %esi,%esi
40c05f:	8b 47 18             	mov    0x18(%edi),%eax
40c062:	83 e8 01             	sub    $0x1,%eax
40c065:	75 19                	jne    0x40c080
40c067:	57                   	push   %edi
40c068:	e8 d4 52 01 00       	call   0x421341
40c06d:	8b f0                	mov    %eax,%esi
40c06f:	85 f6                	test   %esi,%esi
40c071:	79 0d                	jns    0x40c080
40c073:	68 9c f8 44 00       	push   $0x44f89c
40c078:	56                   	push   %esi
40c079:	e8 b1 40 03 00       	call   0x44012f
40c07e:	59                   	pop    %ecx
40c07f:	59                   	pop    %ecx
40c080:	83 3f ff             	cmpl   $0xffffffff,(%edi)
40c083:	74 0b                	je     0x40c090
40c085:	ff 37                	push   (%edi)
40c087:	ff 15 d4 b0 44 00    	call   *0x44b0d4
40c08d:	83 0f ff             	orl    $0xffffffff,(%edi)
40c090:	85 f6                	test   %esi,%esi
40c092:	78 0d                	js     0x40c0a1
40c094:	6a 58                	push   $0x58
40c096:	6a 00                	push   $0x0
40c098:	57                   	push   %edi
40c099:	e8 d2 35 02 00       	call   0x42f670
40c09e:	83 c4 0c             	add    $0xc,%esp
40c0a1:	5f                   	pop    %edi
40c0a2:	8b c6                	mov    %esi,%eax
40c0a4:	5e                   	pop    %esi
40c0a5:	5d                   	pop    %ebp
40c0a6:	c2 04 00             	ret    $0x4
40c0a9:	55                   	push   %ebp
40c0aa:	8b ec                	mov    %esp,%ebp
40c0ac:	51                   	push   %ecx
40c0ad:	53                   	push   %ebx
40c0ae:	56                   	push   %esi
40c0af:	57                   	push   %edi
40c0b0:	8b 7d 08             	mov    0x8(%ebp),%edi