40229f:	8b 5c 24 14          	mov    0x14(%esp),%ebx
4022a3:	2b c2                	sub    %edx,%eax
4022a5:	3b c3                	cmp    %ebx,%eax
4022a7:	77 03                	ja     0x4022ac
4022a9:	52                   	push   %edx
4022aa:	eb 26                	jmp    0x4022d2
4022ac:	85 db                	test   %ebx,%ebx
4022ae:	74 27                	je     0x4022d7
4022b0:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
4022b4:	72 04                	jb     0x4022ba
4022b6:	8b 06                	mov    (%esi),%eax
4022b8:	eb 02                	jmp    0x4022bc
4022ba:	8b c6                	mov    %esi,%eax
4022bc:	8d 0c 50             	lea    (%eax,%edx,2),%ecx
4022bf:	2b fb                	sub    %ebx,%edi
4022c1:	8b c7                	mov    %edi,%eax
4022c3:	2b c2                	sub    %edx,%eax
4022c5:	8d 14 59             	lea    (%ecx,%ebx,2),%edx
4022c8:	50                   	push   %eax
4022c9:	e8 9e ee ff ff       	call   0x40116c
4022ce:	59                   	pop    %ecx
4022cf:	57                   	push   %edi
4022d0:	8b ce                	mov    %esi,%ecx
4022d2:	e8 9e ff ff ff       	call   0x402275
4022d7:	5b                   	pop    %ebx
4022d8:	5f                   	pop    %edi
4022d9:	8b c6                	mov    %esi,%eax
4022db:	5e                   	pop    %esi
4022dc:	c2 08 00             	ret    $0x8
4022df:	e8 ef fe ff ff       	call   0x4021d3
4022e4:	cc                   	int3
4022e5:	8b 44 24 04          	mov    0x4(%esp),%eax
4022e9:	56                   	push   %esi
4022ea:	8b f1                	mov    %ecx,%esi
4022ec:	39 46 10             	cmp    %eax,0x10(%esi)
4022ef:	72 0c                	jb     0x4022fd
4022f1:	50                   	push   %eax
4022f2:	e8 7e ff ff ff       	call   0x402275
4022f7:	8b c6                	mov    %esi,%eax
4022f9:	5e                   	pop    %esi
4022fa:	c2 04 00             	ret    $0x4
4022fd:	e8 d1 fe ff ff       	call   0x4021d3
402302:	cc                   	int3
402303:	68 18 93 43 00       	push   $0x439318
402308:	e8 0c 76 00 00       	call   0x409919
40230d:	cc                   	int3
40230e:	53                   	push   %ebx
40230f:	55                   	push   %ebp
402310:	56                   	push   %esi
402311:	8b 74 24 10          	mov    0x10(%esp),%esi
402315:	57                   	push   %edi
402316:	8b f9                	mov    %ecx,%edi
402318:	83 ce 07             	or     $0x7,%esi
40231b:	8d 5f 14             	lea    0x14(%edi),%ebx
40231e:	81 fe fe ff ff 7f    	cmp    $0x7ffffffe,%esi
402324:	76 06                	jbe    0x40232c
402326:	8b 74 24 14          	mov    0x14(%esp),%esi
40232a:	eb 2a                	jmp    0x402356
40232c:	33 d2                	xor    %edx,%edx
40232e:	c7 44 24 14 03 00 00 	movl   $0x3,0x14(%esp)
402335:	00
402336:	8b c6                	mov    %esi,%eax
402338:	8b 2b                	mov    (%ebx),%ebp
40233a:	f7 74 24 14          	divl   0x14(%esp)
40233e:	8b cd                	mov    %ebp,%ecx
402340:	d1 e9                	shr    $1,%ecx
402342:	3b c8                	cmp    %eax,%ecx
402344:	76 10                	jbe    0x402356
402346:	be fe ff ff 7f       	mov    $0x7ffffffe,%esi
40234b:	8b c6                	mov    %esi,%eax
40234d:	2b c1                	sub    %ecx,%eax
40234f:	3b e8                	cmp    %eax,%ebp
402351:	77 03                	ja     0x402356
402353:	8d 34 29             	lea    (%ecx,%ebp,1),%esi
402356:	51                   	push   %ecx
402357:	6a 02                	push   $0x2
402359:	8d 4e 01             	lea    0x1(%esi),%ecx
40235c:	5a                   	pop    %edx
40235d:	e8 24 ee ff ff       	call   0x401186
402362:	8b 6c 24 1c          	mov    0x1c(%esp),%ebp
402366:	89 44 24 18          	mov    %eax,0x18(%esp)
40236a:	59                   	pop    %ecx
40236b:	85 ed                	test   %ebp,%ebp
40236d:	74 14                	je     0x402383
40236f:	83 3b 08             	cmpl   $0x8,(%ebx)
402372:	72 04                	jb     0x402378
402374:	8b 17                	mov    (%edi),%edx
402376:	eb 02                	jmp    0x40237a
402378:	8b d7                	mov    %edi,%edx
40237a:	55                   	push   %ebp
40237b:	8b c8                	mov    %eax,%ecx
40237d:	e8 ea ed ff ff       	call   0x40116c
402382:	59                   	pop    %ecx
402383:	6a 00                	push   $0x0
402385:	6a 01                	push   $0x1
402387:	8b cf                	mov    %edi,%ecx
402389:	e8 37 fd ff ff       	call   0x4020c5
40238e:	85 ff                	test   %edi,%edi
402390:	74 06                	je     0x402398
402392:	8b 44 24 14          	mov    0x14(%esp),%eax
402396:	89 07                	mov    %eax,(%edi)
402398:	55                   	push   %ebp
402399:	8b cf                	mov    %edi,%ecx
40239b:	89 33                	mov    %esi,(%ebx)
40239d:	e8 d3 fe ff ff       	call   0x402275
4023a2:	5f                   	pop    %edi
4023a3:	5e                   	pop    %esi
4023a4:	5d                   	pop    %ebp
4023a5:	5b                   	pop    %ebx
4023a6:	c2 08 00             	ret    $0x8
4023a9:	51                   	push   %ecx
4023aa:	33 c9                	xor    %ecx,%ecx
4023ac:	6a 0c                	push   $0xc
4023ae:	5a                   	pop    %edx
4023af:	41                   	inc    %ecx
4023b0:	e8 d1 ed ff ff       	call   0x401186
4023b5:	59                   	pop    %ecx
4023b6:	8b 4c 24 04          	mov    0x4(%esp),%ecx
4023ba:	85 c9                	test   %ecx,%ecx
4023bc:	75 06                	jne    0x4023c4
4023be:	8b c8                	mov    %eax,%ecx
4023c0:	8b d0                	mov    %eax,%edx
4023c2:	eb 04                	jmp    0x4023c8
4023c4:	8b 54 24 08          	mov    0x8(%esp),%edx
4023c8:	85 c0                	test   %eax,%eax
4023ca:	74 02                	je     0x4023ce
4023cc:	89 08                	mov    %ecx,(%eax)
4023ce:	8d 48 04             	lea    0x4(%eax),%ecx
4023d1:	85 c9                	test   %ecx,%ecx
4023d3:	74 02                	je     0x4023d7
4023d5:	89 11                	mov    %edx,(%ecx)
4023d7:	c2 08 00             	ret    $0x8
4023da:	53                   	push   %ebx
4023db:	55                   	push   %ebp
4023dc:	56                   	push   %esi
4023dd:	8b f1                	mov    %ecx,%esi
4023df:	bd fc 92 43 00       	mov    $0x4392fc,%ebp
4023e4:	57                   	push   %edi
4023e5:	8b cd                	mov    %ebp,%ecx
4023e7:	e8 60 ed ff ff       	call   0x40114c
4023ec:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
4023f0:	8b f8                	mov    %eax,%edi
4023f2:	8b 5e 10             	mov    0x10(%esi),%ebx
4023f5:	72 02                	jb     0x4023f9
4023f7:	8b 36                	mov    (%esi),%esi
4023f9:	3b df                	cmp    %edi,%ebx
4023fb:	0f 42 c3             	cmovb  %ebx,%eax
4023fe:	85 c0                	test   %eax,%eax
402400:	75 04                	jne    0x402406
402402:	33 c9                	xor    %ecx,%ecx
402404:	eb 0d                	jmp    0x402413
402406:	50                   	push   %eax
402407:	55                   	push   %ebp
402408:	56                   	push   %esi
402409:	e8 02 ed ff ff       	call   0x401110
40240e:	83 c4 0c             	add    $0xc,%esp
402411:	8b c8                	mov    %eax,%ecx
402413:	33 c0                	xor    %eax,%eax
402415:	3b df                	cmp    %edi,%ebx
402417:	0f 95 c0             	setne  %al
40241a:	83 ca ff             	or     $0xffffffff,%edx
40241d:	3b df                	cmp    %edi,%ebx
40241f:	5f                   	pop    %edi
402420:	0f 42 c2             	cmovb  %edx,%eax
402423:	85 c9                	test   %ecx,%ecx
402425:	5e                   	pop    %esi
402426:	0f 45 c1             	cmovne %ecx,%eax
402429:	f7 d8                	neg    %eax
40242b:	5d                   	pop    %ebp
40242c:	1a c0                	sbb    %al,%al
40242e:	fe c0                	inc    %al
402430:	5b                   	pop    %ebx
402431:	c3                   	ret
402432:	55                   	push   %ebp
402433:	8b ec                	mov    %esp,%ebp
402435:	8b 45 08             	mov    0x8(%ebp),%eax
402438:	56                   	push   %esi
402439:	8b f1                	mov    %ecx,%esi
40243b:	89 06                	mov    %eax,(%esi)
40243d:	8b 45 0c             	mov    0xc(%ebp),%eax
402440:	89 46 04             	mov    %eax,0x4(%esi)
402443:	8b 45 10             	mov    0x10(%ebp),%eax
402446:	89 46 08             	mov    %eax,0x8(%esi)
402449:	8b 45 18             	mov    0x18(%ebp),%eax
40244c:	89 46 0c             	mov    %eax,0xc(%esi)
40244f:	8b 45 20             	mov    0x20(%ebp),%eax
402452:	89 46 10             	mov    %eax,0x10(%esi)
402455:	8b 45 24             	mov    0x24(%ebp),%eax
402458:	89 46 14             	mov    %eax,0x14(%esi)
40245b:	8b 45 1c             	mov    0x1c(%ebp),%eax
40245e:	89 46 18             	mov    %eax,0x18(%esi)
402461:	8b 45 28             	mov    0x28(%ebp),%eax
402464:	8b 08                	mov    (%eax),%ecx
402466:	8b 40 04             	mov    0x4(%eax),%eax
402469:	89 46 20             	mov    %eax,0x20(%esi)
40246c:	8b 45 14             	mov    0x14(%ebp),%eax
40246f:	89 4e 1c             	mov    %ecx,0x1c(%esi)
402472:	33 c9                	xor    %ecx,%ecx
402474:	89 46 28             	mov    %eax,0x28(%esi)
402477:	8d 46 40             	lea    0x40(%esi),%eax
40247a:	50                   	push   %eax
40247b:	89 4e 24             	mov    %ecx,0x24(%esi)
40247e:	89 4e 2c             	mov    %ecx,0x2c(%esi)
402481:	89 4e 30             	mov    %ecx,0x30(%esi)
402484:	89 4e 34             	mov    %ecx,0x34(%esi)
402487:	89 4e 38             	mov    %ecx,0x38(%esi)
40248a:	89 4e 3c             	mov    %ecx,0x3c(%esi)
40248d:	89 4e 48             	mov    %ecx,0x48(%esi)
402490:	ff 15 30 11 43 00    	call   *0x431130
402496:	8b c6                	mov    %esi,%eax
402498:	5e                   	pop    %esi
402499:	5d                   	pop    %ebp
40249a:	c2 24 00             	ret    $0x24
40249d:	55                   	push   %ebp
40249e:	8b ec                	mov    %esp,%ebp
4024a0:	83 ec 20             	sub    $0x20,%esp
4024a3:	53                   	push   %ebx
4024a4:	56                   	push   %esi
4024a5:	57                   	push   %edi
4024a6:	8b f9                	mov    %ecx,%edi
4024a8:	33 db                	xor    %ebx,%ebx
4024aa:	ff 77 04             	push   0x4(%edi)
4024ad:	53                   	push   %ebx
4024ae:	68 00 00 00 10       	push   $0x10000000
4024b3:	ff 15 28 11 43 00    	call   *0x431128
4024b9:	89 47 2c             	mov    %eax,0x2c(%edi)
4024bc:	85 c0                	test   %eax,%eax
4024be:	74 52                	je     0x402512
4024c0:	8d 4d f0             	lea    -0x10(%ebp),%ecx
4024c3:	51                   	push   %ecx
4024c4:	8d 4d e8             	lea    -0x18(%ebp),%ecx
4024c7:	51                   	push   %ecx
4024c8:	8d 4d e0             	lea    -0x20(%ebp),%ecx
4024cb:	51                   	push   %ecx
4024cc:	8d 4d f8             	lea    -0x8(%ebp),%ecx
4024cf:	51                   	push   %ecx
4024d0:	50                   	push   %eax
4024d1:	ff 15 34 11 43 00    	call   *0x431134
4024d7:	85 c0                	test   %eax,%eax
4024d9:	74 0c                	je     0x4024e7
4024db:	8b 45 f8             	mov    -0x8(%ebp),%eax
4024de:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4024e1:	89 47 40             	mov    %eax,0x40(%edi)
4024e4:	89 4f 44             	mov    %ecx,0x44(%edi)
4024e7:	8b 47 40             	mov    0x40(%edi),%eax
4024ea:	8b 35 04 11 43 00    	mov    0x431104,%esi
4024f0:	53                   	push   %ebx
4024f1:	53                   	push   %ebx
4024f2:	6a 01                	push   $0x1
4024f4:	53                   	push   %ebx
4024f5:	89 47 48             	mov    %eax,0x48(%edi)
4024f8:	ff d6                	call   *%esi
4024fa:	89 47 30             	mov    %eax,0x30(%edi)
4024fd:	85 c0                	test   %eax,%eax
4024ff:	74 11                	je     0x402512
402501:	53                   	push   %ebx
402502:	53                   	push   %ebx
402503:	6a 01                	push   $0x1
402505:	53                   	push   %ebx
402506:	ff d6                	call   *%esi
402508:	85 c0                	test   %eax,%eax
40250a:	89 47 34             	mov    %eax,0x34(%edi)
40250d:	0f 95 c0             	setne  %al
402510:	eb 02                	jmp    0x402514
402512:	32 c0                	xor    %al,%al
402514:	5f                   	pop    %edi
402515:	5e                   	pop    %esi
402516:	5b                   	pop    %ebx
402517:	c9                   	leave
402518:	c3                   	ret
402519:	56                   	push   %esi
40251a:	8b f1                	mov    %ecx,%esi
40251c:	83 7e 38 00          	cmpl   $0x0,0x38(%esi)
402520:	74 0f                	je     0x402531
402522:	6a ff                	push   $0xffffffff
402524:	ff 76 38             	push   0x38(%esi)
402527:	ff 15 18 11 43 00    	call   *0x431118
40252d:	83 66 38 00          	andl   $0x0,0x38(%esi)
402531:	5e                   	pop    %esi
402532:	c3                   	ret
402533:	56                   	push   %esi
402534:	8b f1                	mov    %ecx,%esi
402536:	8b 46 3c             	mov    0x3c(%esi),%eax
402539:	85 c0                	test   %eax,%eax
40253b:	74 1d                	je     0x40255a
40253d:	80 7c 24 08 00       	cmpb   $0x0,0x8(%esp)
402542:	74 0b                	je     0x40254f
402544:	6a ff                	push   $0xffffffff
402546:	50                   	push   %eax
402547:	ff 15 18 11 43 00    	call   *0x431118
40254d:	eb 07                	jmp    0x402556
40254f:	50                   	push   %eax
402550:	ff 15 e8 10 43 00    	call   *0x4310e8
402556:	83 66 3c 00          	andl   $0x0,0x3c(%esi)
40255a:	5e                   	pop    %esi
40255b:	c2 04 00             	ret    $0x4
40255e:	56                   	push   %esi
40255f:	57                   	push   %edi
402560:	8b f1                	mov    %ecx,%esi
402562:	e8 b2 ff ff ff       	call   0x402519
402567:	6a 01                	push   $0x1
402569:	8b ce                	mov    %esi,%ecx
40256b:	e8 c3 ff ff ff       	call   0x402533
402570:	83 7e 2c 00          	cmpl   $0x0,0x2c(%esi)
402574:	8b 3d 20 10 43 00    	mov    0x431020,%edi
40257a:	74 05                	je     0x402581
40257c:	ff 76 2c             	push   0x2c(%esi)
40257f:	ff d7                	call   *%edi
402581:	83 7e 30 00          	cmpl   $0x0,0x30(%esi)
402585:	74 05                	je     0x40258c
402587:	ff 76 30             	push   0x30(%esi)
40258a:	ff d7                	call   *%edi
40258c:	83 7e 34 00          	cmpl   $0x0,0x34(%esi)
402590:	74 05                	je     0x402597
402592:	ff 76 34             	push   0x34(%esi)
402595:	ff d7                	call   *%edi
402597:	ff 76 24             	push   0x24(%esi)
40259a:	e8 51 44 00 00       	call   0x4069f0
40259f:	59                   	pop    %ecx
4025a0:	5f                   	pop    %edi
4025a1:	5e                   	pop    %esi
4025a2:	c3                   	ret
4025a3:	53                   	push   %ebx
4025a4:	55                   	push   %ebp
4025a5:	56                   	push   %esi
4025a6:	57                   	push   %edi
4025a7:	8b 79 20             	mov    0x20(%ecx),%edi
4025aa:	33 c0                	xor    %eax,%eax
4025ac:	85 ff                	test   %edi,%edi
4025ae:	7e 45                	jle    0x4025f5
4025b0:	8b 69 24             	mov    0x24(%ecx),%ebp
4025b3:	8b f5                	mov    %ebp,%esi
4025b5:	8b 54 24 14          	mov    0x14(%esp),%edx
4025b9:	8b ce                	mov    %esi,%ecx
4025bb:	66 8b 19             	mov    (%ecx),%bx
4025be:	66 3b 1a             	cmp    (%edx),%bx
4025c1:	75 1e                	jne    0x4025e1
4025c3:	66 85 db             	test   %bx,%bx
4025c6:	74 15                	je     0x4025dd
4025c8:	66 8b 59 02          	mov    0x2(%ecx),%bx
4025cc:	66 3b 5a 02          	cmp    0x2(%edx),%bx
4025d0:	75 0f                	jne    0x4025e1
4025d2:	83 c1 04             	add    $0x4,%ecx
4025d5:	83 c2 04             	add    $0x4,%edx
4025d8:	66 85 db             	test   %bx,%bx
4025db:	75 de                	jne    0x4025bb
4025dd:	33 c9                	xor    %ecx,%ecx
4025df:	eb 05                	jmp    0x4025e6
4025e1:	1b c9                	sbb    %ecx,%ecx
4025e3:	83 c9 01             	or     $0x1,%ecx