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
40c0b3:	33 f6                	xor    %esi,%esi
40c0b5:	8b de                	mov    %esi,%ebx
40c0b7:	39 77 04             	cmp    %esi,0x4(%edi)
40c0ba:	76 32                	jbe    0x40c0ee
40c0bc:	8b ce                	mov    %esi,%ecx
40c0be:	89 75 08             	mov    %esi,0x8(%ebp)
40c0c1:	8b 07                	mov    (%edi),%eax
40c0c3:	6a ff                	push   $0xffffffff
40c0c5:	ff 75 0c             	push   0xc(%ebp)
40c0c8:	03 c1                	add    %ecx,%eax
40c0ca:	6a ff                	push   $0xffffffff
40c0cc:	89 45 fc             	mov    %eax,-0x4(%ebp)
40c0cf:	ff 30                	push   (%eax)
40c0d1:	56                   	push   %esi
40c0d2:	6a 7f                	push   $0x7f
40c0d4:	ff 15 28 b1 44 00    	call   *0x44b128
40c0da:	83 f8 02             	cmp    $0x2,%eax
40c0dd:	74 1f                	je     0x40c0fe
40c0df:	8b 4d 08             	mov    0x8(%ebp),%ecx
40c0e2:	43                   	inc    %ebx
40c0e3:	83 c1 50             	add    $0x50,%ecx
40c0e6:	89 4d 08             	mov    %ecx,0x8(%ebp)
40c0e9:	3b 5f 04             	cmp    0x4(%edi),%ebx
40c0ec:	72 d3                	jb     0x40c0c1
40c0ee:	be 90 04 07 80       	mov    $0x80070490,%esi
40c0f3:	5f                   	pop    %edi
40c0f4:	8b c6                	mov    %esi,%eax
40c0f6:	5e                   	pop    %esi
40c0f7:	5b                   	pop    %ebx
40c0f8:	8b e5                	mov    %ebp,%esp
40c0fa:	5d                   	pop    %ebp
40c0fb:	c2 0c 00             	ret    $0xc
40c0fe:	8b 45 10             	mov    0x10(%ebp),%eax
40c101:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40c104:	89 08                	mov    %ecx,(%eax)
40c106:	eb eb                	jmp    0x40c0f3
40c108:	55                   	push   %ebp
40c109:	8b ec                	mov    %esp,%ebp
40c10b:	8b 55 08             	mov    0x8(%ebp),%edx
40c10e:	33 c9                	xor    %ecx,%ecx
40c110:	8b 42 18             	mov    0x18(%edx),%eax
40c113:	83 e8 01             	sub    $0x1,%eax
40c116:	75 0b                	jne    0x40c123
40c118:	ff 75 0c             	push   0xc(%ebp)
40c11b:	52                   	push   %edx
40c11c:	e8 1f 53 01 00       	call   0x421440
40c121:	8b c8                	mov    %eax,%ecx
40c123:	8b c1                	mov    %ecx,%eax
40c125:	5d                   	pop    %ebp
40c126:	c2 08 00             	ret    $0x8
40c129:	55                   	push   %ebp
40c12a:	8b ec                	mov    %esp,%ebp
40c12c:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40c12f:	53                   	push   %ebx
40c130:	8b 5d 08             	mov    0x8(%ebp),%ebx
40c133:	56                   	push   %esi
40c134:	8b 41 04             	mov    0x4(%ecx),%eax
40c137:	57                   	push   %edi
40c138:	89 43 18             	mov    %eax,0x18(%ebx)
40c13b:	33 ff                	xor    %edi,%edi
40c13d:	83 7d 10 ff          	cmpl   $0xffffffff,0x10(%ebp)
40c141:	8b f7                	mov    %edi,%esi
40c143:	8b 41 18             	mov    0x18(%ecx),%eax
40c146:	89 43 10             	mov    %eax,0x10(%ebx)
40c149:	8b 41 1c             	mov    0x1c(%ecx),%eax
40c14c:	89 43 14             	mov    %eax,0x14(%ebx)
40c14f:	8b 41 40             	mov    0x40(%ecx),%eax
40c152:	89 43 08             	mov    %eax,0x8(%ebx)
40c155:	8b 41 44             	mov    0x44(%ecx),%eax
40c158:	89 43 0c             	mov    %eax,0xc(%ebx)
40c15b:	75 68                	jne    0x40c1c5
40c15d:	57                   	push   %edi
40c15e:	68 80 00 00 08       	push   $0x8000080
40c163:	6a 03                	push   $0x3
40c165:	57                   	push   %edi
40c166:	6a 01                	push   $0x1
40c168:	68 00 00 00 80       	push   $0x80000000
40c16d:	ff 75 14             	push   0x14(%ebp)
40c170:	ff 15 d8 b0 44 00    	call   *0x44b0d8
40c176:	89 03                	mov    %eax,(%ebx)
40c178:	83 f8 ff             	cmp    $0xffffffff,%eax
40c17b:	0f 85 9c 00 00 00    	jne    0x40c21d
40c181:	ff 15 e8 b0 44 00    	call   *0x44b0e8
40c187:	0f b7 f8             	movzwl %ax,%edi
40c18a:	81 cf 00 00 07 80    	or     $0x80070000,%edi
40c190:	85 c0                	test   %eax,%eax
40c192:	0f 4e f8             	cmovle %eax,%edi
40c195:	b8 05 40 00 80       	mov    $0x80004005,%eax
40c19a:	85 ff                	test   %edi,%edi
40c19c:	0f 49 f8             	cmovns %eax,%edi
40c19f:	57                   	push   %edi
40c1a0:	68 e6 00 00 00       	push   $0xe6
40c1a5:	68 f4 f4 44 00       	push   $0x44f4f4
40c1aa:	e8 24 76 ff ff       	call   0x4037d3
40c1af:	ff 75 14             	push   0x14(%ebp)
40c1b2:	68 00 f8 44 00       	push   $0x44f800
40c1b7:	57                   	push   %edi
40c1b8:	e8 72 3f 03 00       	call   0x44012f
40c1bd:	83 c4 0c             	add    $0xc,%esp
40c1c0:	e9 d3 00 00 00       	jmp    0x40c298
40c1c5:	8b 35 80 b1 44 00    	mov    0x44b180,%esi
40c1cb:	6a 02                	push   $0x2
40c1cd:	57                   	push   %edi
40c1ce:	57                   	push   %edi
40c1cf:	53                   	push   %ebx
40c1d0:	ff d6                	call   *%esi
40c1d2:	50                   	push   %eax
40c1d3:	ff 75 10             	push   0x10(%ebp)
40c1d6:	ff d6                	call   *%esi
40c1d8:	50                   	push   %eax
40c1d9:	ff 15 f4 b1 44 00    	call   *0x44b1f4
40c1df:	85 c0                	test   %eax,%eax
40c1e1:	75 38                	jne    0x40c21b
40c1e3:	ff 15 e8 b0 44 00    	call   *0x44b0e8
40c1e9:	0f b7 f8             	movzwl %ax,%edi
40c1ec:	81 cf 00 00 07 80    	or     $0x80070000,%edi
40c1f2:	85 c0                	test   %eax,%eax
40c1f4:	0f 4e f8             	cmovle %eax,%edi
40c1f7:	b8 05 40 00 80       	mov    $0x80004005,%eax
40c1fc:	85 ff                	test   %edi,%edi
40c1fe:	0f 49 f8             	cmovns %eax,%edi
40c201:	57                   	push   %edi
40c202:	68 ec 00 00 00       	push   $0xec
40c207:	68 f4 f4 44 00       	push   $0x44f4f4
40c20c:	e8 c2 75 ff ff       	call   0x4037d3
40c211:	ff 75 14             	push   0x14(%ebp)
40c214:	68 1c f8 44 00       	push   $0x44f81c
40c219:	eb 9c                	jmp    0x40c1b7
40c21b:	8b f7                	mov    %edi,%esi
40c21d:	8b 45 0c             	mov    0xc(%ebp),%eax
40c220:	39 78 0c             	cmp    %edi,0xc(%eax)
40c223:	74 08                	je     0x40c22d
40c225:	8b 73 08             	mov    0x8(%ebx),%esi
40c228:	8b 43 0c             	mov    0xc(%ebx),%eax
40c22b:	eb 02                	jmp    0x40c22f
40c22d:	8b c7                	mov    %edi,%eax
40c22f:	57                   	push   %edi
40c230:	57                   	push   %edi
40c231:	50                   	push   %eax
40c232:	56                   	push   %esi
40c233:	ff 33                	push   (%ebx)
40c235:	ff 15 f0 b1 44 00    	call   *0x44b1f0
40c23b:	85 c0                	test   %eax,%eax
40c23d:	75 35                	jne    0x40c274
40c23f:	ff 15 e8 b0 44 00    	call   *0x44b0e8
40c245:	0f b7 f8             	movzwl %ax,%edi
40c248:	81 cf 00 00 07 80    	or     $0x80070000,%edi
40c24e:	85 c0                	test   %eax,%eax
40c250:	0f 4e f8             	cmovle %eax,%edi
40c253:	b8 05 40 00 80       	mov    $0x80004005,%eax
40c258:	85 ff                	test   %edi,%edi
40c25a:	0f 49 f8             	cmovns %eax,%edi
40c25d:	57                   	push   %edi
40c25e:	68 f8 00 00 00       	push   $0xf8
40c263:	68 f4 f4 44 00       	push   $0x44f4f4
40c268:	e8 66 75 ff ff       	call   0x4037d3
40c26d:	68 4c f8 44 00       	push   $0x44f84c
40c272:	eb 1c                	jmp    0x40c290
40c274:	8b 43 18             	mov    0x18(%ebx),%eax
40c277:	83 e8 01             	sub    $0x1,%eax
40c27a:	75 1c                	jne    0x40c298
40c27c:	ff 75 14             	push   0x14(%ebp)
40c27f:	53                   	push   %ebx
40c280:	e8 ff 51 01 00       	call   0x421484
40c285:	8b f8                	mov    %eax,%edi
40c287:	85 ff                	test   %edi,%edi
40c289:	79 0d                	jns    0x40c298
40c28b:	68 80 f8 44 00       	push   $0x44f880
40c290:	57                   	push   %edi
40c291:	e8 99 3e 03 00       	call   0x44012f
40c296:	59                   	pop    %ecx
40c297:	59                   	pop    %ecx
40c298:	8b c7                	mov    %edi,%eax
40c29a:	5f                   	pop    %edi
40c29b:	5e                   	pop    %esi