409fee:	8b 45 f8             	mov    -0x8(%ebp),%eax
409ff1:	53                   	push   %ebx
409ff2:	ff 30                	push   (%eax)
409ff4:	8d 45 fc             	lea    -0x4(%ebp),%eax
409ff7:	50                   	push   %eax
409ff8:	e8 fc 82 ff ff       	call   0x4022f9
409ffd:	8b f0                	mov    %eax,%esi
409fff:	85 f6                	test   %esi,%esi
40a001:	79 0f                	jns    0x40a012
40a003:	68 80 ec 44 00       	push   $0x44ec80
40a008:	e9 26 01 00 00       	jmp    0x40a133
40a00d:	be 45 06 07 80       	mov    $0x80070645,%esi
40a012:	81 fe 45 06 07 80    	cmp    $0x80070645,%esi
40a018:	74 71                	je     0x40a08b
40a01a:	8d 45 dc             	lea    -0x24(%ebp),%eax
40a01d:	50                   	push   %eax
40a01e:	57                   	push   %edi
40a01f:	ff 75 fc             	push   -0x4(%ebp)
40a022:	e8 40 88 03 00       	call   0x442867
40a027:	8b f0                	mov    %eax,%esi
40a029:	81 fe 48 06 07 80    	cmp    $0x80070648,%esi
40a02f:	75 52                	jne    0x40a083
40a031:	ff 75 fc             	push   -0x4(%ebp)
40a034:	57                   	push   %edi
40a035:	68 a0 ec 44 00       	push   $0x44eca0
40a03a:	6a 03                	push   $0x3
40a03c:	e8 d9 65 03 00       	call   0x44061a
40a041:	83 c4 10             	add    $0x10,%esp
40a044:	8d 45 dc             	lea    -0x24(%ebp),%eax
40a047:	50                   	push   %eax
40a048:	57                   	push   %edi
40a049:	6a 04                	push   $0x4
40a04b:	53                   	push   %ebx
40a04c:	ff 75 fc             	push   -0x4(%ebp)
40a04f:	e8 a4 88 03 00       	call   0x4428f8
40a054:	8b f0                	mov    %eax,%esi
40a056:	81 fe 45 06 07 80    	cmp    $0x80070645,%esi
40a05c:	75 70                	jne    0x40a0ce
40a05e:	ff 75 fc             	push   -0x4(%ebp)
40a061:	57                   	push   %edi
40a062:	68 e8 ec 44 00       	push   $0x44ece8
40a067:	6a 02                	push   $0x2
40a069:	e8 ac 65 03 00       	call   0x44061a
40a06e:	83 c4 10             	add    $0x10,%esp
40a071:	8d 45 dc             	lea    -0x24(%ebp),%eax
40a074:	50                   	push   %eax
40a075:	57                   	push   %edi
40a076:	6a 02                	push   $0x2
40a078:	53                   	push   %ebx
40a079:	ff 75 fc             	push   -0x4(%ebp)
40a07c:	e8 77 88 03 00       	call   0x4428f8
40a081:	8b f0                	mov    %eax,%esi
40a083:	81 fe 45 06 07 80    	cmp    $0x80070645,%esi
40a089:	75 43                	jne    0x40a0ce
40a08b:	ff 75 fc             	push   -0x4(%ebp)
40a08e:	68 2c ed 44 00       	push   $0x44ed2c
40a093:	6a 02                	push   $0x2
40a095:	5e                   	pop    %esi
40a096:	56                   	push   %esi
40a097:	e8 7e 65 03 00       	call   0x44061a
40a09c:	8b 4d 08             	mov    0x8(%ebp),%ecx
40a09f:	83 c4 0c             	add    $0xc,%esp
40a0a2:	8b 41 10             	mov    0x10(%ecx),%eax
40a0a5:	83 e8 01             	sub    $0x1,%eax
40a0a8:	74 09                	je     0x40a0b3
40a0aa:	2b c6                	sub    %esi,%eax
40a0ac:	74 18                	je     0x40a0c6
40a0ae:	83 e8 01             	sub    $0x1,%eax
40a0b1:	75 0f                	jne    0x40a0c2
40a0b3:	0f 57 c0             	xorps  %xmm0,%xmm0
40a0b6:	66 0f 13 45 dc       	movlpd %xmm0,-0x24(%ebp)
40a0bb:	c7 45 ec 01 00 00 00 	movl   $0x1,-0x14(%ebp)
40a0c2:	8b f3                	mov    %ebx,%esi
40a0c4:	eb 0b                	jmp    0x40a0d1
40a0c6:	89 75 dc             	mov    %esi,-0x24(%ebp)
40a0c9:	89 5d e0             	mov    %ebx,-0x20(%ebp)
40a0cc:	eb ed                	jmp    0x40a0bb
40a0ce:	8b 4d 08             	mov    0x8(%ebp),%ecx
40a0d1:	85 f6                	test   %esi,%esi
40a0d3:	79 07                	jns    0x40a0dc
40a0d5:	68 58 ed 44 00       	push   $0x44ed58
40a0da:	eb 57                	jmp    0x40a133
40a0dc:	8b 41 10             	mov    0x10(%ecx),%eax
40a0df:	83 e8 01             	sub    $0x1,%eax
40a0e2:	74 18                	je     0x40a0fc
40a0e4:	83 e8 01             	sub    $0x1,%eax
40a0e7:	74 0f                	je     0x40a0f8
40a0e9:	83 e8 01             	sub    $0x1,%eax
40a0ec:	74 05                	je     0x40a0f3
40a0ee:	83 e8 01             	sub    $0x1,%eax
40a0f1:	75 0c                	jne    0x40a0ff
40a0f3:	33 db                	xor    %ebx,%ebx
40a0f5:	43                   	inc    %ebx
40a0f6:	eb 07                	jmp    0x40a0ff
40a0f8:	6a 02                	push   $0x2
40a0fa:	eb 02                	jmp    0x40a0fe
40a0fc:	6a 03                	push   $0x3
40a0fe:	5b                   	pop    %ebx
40a0ff:	53                   	push   %ebx
40a100:	8d 45 dc             	lea    -0x24(%ebp),%eax
40a103:	50                   	push   %eax
40a104:	e8 ae 5d 01 00       	call   0x41feb7
40a109:	8b f0                	mov    %eax,%esi
40a10b:	85 f6                	test   %esi,%esi
40a10d:	79 07                	jns    0x40a116
40a10f:	68 ac ea 44 00       	push   $0x44eaac
40a114:	eb 1d                	jmp    0x40a133
40a116:	8d 45 dc             	lea    -0x24(%ebp),%eax
40a119:	50                   	push   %eax
40a11a:	8b 45 08             	mov    0x8(%ebp),%eax
40a11d:	ff 70 04             	push   0x4(%eax)
40a120:	ff 75 0c             	push   0xc(%ebp)
40a123:	e8 0f e0 ff ff       	call   0x408137
40a128:	8b f0                	mov    %eax,%esi
40a12a:	85 f6                	test   %esi,%esi
40a12c:	79 22                	jns    0x40a150
40a12e:	68 18 d2 44 00       	push   $0x44d218
40a133:	56                   	push   %esi
40a134:	e8 f6 5f 03 00       	call   0x44012f
40a139:	59                   	pop    %ecx
40a13a:	59                   	pop    %ecx
40a13b:	8b 45 08             	mov    0x8(%ebp),%eax
40a13e:	56                   	push   %esi
40a13f:	ff 30                	push   (%eax)
40a141:	68 74 ed 44 00       	push   $0x44ed74
40a146:	6a 02                	push   $0x2
40a148:	e8 cd 64 03 00       	call   0x44061a
40a14d:	83 c4 10             	add    $0x10,%esp
40a150:	ff 75 fc             	push   -0x4(%ebp)
40a153:	e8 3b 86 ff ff       	call   0x402793
40a158:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
40a15c:	74 0b                	je     0x40a169
40a15e:	ff 75 f4             	push   -0xc(%ebp)
40a161:	ff 75 f8             	push   -0x8(%ebp)
40a164:	e8 de 84 ff ff       	call   0x402647
40a169:	8d 45 dc             	lea    -0x24(%ebp),%eax
40a16c:	50                   	push   %eax
40a16d:	e8 27 63 01 00       	call   0x420499
40a172:	5f                   	pop    %edi
40a173:	8b c6                	mov    %esi,%eax
40a175:	5e                   	pop    %esi
40a176:	5b                   	pop    %ebx
40a177:	8b e5                	mov    %ebp,%esp
40a179:	5d                   	pop    %ebp
40a17a:	c2 08 00             	ret    $0x8
40a17d:	55                   	push   %ebp
40a17e:	8b ec                	mov    %esp,%ebp
40a180:	83 ec 10             	sub    $0x10,%esp
40a183:	53                   	push   %ebx
40a184:	8b 5d 08             	mov    0x8(%ebp),%ebx
40a187:	33 c9                	xor    %ecx,%ecx
40a189:	56                   	push   %esi
40a18a:	57                   	push   %edi
40a18b:	51                   	push   %ecx
40a18c:	8b 43 24             	mov    0x24(%ebx),%eax
40a18f:	89 45 08             	mov    %eax,0x8(%ebp)
40a192:	8d 45 fc             	lea    -0x4(%ebp),%eax
40a195:	50                   	push   %eax
40a196:	ff 73 1c             	push   0x1c(%ebx)
40a199:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40a19c:	ff 75 0c             	push   0xc(%ebp)
40a19f:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40a1a2:	89 4d f4             	mov    %ecx,-0xc(%ebp)
40a1a5:	89 4d f0             	mov    %ecx,-0x10(%ebp)
40a1a8:	e8 22 d0 ff ff       	call   0x4071cf
40a1ad:	8b f0                	mov    %eax,%esi
40a1af:	85 f6                	test   %esi,%esi
40a1b1:	79 12                	jns    0x40a1c5
40a1b3:	68 54 e8 44 00       	push   $0x44e854
40a1b8:	56                   	push   %esi
40a1b9:	e8 71 5f 03 00       	call   0x44012f
40a1be:	59                   	pop    %ecx
40a1bf:	59                   	pop    %ecx
40a1c0:	e9 0b 01 00 00       	jmp    0x40a2d0
40a1c5:	33 ff                	xor    %edi,%edi
40a1c7:	8d 45 f4             	lea    -0xc(%ebp),%eax
40a1ca:	50                   	push   %eax
40a1cb:	47                   	inc    %edi
40a1cc:	b8 01 01 00 00       	mov    $0x101,%eax
40a1d1:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
40a1d5:	0f 44 c7             	cmove  %edi,%eax
40a1d8:	50                   	push   %eax
40a1d9:	ff 75 fc             	push   -0x4(%ebp)
40a1dc:	ff 73 18             	push   0x18(%ebx)
40a1df:	e8 5b 6c 03 00       	call   0x440e3f
40a1e4:	8b f0                	mov    %eax,%esi
40a1e6:	85 f6                	test   %esi,%esi
40a1e8:	0f 88 98 00 00 00    	js     0x40a286
40a1ee:	83 7b 20 00          	cmpl   $0x0,0x20(%ebx)
40a1f2:	0f 84 aa 00 00 00    	je     0x40a2a2
40a1f8:	6a 00                	push   $0x0
40a1fa:	8d 45 f8             	lea    -0x8(%ebp),%eax
40a1fd:	50                   	push   %eax
40a1fe:	ff 73 20             	push   0x20(%ebx)
40a201:	ff 75 0c             	push   0xc(%ebp)
40a204:	e8 c6 cf ff ff       	call   0x4071cf
40a209:	8b f0                	mov    %eax,%esi
40a20b:	85 f6                	test   %esi,%esi
40a20d:	79 07                	jns    0x40a216
40a20f:	68 c4 e8 44 00       	push   $0x44e8c4
40a214:	eb a2                	jmp    0x40a1b8
40a216:	6a 00                	push   $0x0
40a218:	6a 00                	push   $0x0
40a21a:	8d 45 f0             	lea    -0x10(%ebp),%eax
40a21d:	50                   	push   %eax
40a21e:	6a 00                	push   $0x0
40a220:	ff 75 f8             	push   -0x8(%ebp)
40a223:	ff 75 f4             	push   -0xc(%ebp)
40a226:	ff 15 1c b0 44 00    	call   *0x44b01c
40a22c:	8b c8                	mov    %eax,%ecx
40a22e:	83 e9 00             	sub    $0x0,%ecx
40a231:	74 6f                	je     0x40a2a2
40a233:	49                   	dec    %ecx
40a234:	83 e9 01             	sub    $0x1,%ecx
40a237:	74 36                	je     0x40a26f
40a239:	85 c0                	test   %eax,%eax
40a23b:	74 65                	je     0x40a2a2
40a23d:	0f b7 f0             	movzwl %ax,%esi
40a240:	81 ce 00 00 07 80    	or     $0x80070000,%esi
40a246:	85 c0                	test   %eax,%eax
40a248:	0f 4e f0             	cmovle %eax,%esi
40a24b:	b8 05 40 00 80       	mov    $0x80004005,%eax
40a250:	85 f6                	test   %esi,%esi
40a252:	0f 49 f0             	cmovns %eax,%esi
40a255:	56                   	push   %esi
40a256:	68 22 03 00 00       	push   $0x322
40a25b:	68 c4 e1 44 00       	push   $0x44e1c4
40a260:	e8 6e 95 ff ff       	call   0x4037d3
40a265:	68 1c e9 44 00       	push   $0x44e91c
40a26a:	e9 49 ff ff ff       	jmp    0x40a1b8
40a26f:	ff 75 f8             	push   -0x8(%ebp)
40a272:	ff 75 fc             	push   -0x4(%ebp)
40a275:	68 e4 e8 44 00       	push   $0x44e8e4
40a27a:	6a 02                	push   $0x2
40a27c:	e8 99 63 03 00       	call   0x44061a
40a281:	83 c4 10             	add    $0x10,%esp
40a284:	eb 1a                	jmp    0x40a2a0
40a286:	ff 75 fc             	push   -0x4(%ebp)
40a289:	81 fe 02 00 07 80    	cmp    $0x80070002,%esi
40a28f:	75 31                	jne    0x40a2c2
40a291:	68 74 e8 44 00       	push   $0x44e874
40a296:	6a 02                	push   $0x2
40a298:	e8 7d 63 03 00       	call   0x44061a
40a29d:	83 c4 0c             	add    $0xc,%esp
40a2a0:	33 ff                	xor    %edi,%edi
40a2a2:	6a 00                	push   $0x0
40a2a4:	6a 00                	push   $0x0
40a2a6:	57                   	push   %edi
40a2a7:	ff 73 04             	push   0x4(%ebx)
40a2aa:	ff 75 0c             	push   0xc(%ebp)
40a2ad:	e8 a0 de ff ff       	call   0x408152
40a2b2:	8b f0                	mov    %eax,%esi
40a2b4:	85 f6                	test   %esi,%esi
40a2b6:	79 2f                	jns    0x40a2e7
40a2b8:	68 18 d2 44 00       	push   $0x44d218
40a2bd:	e9 f6 fe ff ff       	jmp    0x40a1b8
40a2c2:	68 98 e8 44 00       	push   $0x44e898
40a2c7:	56                   	push   %esi
40a2c8:	e8 62 5e 03 00       	call   0x44012f
40a2cd:	83 c4 0c             	add    $0xc,%esp
40a2d0:	85 f6                	test   %esi,%esi
40a2d2:	79 13                	jns    0x40a2e7
40a2d4:	56                   	push   %esi
40a2d5:	ff 75 fc             	push   -0x4(%ebp)
40a2d8:	68 40 e9 44 00       	push   $0x44e940
40a2dd:	6a 02                	push   $0x2
40a2df:	e8 36 63 03 00       	call   0x44061a
40a2e4:	83 c4 10             	add    $0x10,%esp
40a2e7:	ff 75 fc             	push   -0x4(%ebp)
40a2ea:	e8 a4 84 ff ff       	call   0x402793
40a2ef:	ff 75 f8             	push   -0x8(%ebp)
40a2f2:	e8 9c 84 ff ff       	call   0x402793
40a2f7:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
40a2fb:	74 09                	je     0x40a306
40a2fd:	ff 75 f4             	push   -0xc(%ebp)
40a300:	ff 15 00 b0 44 00    	call   *0x44b000
40a306:	5f                   	pop    %edi
40a307:	8b c6                	mov    %esi,%eax
40a309:	5e                   	pop    %esi
40a30a:	5b                   	pop    %ebx
40a30b:	8b e5                	mov    %ebp,%esp
40a30d:	5d                   	pop    %ebp
40a30e:	c2 08 00             	ret    $0x8
40a311:	55                   	push   %ebp
40a312:	8b ec                	mov    %esp,%ebp
40a314:	83 ec 2c             	sub    $0x2c,%esp
40a317:	53                   	push   %ebx
40a318:	56                   	push   %esi
40a319:	57                   	push   %edi
40a31a:	6a 06                	push   $0x6
40a31c:	59                   	pop    %ecx
40a31d:	33 c0                	xor    %eax,%eax
40a31f:	8d 7d d4             	lea    -0x2c(%ebp),%edi
40a322:	f3 ab                	rep stos %eax,%es:(%edi)
40a324:	8b 7d 08             	mov    0x8(%ebp),%edi
40a327:	33 d2                	xor    %edx,%edx
40a329:	33 c9                	xor    %ecx,%ecx
40a32b:	89 55 f8             	mov    %edx,-0x8(%ebp)
40a32e:	41                   	inc    %ecx
40a32f:	89 55 f0             	mov    %edx,-0x10(%ebp)
40a332:	b8 01 01 00 00       	mov    $0x101,%eax
40a337:	89 55 f4             	mov    %edx,-0xc(%ebp)
40a33a:	39 57 24             	cmp    %edx,0x24(%edi)
40a33d:	8b da                	mov    %edx,%ebx
40a33f:	52                   	push   %edx
40a340:	0f 44 c1             	cmove  %ecx,%eax
40a343:	89 55 ec             	mov    %edx,-0x14(%ebp)
40a346:	89 45 08             	mov    %eax,0x8(%ebp)
40a349:	8d 45 f8             	lea    -0x8(%ebp),%eax
40a34c:	50                   	push   %eax
40a34d:	ff 77 1c             	push   0x1c(%edi)
40a350:	89 55 fc             	mov    %edx,-0x4(%ebp)
40a353:	ff 75 0c             	push   0xc(%ebp)
40a356:	e8 74 ce ff ff       	call   0x4071cf
40a35b:	8b f0                	mov    %eax,%esi
40a35d:	85 f6                	test   %esi,%esi
40a35f:	79 0a                	jns    0x40a36b
40a361:	68 54 e8 44 00       	push   $0x44e854
40a366:	e9 c3 02 00 00       	jmp    0x40a62e
40a36b:	39 5f 20             	cmp    %ebx,0x20(%edi)
40a36e:	74 21                	je     0x40a391
40a370:	6a 00                	push   $0x0
40a372:	8d 45 f0             	lea    -0x10(%ebp),%eax
40a375:	50                   	push   %eax
40a376:	ff 77 20             	push   0x20(%edi)
40a379:	ff 75 0c             	push   0xc(%ebp)
40a37c:	e8 4e ce ff ff       	call   0x4071cf
40a381:	8b f0                	mov    %eax,%esi
40a383:	85 f6                	test   %esi,%esi
40a385:	79 0a                	jns    0x40a391
40a387:	68 c4 e8 44 00       	push   $0x44e8c4
40a38c:	e9 9d 02 00 00       	jmp    0x40a62e
40a391:	8d 45 f4             	lea    -0xc(%ebp),%eax
40a394:	50                   	push   %eax
40a395:	ff 75 08             	push   0x8(%ebp)
40a398:	ff 75 f8             	push   -0x8(%ebp)
40a39b:	ff 77 18             	push   0x18(%edi)
40a39e:	e8 9c 6a 03 00       	call   0x440e3f
40a3a3:	8b f0                	mov    %eax,%esi
40a3a5:	81 fe 02 00 07 80    	cmp    $0x80070002,%esi
40a3ab:	75 38                	jne    0x40a3e5
40a3ad:	ff 75 f8             	push   -0x8(%ebp)
40a3b0:	68 74 e8 44 00       	push   $0x44e874
40a3b5:	6a 02                	push   $0x2
40a3b7:	e8 5e 62 03 00       	call   0x44061a
40a3bc:	83 c4 0c             	add    $0xc,%esp
40a3bf:	8d 45 d4             	lea    -0x2c(%ebp),%eax
40a3c2:	50                   	push   %eax
40a3c3:	ff 77 04             	push   0x4(%edi)
40a3c6:	ff 75 0c             	push   0xc(%ebp)