402189:	8b da                	mov    %edx,%ebx
40218b:	8b 06                	mov    (%esi),%eax
40218d:	3b 07                	cmp    (%edi),%eax
40218f:	75 07                	jne    0x402198
402191:	8b 06                	mov    (%esi),%eax
402193:	8b 40 04             	mov    0x4(%eax),%eax
402196:	89 07                	mov    %eax,(%edi)
402198:	8b 06                	mov    (%esi),%eax
40219a:	03 c3                	add    %ebx,%eax
40219c:	89 44 24 04          	mov    %eax,0x4(%esp)
4021a0:	8b 44 24 04          	mov    0x4(%esp),%eax
4021a4:	83 20 fe             	andl   $0xfffffffe,(%eax)
4021a7:	8b 06                	mov    (%esi),%eax
4021a9:	89 44 24 04          	mov    %eax,0x4(%esp)
4021ad:	8b c3                	mov    %ebx,%eax
4021af:	83 c8 02             	or     $0x2,%eax
4021b2:	8b 54 24 04          	mov    0x4(%esp),%edx
4021b6:	89 02                	mov    %eax,(%edx)
4021b8:	8b 44 24 04          	mov    0x4(%esp),%eax
4021bc:	83 c0 04             	add    $0x4,%eax
4021bf:	89 04 24             	mov    %eax,(%esp)
4021c2:	ff 05 9c 95 42 00    	incl   0x42959c
4021c8:	83 eb 04             	sub    $0x4,%ebx
4021cb:	01 1d a0 95 42 00    	add    %ebx,0x4295a0
4021d1:	8b 04 24             	mov    (%esp),%eax
4021d4:	83 c4 0c             	add    $0xc,%esp
4021d7:	5d                   	pop    %ebp
4021d8:	5f                   	pop    %edi
4021d9:	5e                   	pop    %esi
4021da:	5b                   	pop    %ebx
4021db:	c3                   	ret
4021dc:	55                   	push   %ebp
4021dd:	8b ec                	mov    %esp,%ebp
4021df:	83 c4 ec             	add    $0xffffffec,%esp
4021e2:	53                   	push   %ebx
4021e3:	8b d8                	mov    %eax,%ebx
4021e5:	80 3d ac 95 42 00 00 	cmpb   $0x0,0x4295ac
4021ec:	75 09                	jne    0x4021f7
4021ee:	e8 8d f7 ff ff       	call   0x401980
4021f3:	84 c0                	test   %al,%al
4021f5:	74 08                	je     0x4021ff
4021f7:	81 fb f8 ff ff 7f    	cmp    $0x7ffffff8,%ebx
4021fd:	7e 0a                	jle    0x402209
4021ff:	33 c0                	xor    %eax,%eax
402201:	89 45 fc             	mov    %eax,-0x4(%ebp)
402204:	e9 76 01 00 00       	jmp    0x40237f
402209:	33 d2                	xor    %edx,%edx
40220b:	55                   	push   %ebp
40220c:	68 78 23 40 00       	push   $0x402378
402211:	64 ff 32             	push   %fs:(%edx)
402214:	64 89 22             	mov    %esp,%fs:(%edx)
402217:	80 3d 35 90 42 00 00 	cmpb   $0x0,0x429035
40221e:	74 0a                	je     0x40222a
402220:	68 b4 95 42 00       	push   $0x4295b4
402225:	e8 36 ef ff ff       	call   0x401160
40222a:	83 c3 07             	add    $0x7,%ebx
40222d:	83 e3 fc             	and    $0xfffffffc,%ebx
402230:	83 fb 0c             	cmp    $0xc,%ebx
402233:	7d 05                	jge    0x40223a
402235:	bb 0c 00 00 00       	mov    $0xc,%ebx
40223a:	81 fb 00 10 00 00    	cmp    $0x1000,%ebx
402240:	0f 8f ac 00 00 00    	jg     0x4022f2
402246:	8b c3                	mov    %ebx,%eax
402248:	85 c0                	test   %eax,%eax
40224a:	79 03                	jns    0x40224f
40224c:	83 c0 03             	add    $0x3,%eax
40224f:	c1 f8 02             	sar    $0x2,%eax
402252:	8b 15 0c 96 42 00    	mov    0x42960c,%edx
402258:	8b 54 82 f4          	mov    -0xc(%edx,%eax,4),%edx
40225c:	89 55 f8             	mov    %edx,-0x8(%ebp)
40225f:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
402263:	0f 84 89 00 00 00    	je     0x4022f2
402269:	8b 55 f8             	mov    -0x8(%ebp),%edx
40226c:	03 d3                	add    %ebx,%edx
40226e:	89 55 ec             	mov    %edx,-0x14(%ebp)
402271:	8b 55 ec             	mov    -0x14(%ebp),%edx
402274:	83 22 fe             	andl   $0xfffffffe,(%edx)
402277:	8b 55 f8             	mov    -0x8(%ebp),%edx
40227a:	8b 52 04             	mov    0x4(%edx),%edx
40227d:	89 55 f0             	mov    %edx,-0x10(%ebp)
402280:	8b 55 f0             	mov    -0x10(%ebp),%edx
402283:	3b 55 f8             	cmp    -0x8(%ebp),%edx
402286:	75 0e                	jne    0x402296
402288:	8b 15 0c 96 42 00    	mov    0x42960c,%edx
40228e:	33 c9                	xor    %ecx,%ecx
402290:	89 4c 82 f4          	mov    %ecx,-0xc(%edx,%eax,4)
402294:	eb 26                	jmp    0x4022bc
402296:	8b 15 0c 96 42 00    	mov    0x42960c,%edx
40229c:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40229f:	89 4c 82 f4          	mov    %ecx,-0xc(%edx,%eax,4)
4022a3:	8b 45 f8             	mov    -0x8(%ebp),%eax
4022a6:	8b 00                	mov    (%eax),%eax
4022a8:	89 45 f4             	mov    %eax,-0xc(%ebp)
4022ab:	8b 45 f4             	mov    -0xc(%ebp),%eax
4022ae:	8b 55 f0             	mov    -0x10(%ebp),%edx
4022b1:	89 50 04             	mov    %edx,0x4(%eax)
4022b4:	8b 45 f0             	mov    -0x10(%ebp),%eax
4022b7:	8b 55 f4             	mov    -0xc(%ebp),%edx
4022ba:	89 10                	mov    %edx,(%eax)
4022bc:	8b 45 f8             	mov    -0x8(%ebp),%eax
4022bf:	89 45 ec             	mov    %eax,-0x14(%ebp)
4022c2:	8b 45 f8             	mov    -0x8(%ebp),%eax
4022c5:	8b 40 08             	mov    0x8(%eax),%eax
4022c8:	83 c8 02             	or     $0x2,%eax
4022cb:	8b 55 ec             	mov    -0x14(%ebp),%edx
4022ce:	89 02                	mov    %eax,(%edx)
4022d0:	8b 45 ec             	mov    -0x14(%ebp),%eax
4022d3:	83 c0 04             	add    $0x4,%eax
4022d6:	89 45 fc             	mov    %eax,-0x4(%ebp)
4022d9:	ff 05 9c 95 42 00    	incl   0x42959c
4022df:	83 eb 04             	sub    $0x4,%ebx
4022e2:	01 1d a0 95 42 00    	add    %ebx,0x4295a0
4022e8:	e8 d7 0e 00 00       	call   0x4031c4
4022ed:	e9 8d 00 00 00       	jmp    0x40237f
4022f2:	3b 1d 04 96 42 00    	cmp    0x429604,%ebx
4022f8:	7f 53                	jg     0x40234d
4022fa:	29 1d 04 96 42 00    	sub    %ebx,0x429604
402300:	83 3d 04 96 42 00 0c 	cmpl   $0xc,0x429604
402307:	7d 0d                	jge    0x402316
402309:	03 1d 04 96 42 00    	add    0x429604,%ebx
40230f:	33 c0                	xor    %eax,%eax
402311:	a3 04 96 42 00       	mov    %eax,0x429604
402316:	a1 08 96 42 00       	mov    0x429608,%eax
40231b:	89 45 ec             	mov    %eax,-0x14(%ebp)
40231e:	01 1d 08 96 42 00    	add    %ebx,0x429608
402324:	8b c3                	mov    %ebx,%eax
402326:	83 c8 02             	or     $0x2,%eax
402329:	8b 55 ec             	mov    -0x14(%ebp),%edx
40232c:	89 02                	mov    %eax,(%edx)
40232e:	8b 45 ec             	mov    -0x14(%ebp),%eax
402331:	83 c0 04             	add    $0x4,%eax
402334:	89 45 fc             	mov    %eax,-0x4(%ebp)
402337:	ff 05 9c 95 42 00    	incl   0x42959c
40233d:	83 eb 04             	sub    $0x4,%ebx
402340:	01 1d a0 95 42 00    	add    %ebx,0x4295a0
402346:	e8 79 0e 00 00       	call   0x4031c4
40234b:	eb 32                	jmp    0x40237f
40234d:	8b c3                	mov    %ebx,%eax
40234f:	e8 40 fd ff ff       	call   0x402094
402354:	89 45 fc             	mov    %eax,-0x4(%ebp)
402357:	33 c0                	xor    %eax,%eax
402359:	5a                   	pop    %edx
40235a:	59                   	pop    %ecx
40235b:	59                   	pop    %ecx
40235c:	64 89 10             	mov    %edx,%fs:(%eax)
40235f:	68 7f 23 40 00       	push   $0x40237f
402364:	80 3d 35 90 42 00 00 	cmpb   $0x0,0x429035
40236b:	74 0a                	je     0x402377
40236d:	68 b4 95 42 00       	push   $0x4295b4
402372:	e8 f1 ed ff ff       	call   0x401168
402377:	c3                   	ret
402378:	e9 8b 0d 00 00       	jmp    0x403108
40237d:	eb e5                	jmp    0x402364
40237f:	8b 45 fc             	mov    -0x4(%ebp),%eax
402382:	5b                   	pop    %ebx
402383:	8b e5                	mov    %ebp,%esp
402385:	5d                   	pop    %ebp
402386:	c3                   	ret
402387:	90                   	nop
402388:	55                   	push   %ebp
402389:	8b ec                	mov    %esp,%ebp
40238b:	83 c4 f0             	add    $0xfffffff0,%esp
40238e:	53                   	push   %ebx
40238f:	8b d8                	mov    %eax,%ebx
402391:	33 c0                	xor    %eax,%eax
402393:	a3 b0 95 42 00       	mov    %eax,0x4295b0
402398:	80 3d ac 95 42 00 00 	cmpb   $0x0,0x4295ac
40239f:	75 1f                	jne    0x4023c0
4023a1:	e8 da f5 ff ff       	call   0x401980
4023a6:	84 c0                	test   %al,%al
4023a8:	75 16                	jne    0x4023c0
4023aa:	c7 05 b0 95 42 00 08 	movl   $0x8,0x4295b0
4023b1:	00 00 00
4023b4:	c7 45 fc 08 00 00 00 	movl   $0x8,-0x4(%ebp)
4023bb:	e9 96 01 00 00       	jmp    0x402556
4023c0:	33 d2                	xor    %edx,%edx
4023c2:	55                   	push   %ebp
4023c3:	68 4f 25 40 00       	push   $0x40254f
4023c8:	64 ff 32             	push   %fs:(%edx)
4023cb:	64 89 22             	mov    %esp,%fs:(%edx)
4023ce:	80 3d 35 90 42 00 00 	cmpb   $0x0,0x429035
4023d5:	74 0a                	je     0x4023e1
4023d7:	68 b4 95 42 00       	push   $0x4295b4
4023dc:	e8 7f ed ff ff       	call   0x401160
4023e1:	89 5d f8             	mov    %ebx,-0x8(%ebp)
4023e4:	8b 45 f8             	mov    -0x8(%ebp),%eax
4023e7:	83 e8 04             	sub    $0x4,%eax
4023ea:	89 45 f8             	mov    %eax,-0x8(%ebp)
4023ed:	8b 45 f8             	mov    -0x8(%ebp),%eax
4023f0:	8b 18                	mov    (%eax),%ebx
4023f2:	f6 c3 02             	test   $0x2,%bl
4023f5:	75 0f                	jne    0x402406
4023f7:	c7 05 b0 95 42 00 09 	movl   $0x9,0x4295b0
4023fe:	00 00 00
402401:	e9 20 01 00 00       	jmp    0x402526
402406:	ff 0d 9c 95 42 00    	decl   0x42959c
40240c:	8b c3                	mov    %ebx,%eax
40240e:	25 fc ff ff 7f       	and    $0x7ffffffc,%eax
402413:	83 e8 04             	sub    $0x4,%eax
402416:	29 05 a0 95 42 00    	sub    %eax,0x4295a0
40241c:	f6 c3 01             	test   $0x1,%bl
40241f:	74 53                	je     0x402474
402421:	8b 45 f8             	mov    -0x8(%ebp),%eax
402424:	83 e8 0c             	sub    $0xc,%eax
402427:	8b 40 08             	mov    0x8(%eax),%eax
40242a:	83 f8 0c             	cmp    $0xc,%eax
40242d:	7c 07                	jl     0x402436
40242f:	a9 03 00 00 80       	test   $0x80000003,%eax
402434:	74 0f                	je     0x402445
402436:	c7 05 b0 95 42 00 0a 	movl   $0xa,0x4295b0
40243d:	00 00 00
402440:	e9 e1 00 00 00       	jmp    0x402526
402445:	8b 55 f8             	mov    -0x8(%ebp),%edx
402448:	2b d0                	sub    %eax,%edx
40244a:	89 55 f0             	mov    %edx,-0x10(%ebp)
40244d:	8b 55 f0             	mov    -0x10(%ebp),%edx
402450:	3b 42 08             	cmp    0x8(%edx),%eax
402453:	74 0f                	je     0x402464
402455:	c7 05 b0 95 42 00 0a 	movl   $0xa,0x4295b0
40245c:	00 00 00
40245f:	e9 c2 00 00 00       	jmp    0x402526
402464:	03 d8                	add    %eax,%ebx
402466:	8b 45 f0             	mov    -0x10(%ebp),%eax
402469:	89 45 f8             	mov    %eax,-0x8(%ebp)
40246c:	8b 45 f0             	mov    -0x10(%ebp),%eax
40246f:	e8 e4 f6 ff ff       	call   0x401b58
402474:	81 e3 fc ff ff 7f    	and    $0x7ffffffc,%ebx
40247a:	8b 45 f8             	mov    -0x8(%ebp),%eax
40247d:	03 c3                	add    %ebx,%eax
40247f:	89 45 f4             	mov    %eax,-0xc(%ebp)
402482:	8b 45 f4             	mov    -0xc(%ebp),%eax
402485:	3b 05 08 96 42 00    	cmp    0x429608,%eax
40248b:	75 2c                	jne    0x4024b9
40248d:	29 1d 08 96 42 00    	sub    %ebx,0x429608
402493:	01 1d 04 96 42 00    	add    %ebx,0x429604
402499:	81 3d 04 96 42 00 00 	cmpl   $0x3c00,0x429604
4024a0:	3c 00 00
4024a3:	7e 05                	jle    0x4024aa
4024a5:	e8 7a fa ff ff       	call   0x401f24
4024aa:	33 c0                	xor    %eax,%eax
4024ac:	89 45 fc             	mov    %eax,-0x4(%ebp)
4024af:	e8 10 0d 00 00       	call   0x4031c4
4024b4:	e9 9d 00 00 00       	jmp    0x402556
4024b9:	8b 45 f4             	mov    -0xc(%ebp),%eax
4024bc:	8b 00                	mov    (%eax),%eax
4024be:	a8 02                	test   $0x2,%al
4024c0:	74 1e                	je     0x4024e0
4024c2:	25 fc ff ff 7f       	and    $0x7ffffffc,%eax
4024c7:	83 f8 04             	cmp    $0x4,%eax
4024ca:	7d 0c                	jge    0x4024d8
4024cc:	c7 05 b0 95 42 00 0b 	movl   $0xb,0x4295b0
4024d3:	00 00 00
4024d6:	eb 4e                	jmp    0x402526
4024d8:	8b 45 f4             	mov    -0xc(%ebp),%eax
4024db:	83 08 01             	orl    $0x1,(%eax)
4024de:	eb 3c                	jmp    0x40251c
4024e0:	8b 45 f4             	mov    -0xc(%ebp),%eax
4024e3:	89 45 f0             	mov    %eax,-0x10(%ebp)
4024e6:	8b 45 f0             	mov    -0x10(%ebp),%eax
4024e9:	83 78 04 00          	cmpl   $0x0,0x4(%eax)
4024ed:	74 11                	je     0x402500
4024ef:	8b 45 f0             	mov    -0x10(%ebp),%eax
4024f2:	83 38 00             	cmpl   $0x0,(%eax)
4024f5:	74 09                	je     0x402500
4024f7:	8b 45 f0             	mov    -0x10(%ebp),%eax
4024fa:	83 78 08 0c          	cmpl   $0xc,0x8(%eax)
4024fe:	7d 0c                	jge    0x40250c
402500:	c7 05 b0 95 42 00 0b 	movl   $0xb,0x4295b0
402507:	00 00 00
40250a:	eb 1a                	jmp    0x402526
40250c:	8b 45 f0             	mov    -0x10(%ebp),%eax
40250f:	8b 40 08             	mov    0x8(%eax),%eax
402512:	03 d8                	add    %eax,%ebx
402514:	8b 45 f0             	mov    -0x10(%ebp),%eax
402517:	e8 3c f6 ff ff       	call   0x401b58
40251c:	8b d3                	mov    %ebx,%edx
40251e:	8b 45 f8             	mov    -0x8(%ebp),%eax
402521:	e8 06 f9 ff ff       	call   0x401e2c
402526:	a1 b0 95 42 00       	mov    0x4295b0,%eax
40252b:	89 45 fc             	mov    %eax,-0x4(%ebp)
40252e:	33 c0                	xor    %eax,%eax
402530:	5a                   	pop    %edx
402531:	59                   	pop    %ecx
402532:	59                   	pop    %ecx
402533:	64 89 10             	mov    %edx,%fs:(%eax)
402536:	68 56 25 40 00       	push   $0x402556
40253b:	80 3d 35 90 42 00 00 	cmpb   $0x0,0x429035
402542:	74 0a                	je     0x40254e
402544:	68 b4 95 42 00       	push   $0x4295b4
402549:	e8 1a ec ff ff       	call   0x401168
40254e:	c3                   	ret
40254f:	e9 b4 0b 00 00       	jmp    0x403108
402554:	eb e5                	jmp    0x40253b
402556:	8b 45 fc             	mov    -0x4(%ebp),%eax
402559:	5b                   	pop    %ebx
40255a:	8b e5                	mov    %ebp,%esp
40255c:	5d                   	pop    %ebp
40255d:	c3                   	ret
40255e:	8b c0                	mov    %eax,%eax
402560:	53                   	push   %ebx
402561:	56                   	push   %esi
402562:	57                   	push   %edi
402563:	55                   	push   %ebp
402564:	83 c4 f4             	add    $0xfffffff4,%esp
402567:	8b da                	mov    %edx,%ebx
402569:	83 c3 07             	add    $0x7,%ebx
40256c:	83 e3 fc             	and    $0xfffffffc,%ebx
40256f:	83 fb 0c             	cmp    $0xc,%ebx
402572:	7d 05                	jge    0x402579
402574:	bb 0c 00 00 00       	mov    $0xc,%ebx
402579:	83 e8 04             	sub    $0x4,%eax
40257c:	89 04 24             	mov    %eax,(%esp)
40257f:	8b 04 24             	mov    (%esp),%eax
402582:	8b 30                	mov    (%eax),%esi
402584:	81 e6 fc ff ff 7f    	and    $0x7ffffffc,%esi
40258a:	8b 04 24             	mov    (%esp),%eax
40258d:	03 c6                	add    %esi,%eax
40258f:	89 44 24 04          	mov    %eax,0x4(%esp)
402593:	3b f3                	cmp    %ebx,%esi
402595:	75 07                	jne    0x40259e
402597:	b0 01                	mov    $0x1,%al
402599:	e9 bd 01 00 00       	jmp    0x40275b
40259e:	3b f3                	cmp    %ebx,%esi
4025a0:	0f 8e 90 00 00 00    	jle    0x402636
4025a6:	8b ee                	mov    %esi,%ebp
4025a8:	2b eb                	sub    %ebx,%ebp
4025aa:	8b 54 24 04          	mov    0x4(%esp),%edx
4025ae:	3b 15 08 96 42 00    	cmp    0x429608,%edx
4025b4:	75 2c                	jne    0x4025e2
4025b6:	29 2d 08 96 42 00    	sub    %ebp,0x429608
4025bc:	01 2d 04 96 42 00    	add    %ebp,0x429604
4025c2:	83 3d 04 96 42 00 0c 	cmpl   $0xc,0x429604
4025c9:	0f 8d 6f 01 00 00    	jge    0x40273e
4025cf:	01 2d 08 96 42 00    	add    %ebp,0x429608
4025d5:	29 2d 04 96 42 00    	sub    %ebp,0x429604
4025db:	8b de                	mov    %esi,%ebx
4025dd:	e9 5c 01 00 00       	jmp    0x40273e
4025e2:	89 44 24 04          	mov    %eax,0x4(%esp)
4025e6:	8b 44 24 04          	mov    0x4(%esp),%eax
4025ea:	f6 00 02             	testb  $0x2,(%eax)
4025ed:	75 18                	jne    0x402607
4025ef:	8b 44 24 04          	mov    0x4(%esp),%eax
4025f3:	89 44 24 08          	mov    %eax,0x8(%esp)
4025f7:	8b 44 24 08          	mov    0x8(%esp),%eax
4025fb:	03 68 08             	add    0x8(%eax),%ebp
4025fe:	8b 44 24 08          	mov    0x8(%esp),%eax
402602:	e8 51 f5 ff ff       	call   0x401b58
402607:	83 fd 0c             	cmp    $0xc,%ebp
40260a:	7c 23                	jl     0x40262f
40260c:	8b 04 24             	mov    (%esp),%eax