401f32:	ff 15 b8 a2 40 00    	call   *0x40a2b8
401f38:	33 f6                	xor    %esi,%esi
401f3a:	89 44 24 18          	mov    %eax,0x18(%esp)
401f3e:	f6 c4 20             	test   $0x20,%ah
401f41:	89 74 24 14          	mov    %esi,0x14(%esp)
401f45:	75 15                	jne    0x401f5c
401f47:	56                   	push   %esi
401f48:	6a 01                	push   $0x1
401f4a:	55                   	push   %ebp
401f4b:	68 1d 04 00 00       	push   $0x41d
401f50:	ff b4 24 38 01 00 00 	push   0x138(%esp)
401f57:	ff d7                	call   *%edi
401f59:	50                   	push   %eax
401f5a:	ff d3                	call   *%ebx
401f5c:	f6 44 24 19 10       	testb  $0x10,0x19(%esp)
401f61:	75 15                	jne    0x401f78
401f63:	56                   	push   %esi
401f64:	6a 01                	push   $0x1
401f66:	55                   	push   %ebp
401f67:	68 1b 04 00 00       	push   $0x41b
401f6c:	ff b4 24 38 01 00 00 	push   0x138(%esp)
401f73:	ff d7                	call   *%edi
401f75:	50                   	push   %eax
401f76:	ff d3                	call   *%ebx
401f78:	f6 44 24 19 40       	testb  $0x40,0x19(%esp)
401f7d:	75 15                	jne    0x401f94
401f7f:	56                   	push   %esi
401f80:	6a 01                	push   $0x1
401f82:	55                   	push   %ebp
401f83:	68 1f 04 00 00       	push   $0x41f
401f88:	ff b4 24 38 01 00 00 	push   0x138(%esp)
401f8f:	ff d7                	call   *%edi
401f91:	50                   	push   %eax
401f92:	ff d3                	call   *%ebx
401f94:	c7 44 24 10 6c c2 40 	movl   $0x40c26c,0x10(%esp)
401f9b:	00
401f9c:	8b 44 24 10          	mov    0x10(%esp),%eax
401fa0:	8b 00                	mov    (%eax),%eax
401fa2:	85 44 24 18          	test   %eax,0x18(%esp)
401fa6:	74 1c                	je     0x401fc4
401fa8:	09 44 24 14          	or     %eax,0x14(%esp)
401fac:	6a 00                	push   $0x0
401fae:	6a 01                	push   $0x1
401fb0:	8d 86 10 04 00 00    	lea    0x410(%esi),%eax
401fb6:	55                   	push   %ebp
401fb7:	50                   	push   %eax
401fb8:	ff b4 24 38 01 00 00 	push   0x138(%esp)
401fbf:	ff d7                	call   *%edi
401fc1:	50                   	push   %eax
401fc2:	ff d3                	call   *%ebx
401fc4:	83 44 24 10 04       	addl   $0x4,0x10(%esp)
401fc9:	46                   	inc    %esi
401fca:	81 7c 24 10 b8 c2 40 	cmpl   $0x40c2b8,0x10(%esp)
401fd1:	00
401fd2:	7c c8                	jl     0x401f9c
401fd4:	8b 44 24 14          	mov    0x14(%esp),%eax
401fd8:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
401fdc:	f7 d0                	not    %eax
401fde:	23 44 24 18          	and    0x18(%esp),%eax
401fe2:	5f                   	pop    %edi
401fe3:	5e                   	pop    %esi
401fe4:	5d                   	pop    %ebp
401fe5:	89 41 08             	mov    %eax,0x8(%ecx)
401fe8:	5b                   	pop    %ebx
401fe9:	81 c4 14 01 00 00    	add    $0x114,%esp
401fef:	c2 04 00             	ret    $0x4
401ff2:	55                   	push   %ebp
401ff3:	8b ec                	mov    %esp,%ebp
401ff5:	81 ec 10 01 00 00    	sub    $0x110,%esp
401ffb:	53                   	push   %ebx
401ffc:	56                   	push   %esi
401ffd:	57                   	push   %edi
401ffe:	8d 85 f0 fe ff ff    	lea    -0x110(%ebp),%eax
402004:	68 04 01 00 00       	push   $0x104
402009:	50                   	push   %eax
40200a:	68 e9 03 00 00       	push   $0x3e9
40200f:	8b f9                	mov    %ecx,%edi
402011:	ff 75 08             	push   0x8(%ebp)
402014:	ff 15 ac a2 40 00    	call   *0x40a2ac
40201a:	8b 35 dc a2 40 00    	mov    0x40a2dc,%esi
402020:	8d 85 f0 fe ff ff    	lea    -0x110(%ebp),%eax
402026:	33 db                	xor    %ebx,%ebx
402028:	50                   	push   %eax
402029:	53                   	push   %ebx
40202a:	6a 0c                	push   $0xc
40202c:	ff 37                	push   (%edi)
40202e:	ff d6                	call   *%esi
402030:	89 5d f8             	mov    %ebx,-0x8(%ebp)
402033:	89 5d f4             	mov    %ebx,-0xc(%ebp)
402036:	8b 1d bc a2 40 00    	mov    0x40a2bc,%ebx
40203c:	c7 45 fc 24 c2 40 00 	movl   $0x40c224,-0x4(%ebp)
402043:	8b 45 f4             	mov    -0xc(%ebp),%eax
402046:	6a 00                	push   $0x0
402048:	6a 00                	push   $0x0
40204a:	05 f2 03 00 00       	add    $0x3f2,%eax
40204f:	68 f0 00 00 00       	push   $0xf0
402054:	50                   	push   %eax
402055:	ff 75 08             	push   0x8(%ebp)
402058:	ff d3                	call   *%ebx
40205a:	50                   	push   %eax
40205b:	ff d6                	call   *%esi
40205d:	83 f8 01             	cmp    $0x1,%eax
402060:	75 08                	jne    0x40206a
402062:	8b 45 fc             	mov    -0x4(%ebp),%eax
402065:	8b 00                	mov    (%eax),%eax
402067:	09 45 f8             	or     %eax,-0x8(%ebp)
40206a:	83 45 fc 04          	addl   $0x4,-0x4(%ebp)
40206e:	ff 45 f4             	incl   -0xc(%ebp)
402071:	81 7d fc 6c c2 40 00 	cmpl   $0x40c26c,-0x4(%ebp)
402078:	7c c9                	jl     0x402043
40207a:	8b 47 04             	mov    0x4(%edi),%eax
40207d:	0b 45 f8             	or     -0x8(%ebp),%eax
402080:	50                   	push   %eax
402081:	6a f0                	push   $0xfffffff0
402083:	ff 37                	push   (%edi)
402085:	ff 15 b0 a2 40 00    	call   *0x40a2b0
40208b:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
40208f:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
402093:	c7 45 fc 6c c2 40 00 	movl   $0x40c26c,-0x4(%ebp)
40209a:	8b 45 f4             	mov    -0xc(%ebp),%eax
40209d:	6a 00                	push   $0x0
40209f:	6a 00                	push   $0x0
4020a1:	05 10 04 00 00       	add    $0x410,%eax
4020a6:	68 f0 00 00 00       	push   $0xf0
4020ab:	50                   	push   %eax
4020ac:	ff 75 08             	push   0x8(%ebp)
4020af:	ff d3                	call   *%ebx
4020b1:	50                   	push   %eax
4020b2:	ff d6                	call   *%esi
4020b4:	83 f8 01             	cmp    $0x1,%eax
4020b7:	75 08                	jne    0x4020c1
4020b9:	8b 45 fc             	mov    -0x4(%ebp),%eax
4020bc:	8b 00                	mov    (%eax),%eax
4020be:	09 45 f8             	or     %eax,-0x8(%ebp)
4020c1:	83 45 fc 04          	addl   $0x4,-0x4(%ebp)
4020c5:	ff 45 f4             	incl   -0xc(%ebp)
4020c8:	81 7d fc b8 c2 40 00 	cmpl   $0x40c2b8,-0x4(%ebp)
4020cf:	7c c9                	jl     0x40209a
4020d1:	8b 47 08             	mov    0x8(%edi),%eax
4020d4:	0b 45 f8             	or     -0x8(%ebp),%eax
4020d7:	50                   	push   %eax
4020d8:	6a ec                	push   $0xffffffec
4020da:	ff 37                	push   (%edi)
4020dc:	ff 15 b0 a2 40 00    	call   *0x40a2b0
4020e2:	5f                   	pop    %edi
4020e3:	5e                   	pop    %esi
4020e4:	5b                   	pop    %ebx
4020e5:	c9                   	leave
4020e6:	c2 04 00             	ret    $0x4
4020e9:	55                   	push   %ebp
4020ea:	8b ec                	mov    %esp,%ebp
4020ec:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
4020f0:	53                   	push   %ebx
4020f1:	56                   	push   %esi
4020f2:	8b 75 10             	mov    0x10(%ebp),%esi
4020f5:	75 72                	jne    0x402169
4020f7:	8b 0d e8 d4 40 00    	mov    0x40d4e8,%ecx
4020fd:	57                   	push   %edi
4020fe:	56                   	push   %esi
4020ff:	e8 6a 02 00 00       	call   0x40236e
402104:	ff 76 04             	push   0x4(%esi)
402107:	ff 36                	push   (%esi)
402109:	ff 15 a4 a2 40 00    	call   *0x40a2a4
40210f:	8b 3d d4 a2 40 00    	mov    0x40a2d4,%edi
402115:	6a 01                	push   $0x1
402117:	8b d8                	mov    %eax,%ebx
402119:	ff d7                	call   *%edi
40211b:	66 85 c0             	test   %ax,%ax
40211e:	74 0e                	je     0x40212e
402120:	8b 0d e8 d4 40 00    	mov    0x40d4e8,%ecx
402126:	56                   	push   %esi
402127:	e8 cf 01 00 00       	call   0x4022fb
40212c:	eb 20                	jmp    0x40214e
40212e:	6a 02                	push   $0x2
402130:	ff d7                	call   *%edi
402132:	66 85 c0             	test   %ax,%ax
402135:	74 17                	je     0x40214e
402137:	a1 e8 d4 40 00       	mov    0x40d4e8,%eax
40213c:	53                   	push   %ebx
40213d:	ff 75 0c             	push   0xc(%ebp)
402140:	68 b0 08 00 00       	push   $0x8b0
402145:	ff 70 0c             	push   0xc(%eax)
402148:	ff 15 d8 a2 40 00    	call   *0x40a2d8
40214e:	39 1d e4 d4 40 00    	cmp    %ebx,0x40d4e4
402154:	5f                   	pop    %edi
402155:	74 12                	je     0x402169
402157:	8b 0d e8 d4 40 00    	mov    0x40d4e8,%ecx
40215d:	53                   	push   %ebx
40215e:	e8 f4 02 00 00       	call   0x402457
402163:	89 1d e4 d4 40 00    	mov    %ebx,0x40d4e4
402169:	56                   	push   %esi
40216a:	ff 75 0c             	push   0xc(%ebp)
40216d:	ff 75 08             	push   0x8(%ebp)
402170:	6a 00                	push   $0x0
402172:	ff 15 a8 a2 40 00    	call   *0x40a2a8
402178:	5e                   	pop    %esi
402179:	5b                   	pop    %ebx
40217a:	5d                   	pop    %ebp
40217b:	c2 0c 00             	ret    $0xc
40217e:	55                   	push   %ebp
40217f:	8b ec                	mov    %esp,%ebp
402181:	8b 45 0c             	mov    0xc(%ebp),%eax
402184:	56                   	push   %esi
402185:	83 e8 10             	sub    $0x10,%eax
402188:	0f 84 15 01 00 00    	je     0x4022a3
40218e:	2d 00 01 00 00       	sub    $0x100,%eax
402193:	0f 84 fa 00 00 00    	je     0x402293
402199:	48                   	dec    %eax
40219a:	74 21                	je     0x4021bd
40219c:	2d 9f 07 00 00       	sub    $0x79f,%eax
4021a1:	74 07                	je     0x4021aa
4021a3:	33 c0                	xor    %eax,%eax
4021a5:	e9 12 01 00 00       	jmp    0x4022bc
4021aa:	ff 75 14             	push   0x14(%ebp)
4021ad:	8b 0d e8 d4 40 00    	mov    0x40d4e8,%ecx
4021b3:	e8 77 01 00 00       	call   0x40232f
4021b8:	e9 fc 00 00 00       	jmp    0x4022b9
4021bd:	0f b7 45 10          	movzwl 0x10(%ebp),%eax
4021c1:	2d ed 03 00 00       	sub    $0x3ed,%eax
4021c6:	0f 84 b8 00 00 00    	je     0x402284
4021cc:	48                   	dec    %eax
4021cd:	0f 84 9e 00 00 00    	je     0x402271
4021d3:	2d 3f 01 00 00       	sub    $0x13f,%eax
4021d8:	74 6c                	je     0x402246
4021da:	48                   	dec    %eax
4021db:	74 57                	je     0x402234
4021dd:	48                   	dec    %eax
4021de:	74 3b                	je     0x40221b
4021e0:	2d f1 01 00 00       	sub    $0x1f1,%eax
4021e5:	0f 85 ce 00 00 00    	jne    0x4022b9
4021eb:	6a 0c                	push   $0xc
4021ed:	e8 5c 6d 00 00       	call   0x408f4e
4021f2:	8b f0                	mov    %eax,%esi
4021f4:	59                   	pop    %ecx
4021f5:	85 f6                	test   %esi,%esi
4021f7:	0f 84 bc 00 00 00    	je     0x4022b9
4021fd:	a1 e8 d4 40 00       	mov    0x40d4e8,%eax
402202:	8b ce                	mov    %esi,%ecx
402204:	ff 70 10             	push   0x10(%eax)
402207:	ff 75 08             	push   0x8(%ebp)
40220a:	e8 2a fc ff ff       	call   0x401e39
40220f:	56                   	push   %esi
402210:	e8 33 6d 00 00       	call   0x408f48
402215:	59                   	pop    %ecx
402216:	e9 9e 00 00 00       	jmp    0x4022b9
40221b:	a1 e8 d4 40 00       	mov    0x40d4e8,%eax
402220:	6a 00                	push   $0x0
402222:	6a 00                	push   $0x0
402224:	6a 10                	push   $0x10
402226:	ff 70 10             	push   0x10(%eax)
402229:	ff 15 d8 a2 40 00    	call   *0x40a2d8
40222f:	e9 85 00 00 00       	jmp    0x4022b9
402234:	a1 e8 d4 40 00       	mov    0x40d4e8,%eax
402239:	6a 00                	push   $0x0
40223b:	ff 70 10             	push   0x10(%eax)
40223e:	ff 15 e8 a1 40 00    	call   *0x40a1e8
402244:	eb 73                	jmp    0x4022b9
402246:	6a 00                	push   $0x0
402248:	6a 00                	push   $0x0
40224a:	68 f1 00 00 00       	push   $0xf1
40224f:	68 ee 03 00 00       	push   $0x3ee
402254:	ff 75 08             	push   0x8(%ebp)
402257:	ff 15 bc a2 40 00    	call   *0x40a2bc
40225d:	50                   	push   %eax
40225e:	ff 15 dc a2 40 00    	call   *0x40a2dc
402264:	8b 0d e8 d4 40 00    	mov    0x40d4e8,%ecx
40226a:	e8 97 03 00 00       	call   0x402606
40226f:	eb 48                	jmp    0x4022b9
402271:	8b 0d e8 d4 40 00    	mov    0x40d4e8,%ecx
402277:	80 79 14 00          	cmpb   $0x0,0x14(%ecx)
40227b:	75 ed                	jne    0x40226a
40227d:	e8 09 03 00 00       	call   0x40258b
402282:	eb 35                	jmp    0x4022b9
402284:	8b 0d e8 d4 40 00    	mov    0x40d4e8,%ecx
40228a:	e8 77 03 00 00       	call   0x402606
40228f:	6a 01                	push   $0x1
402291:	eb 1d                	jmp    0x4022b0
402293:	ff 75 08             	push   0x8(%ebp)
402296:	8b 0d e8 d4 40 00    	mov    0x40d4e8,%ecx
40229c:	e8 12 01 00 00       	call   0x4023b3
4022a1:	eb 16                	jmp    0x4022b9
4022a3:	8b 0d e8 d4 40 00    	mov    0x40d4e8,%ecx
4022a9:	e8 58 03 00 00       	call   0x402606
4022ae:	6a 02                	push   $0x2
4022b0:	ff 75 08             	push   0x8(%ebp)
4022b3:	ff 15 c0 a2 40 00    	call   *0x40a2c0
4022b9:	6a 01                	push   $0x1
4022bb:	58                   	pop    %eax
4022bc:	5e                   	pop    %esi
4022bd:	5d                   	pop    %ebp
4022be:	c2 10 00             	ret    $0x10
4022c1:	8b c1                	mov    %ecx,%eax
4022c3:	33 c9                	xor    %ecx,%ecx
4022c5:	39 0d e8 d4 40 00    	cmp    %ecx,0x40d4e8
4022cb:	74 08                	je     0x4022d5
4022cd:	8b 54 24 04          	mov    0x4(%esp),%edx
4022d1:	88 0a                	mov    %cl,(%edx)
4022d3:	eb 1b                	jmp    0x4022f0
4022d5:	88 48 14             	mov    %cl,0x14(%eax)
4022d8:	a3 e8 d4 40 00       	mov    %eax,0x40d4e8
4022dd:	89 0d e4 d4 40 00    	mov    %ecx,0x40d4e4
4022e3:	89 48 08             	mov    %ecx,0x8(%eax)
4022e6:	89 48 10             	mov    %ecx,0x10(%eax)
4022e9:	8b 4c 24 04          	mov    0x4(%esp),%ecx
4022ed:	c6 01 01             	movb   $0x1,(%ecx)
4022f0:	c2 04 00             	ret    $0x4
4022f3:	83 25 e8 d4 40 00 00 	andl   $0x0,0x40d4e8
4022fa:	c3                   	ret
4022fb:	56                   	push   %esi
4022fc:	57                   	push   %edi
4022fd:	8b 7c 24 0c          	mov    0xc(%esp),%edi
402301:	8b f1                	mov    %ecx,%esi
402303:	ff 77 04             	push   0x4(%edi)
402306:	ff 37                	push   (%edi)
402308:	ff 76 08             	push   0x8(%esi)
40230b:	ff 76 0c             	push   0xc(%esi)
40230e:	ff 15 a0 a2 40 00    	call   *0x40a2a0
402314:	83 f8 ff             	cmp    $0xffffffff,%eax
402317:	75 11                	jne    0x40232a
402319:	57                   	push   %edi
40231a:	6a 01                	push   $0x1
40231c:	68 01 02 00 00       	push   $0x201
402321:	ff 76 0c             	push   0xc(%esi)
402324:	ff 15 d8 a2 40 00    	call   *0x40a2d8
40232a:	5f                   	pop    %edi
40232b:	5e                   	pop    %esi
40232c:	c2 04 00             	ret    $0x4
40232f:	55                   	push   %ebp
402330:	8b ec                	mov    %esp,%ebp
402332:	51                   	push   %ecx
402333:	51                   	push   %ecx
402334:	8b 45 08             	mov    0x8(%ebp),%eax
402337:	56                   	push   %esi
402338:	8b f1                	mov    %ecx,%esi
40233a:	68 90 01 00 00       	push   $0x190
40233f:	89 46 10             	mov    %eax,0x10(%esi)
402342:	ff 15 f0 a0 40 00    	call   *0x40a0f0
402348:	8d 45 f8             	lea    -0x8(%ebp),%eax
40234b:	50                   	push   %eax
40234c:	ff 15 cc a2 40 00    	call   *0x40a2cc
402352:	33 c0                	xor    %eax,%eax
402354:	50                   	push   %eax
402355:	ff 76 0c             	push   0xc(%esi)
402358:	50                   	push   %eax
402359:	ff 75 fc             	push   -0x4(%ebp)
40235c:	ff 75 f8             	push   -0x8(%ebp)
40235f:	50                   	push   %eax
402360:	ff 76 08             	push   0x8(%esi)
402363:	ff 15 d0 a2 40 00    	call   *0x40a2d0
402369:	5e                   	pop    %esi