43a29a:	50                   	push   %eax
43a29b:	ff 15 14 d8 48 00    	call   *0x48d814
43a2a1:	8b f0                	mov    %eax,%esi
43a2a3:	ff 75 f8             	push   -0x8(%ebp)
43a2a6:	ff d7                	call   *%edi
43a2a8:	ff 75 f0             	push   -0x10(%ebp)
43a2ab:	ff d7                	call   *%edi
43a2ad:	8d 4d c0             	lea    -0x40(%ebp),%ecx
43a2b0:	e8 82 28 fd ff       	call   0x40cb37
43a2b5:	8d 4d e0             	lea    -0x20(%ebp),%ecx
43a2b8:	e8 7a 28 fd ff       	call   0x40cb37
43a2bd:	8d 4d d0             	lea    -0x30(%ebp),%ecx
43a2c0:	e8 72 28 fd ff       	call   0x40cb37
43a2c5:	5f                   	pop    %edi
43a2c6:	8b c6                	mov    %esi,%eax
43a2c8:	5e                   	pop    %esi
43a2c9:	5b                   	pop    %ebx
43a2ca:	c9                   	leave
43a2cb:	c3                   	ret
43a2cc:	55                   	push   %ebp
43a2cd:	8b ec                	mov    %esp,%ebp
43a2cf:	8b 45 08             	mov    0x8(%ebp),%eax
43a2d2:	83 ec 4c             	sub    $0x4c,%esp
43a2d5:	83 20 00             	andl   $0x0,(%eax)
43a2d8:	53                   	push   %ebx
43a2d9:	33 db                	xor    %ebx,%ebx
43a2db:	57                   	push   %edi
43a2dc:	8b fa                	mov    %edx,%edi
43a2de:	85 c9                	test   %ecx,%ecx
43a2e0:	75 0a                	jne    0x43a2ec
43a2e2:	b8 03 40 00 80       	mov    $0x80004003,%eax
43a2e7:	e9 09 02 00 00       	jmp    0x43a4f5
43a2ec:	8b 01                	mov    (%ecx),%eax
43a2ee:	8d 55 f4             	lea    -0xc(%ebp),%edx
43a2f1:	52                   	push   %edx
43a2f2:	68 00 08 00 00       	push   $0x800
43a2f7:	6a 00                	push   $0x0
43a2f9:	51                   	push   %ecx
43a2fa:	ff 50 10             	call   *0x10(%eax)
43a2fd:	85 c0                	test   %eax,%eax
43a2ff:	0f 88 f0 01 00 00    	js     0x43a4f5
43a305:	8b 45 f4             	mov    -0xc(%ebp),%eax
43a308:	56                   	push   %esi
43a309:	8b 08                	mov    (%eax),%ecx
43a30b:	8d 55 cc             	lea    -0x34(%ebp),%edx
43a30e:	52                   	push   %edx
43a30f:	8d 55 fc             	lea    -0x4(%ebp),%edx
43a312:	52                   	push   %edx
43a313:	50                   	push   %eax
43a314:	ff 51 48             	call   *0x48(%ecx)
43a317:	8b f0                	mov    %eax,%esi
43a319:	85 f6                	test   %esi,%esi
43a31b:	79 10                	jns    0x43a32d
43a31d:	8b 4d f4             	mov    -0xc(%ebp),%ecx
43a320:	51                   	push   %ecx
43a321:	8b 11                	mov    (%ecx),%edx
43a323:	ff 52 08             	call   *0x8(%edx)
43a326:	8b c6                	mov    %esi,%eax
43a328:	e9 c7 01 00 00       	jmp    0x43a4f4
43a32d:	8b 45 fc             	mov    -0x4(%ebp),%eax
43a330:	85 ff                	test   %edi,%edi
43a332:	74 49                	je     0x43a37d
43a334:	8d 55 f0             	lea    -0x10(%ebp),%edx
43a337:	52                   	push   %edx
43a338:	8d 55 c4             	lea    -0x3c(%ebp),%edx
43a33b:	52                   	push   %edx
43a33c:	8d 55 d8             	lea    -0x28(%ebp),%edx
43a33f:	52                   	push   %edx
43a340:	33 db                	xor    %ebx,%ebx
43a342:	6a 00                	push   $0x0
43a344:	43                   	inc    %ebx
43a345:	89 5d f0             	mov    %ebx,-0x10(%ebp)
43a348:	8b 08                	mov    (%eax),%ecx
43a34a:	57                   	push   %edi
43a34b:	50                   	push   %eax
43a34c:	ff 51 2c             	call   *0x2c(%ecx)
43a34f:	8b 4d fc             	mov    -0x4(%ebp),%ecx
43a352:	51                   	push   %ecx
43a353:	8b 11                	mov    (%ecx),%edx
43a355:	8b f0                	mov    %eax,%esi
43a357:	ff 52 08             	call   *0x8(%edx)
43a35a:	8b 4d f4             	mov    -0xc(%ebp),%ecx
43a35d:	51                   	push   %ecx
43a35e:	8b 11                	mov    (%ecx),%edx
43a360:	ff 52 08             	call   *0x8(%edx)
43a363:	85 f6                	test   %esi,%esi
43a365:	0f 88 20 01 00 00    	js     0x43a48b
43a36b:	66 39 5d f0          	cmp    %bx,-0x10(%ebp)
43a36f:	0f 82 16 01 00 00    	jb     0x43a48b
43a375:	8b 5d d8             	mov    -0x28(%ebp),%ebx
43a378:	e9 0a 01 00 00       	jmp    0x43a487
43a37d:	8b 08                	mov    (%eax),%ecx
43a37f:	50                   	push   %eax
43a380:	ff 51 0c             	call   *0xc(%ecx)
43a383:	33 f6                	xor    %esi,%esi
43a385:	33 ff                	xor    %edi,%edi
43a387:	89 45 d8             	mov    %eax,-0x28(%ebp)
43a38a:	89 75 f0             	mov    %esi,-0x10(%ebp)
43a38d:	85 c0                	test   %eax,%eax
43a38f:	0f 84 e0 00 00 00    	je     0x43a475
43a395:	85 f6                	test   %esi,%esi
43a397:	0f 85 d8 00 00 00    	jne    0x43a475
43a39d:	8b 45 fc             	mov    -0x4(%ebp),%eax
43a3a0:	21 75 e4             	and    %esi,-0x1c(%ebp)
43a3a3:	8b 08                	mov    (%eax),%ecx
43a3a5:	8d 55 e4             	lea    -0x1c(%ebp),%edx
43a3a8:	52                   	push   %edx
43a3a9:	57                   	push   %edi
43a3aa:	50                   	push   %eax
43a3ab:	ff 51 14             	call   *0x14(%ecx)
43a3ae:	83 7d e4 05          	cmpl   $0x5,-0x1c(%ebp)
43a3b2:	0f 85 b3 00 00 00    	jne    0x43a46b
43a3b8:	8b 45 fc             	mov    -0x4(%ebp),%eax
43a3bb:	8d 55 f8             	lea    -0x8(%ebp),%edx
43a3be:	8b 08                	mov    (%eax),%ecx
43a3c0:	52                   	push   %edx
43a3c1:	57                   	push   %edi
43a3c2:	50                   	push   %eax
43a3c3:	ff 51 10             	call   *0x10(%ecx)
43a3c6:	8b 45 f8             	mov    -0x8(%ebp),%eax
43a3c9:	8d 55 d4             	lea    -0x2c(%ebp),%edx
43a3cc:	8b 08                	mov    (%eax),%ecx
43a3ce:	52                   	push   %edx
43a3cf:	50                   	push   %eax
43a3d0:	ff 51 0c             	call   *0xc(%ecx)
43a3d3:	8b 55 d4             	mov    -0x2c(%ebp),%edx
43a3d6:	8b 45 f8             	mov    -0x8(%ebp),%eax
43a3d9:	0f b7 72 30          	movzwl 0x30(%edx),%esi
43a3dd:	8b 08                	mov    (%eax),%ecx
43a3df:	52                   	push   %edx
43a3e0:	50                   	push   %eax
43a3e1:	89 75 dc             	mov    %esi,-0x24(%ebp)
43a3e4:	ff 51 4c             	call   *0x4c(%ecx)
43a3e7:	83 fe 01             	cmp    $0x1,%esi
43a3ea:	76 73                	jbe    0x43a45f
43a3ec:	83 4d ec ff          	orl    $0xffffffff,-0x14(%ebp)
43a3f0:	33 f6                	xor    %esi,%esi
43a3f2:	39 75 dc             	cmp    %esi,-0x24(%ebp)
43a3f5:	76 68                	jbe    0x43a45f
43a3f7:	8b 45 f8             	mov    -0x8(%ebp),%eax
43a3fa:	8d 55 d0             	lea    -0x30(%ebp),%edx
43a3fd:	8b 08                	mov    (%eax),%ecx
43a3ff:	52                   	push   %edx
43a400:	56                   	push   %esi
43a401:	50                   	push   %eax
43a402:	ff 51 20             	call   *0x20(%ecx)
43a405:	85 c0                	test   %eax,%eax
43a407:	75 50                	jne    0x43a459
43a409:	8b 45 f4             	mov    -0xc(%ebp),%eax
43a40c:	8d 55 e8             	lea    -0x18(%ebp),%edx
43a40f:	8b 08                	mov    (%eax),%ecx
43a411:	52                   	push   %edx
43a412:	ff 75 d0             	push   -0x30(%ebp)
43a415:	50                   	push   %eax
43a416:	ff 51 38             	call   *0x38(%ecx)
43a419:	83 7d ec ff          	cmpl   $0xffffffff,-0x14(%ebp)
43a41d:	75 0f                	jne    0x43a42e
43a41f:	8b 45 e8             	mov    -0x18(%ebp),%eax
43a422:	8d 55 ec             	lea    -0x14(%ebp),%edx
43a425:	8b 08                	mov    (%eax),%ecx
43a427:	52                   	push   %edx
43a428:	6a 00                	push   $0x0
43a42a:	50                   	push   %eax
43a42b:	ff 51 48             	call   *0x48(%ecx)
43a42e:	8b 45 f8             	mov    -0x8(%ebp),%eax
43a431:	8d 55 e0             	lea    -0x20(%ebp),%edx
43a434:	8b 08                	mov    (%eax),%ecx
43a436:	52                   	push   %edx
43a437:	56                   	push   %esi
43a438:	50                   	push   %eax
43a439:	ff 51 24             	call   *0x24(%ecx)
43a43c:	8b 45 ec             	mov    -0x14(%ebp),%eax
43a43f:	3b 45 cc             	cmp    -0x34(%ebp),%eax
43a442:	75 0c                	jne    0x43a450
43a444:	f6 45 e0 01          	testb  $0x1,-0x20(%ebp)
43a448:	74 06                	je     0x43a450
43a44a:	f6 45 e0 02          	testb  $0x2,-0x20(%ebp)
43a44e:	75 42                	jne    0x43a492
43a450:	8b 45 e8             	mov    -0x18(%ebp),%eax
43a453:	50                   	push   %eax
43a454:	8b 08                	mov    (%eax),%ecx
43a456:	ff 51 08             	call   *0x8(%ecx)
43a459:	46                   	inc    %esi
43a45a:	3b 75 dc             	cmp    -0x24(%ebp),%esi
43a45d:	72 98                	jb     0x43a3f7
43a45f:	8b 75 f0             	mov    -0x10(%ebp),%esi
43a462:	8b 45 f8             	mov    -0x8(%ebp),%eax
43a465:	50                   	push   %eax
43a466:	8b 08                	mov    (%eax),%ecx
43a468:	ff 51 08             	call   *0x8(%ecx)
43a46b:	47                   	inc    %edi
43a46c:	3b 7d d8             	cmp    -0x28(%ebp),%edi
43a46f:	0f 82 20 ff ff ff    	jb     0x43a395
43a475:	8b 45 fc             	mov    -0x4(%ebp),%eax
43a478:	50                   	push   %eax
43a479:	8b 08                	mov    (%eax),%ecx
43a47b:	ff 51 08             	call   *0x8(%ecx)
43a47e:	8b 45 f4             	mov    -0xc(%ebp),%eax
43a481:	50                   	push   %eax
43a482:	8b 08                	mov    (%eax),%ecx
43a484:	ff 51 08             	call   *0x8(%ecx)
43a487:	85 db                	test   %ebx,%ebx
43a489:	75 12                	jne    0x43a49d
43a48b:	b8 17 80 02 80       	mov    $0x80028017,%eax
43a490:	eb 62                	jmp    0x43a4f4
43a492:	8b 5d e8             	mov    -0x18(%ebp),%ebx
43a495:	33 f6                	xor    %esi,%esi
43a497:	46                   	inc    %esi
43a498:	89 75 f0             	mov    %esi,-0x10(%ebp)
43a49b:	eb c5                	jmp    0x43a462
43a49d:	8b 03                	mov    (%ebx),%eax
43a49f:	8d 4d c8             	lea    -0x38(%ebp),%ecx
43a4a2:	51                   	push   %ecx
43a4a3:	53                   	push   %ebx
43a4a4:	ff 50 0c             	call   *0xc(%eax)
43a4a7:	8b 4d c8             	mov    -0x38(%ebp),%ecx
43a4aa:	8b f1                	mov    %ecx,%esi
43a4ac:	8b 41 28             	mov    0x28(%ecx),%eax
43a4af:	8d 7d b4             	lea    -0x4c(%ebp),%edi
43a4b2:	a5                   	movsl  %ds:(%esi),%es:(%edi)
43a4b3:	a5                   	movsl  %ds:(%esi),%es:(%edi)
43a4b4:	a5                   	movsl  %ds:(%esi),%es:(%edi)
43a4b5:	89 45 dc             	mov    %eax,-0x24(%ebp)
43a4b8:	b8 40 10 00 00       	mov    $0x1040,%eax
43a4bd:	6a 04                	push   $0x4
43a4bf:	a5                   	movsl  %ds:(%esi),%es:(%edi)
43a4c0:	5e                   	pop    %esi
43a4c1:	66 85 41 36          	test   %ax,0x36(%ecx)
43a4c5:	74 03                	je     0x43a4ca
43a4c7:	89 75 dc             	mov    %esi,-0x24(%ebp)
43a4ca:	8b 03                	mov    (%ebx),%eax
43a4cc:	51                   	push   %ecx
43a4cd:	53                   	push   %ebx
43a4ce:	ff 50 4c             	call   *0x4c(%eax)
43a4d1:	39 75 dc             	cmp    %esi,-0x24(%ebp)
43a4d4:	74 0d                	je     0x43a4e3
43a4d6:	8b 03                	mov    (%ebx),%eax
43a4d8:	53                   	push   %ebx
43a4d9:	ff 50 08             	call   *0x8(%eax)
43a4dc:	b8 a0 8c 02 80       	mov    $0x80028ca0,%eax
43a4e1:	eb 11                	jmp    0x43a4f4
43a4e3:	8b 45 08             	mov    0x8(%ebp),%eax
43a4e6:	8b 7d 0c             	mov    0xc(%ebp),%edi
43a4e9:	89 18                	mov    %ebx,(%eax)
43a4eb:	8d 75 b4             	lea    -0x4c(%ebp),%esi
43a4ee:	a5                   	movsl  %ds:(%esi),%es:(%edi)
43a4ef:	a5                   	movsl  %ds:(%esi),%es:(%edi)
43a4f0:	a5                   	movsl  %ds:(%esi),%es:(%edi)
43a4f1:	a5                   	movsl  %ds:(%esi),%es:(%edi)
43a4f2:	33 c0                	xor    %eax,%eax
43a4f4:	5e                   	pop    %esi
43a4f5:	5f                   	pop    %edi
43a4f6:	5b                   	pop    %ebx
43a4f7:	c9                   	leave
43a4f8:	c3                   	ret
43a4f9:	56                   	push   %esi
43a4fa:	8b f1                	mov    %ecx,%esi
43a4fc:	57                   	push   %edi
43a4fd:	8b fa                	mov    %edx,%edi
43a4ff:	85 f6                	test   %esi,%esi
43a501:	75 04                	jne    0x43a507
43a503:	21 0f                	and    %ecx,(%edi)
43a505:	eb 27                	jmp    0x43a52e
43a507:	56                   	push   %esi
43a508:	e8 ce 67 fe ff       	call   0x420cdb
43a50d:	40                   	inc    %eax
43a50e:	59                   	pop    %ecx
43a50f:	03 c0                	add    %eax,%eax
43a511:	50                   	push   %eax
43a512:	ff 15 0c d8 48 00    	call   *0x48d80c
43a518:	89 07                	mov    %eax,(%edi)
43a51a:	85 c0                	test   %eax,%eax
43a51c:	75 07                	jne    0x43a525
43a51e:	b8 0e 00 07 80       	mov    $0x8007000e,%eax
43a523:	eb 0b                	jmp    0x43a530
43a525:	56                   	push   %esi
43a526:	50                   	push   %eax
43a527:	e8 f7 67 fe ff       	call   0x420d23
43a52c:	59                   	pop    %ecx
43a52d:	59                   	pop    %ecx
43a52e:	33 c0                	xor    %eax,%eax
43a530:	5f                   	pop    %edi
43a531:	5e                   	pop    %esi
43a532:	c3                   	ret
43a533:	6a 00                	push   $0x0
43a535:	6a 00                	push   $0x0
43a537:	6a 01                	push   $0x1
43a539:	51                   	push   %ecx
43a53a:	ff 15 28 d3 48 00    	call   *0x48d328
43a540:	c3                   	ret
43a541:	55                   	push   %ebp
43a542:	8b ec                	mov    %esp,%ebp
43a544:	51                   	push   %ecx
43a545:	53                   	push   %ebx
43a546:	8b 59 04             	mov    0x4(%ecx),%ebx
43a549:	56                   	push   %esi
43a54a:	33 f6                	xor    %esi,%esi
43a54c:	57                   	push   %edi
43a54d:	8d 53 ff             	lea    -0x1(%ebx),%edx
43a550:	85 db                	test   %ebx,%ebx
43a552:	74 2d                	je     0x43a581
43a554:	8b 01                	mov    (%ecx),%eax
43a556:	8d 04 50             	lea    (%eax,%edx,2),%eax
43a559:	0f b7 08             	movzwl (%eax),%ecx
43a55c:	6a 2e                	push   $0x2e
43a55e:	89 4d fc             	mov    %ecx,-0x4(%ebp)
43a561:	33 ff                	xor    %edi,%edi
43a563:	59                   	pop    %ecx
43a564:	66 39 4d fc          	cmp    %cx,-0x4(%ebp)
43a568:	74 21                	je     0x43a58b
43a56a:	0f b7 0c 7d b2 da 49 	movzwl 0x49dab2(,%edi,2),%ecx
43a571:	00
43a572:	47                   	inc    %edi
43a573:	66 85 c9             	test   %cx,%cx
43a576:	75 ec                	jne    0x43a564
43a578:	4a                   	dec    %edx
43a579:	83 e8 02             	sub    $0x2,%eax
43a57c:	46                   	inc    %esi
43a57d:	3b f3                	cmp    %ebx,%esi
43a57f:	72 d8                	jb     0x43a559
43a581:	83 c8 ff             	or     $0xffffffff,%eax
43a584:	5f                   	pop    %edi
43a585:	5e                   	pop    %esi
43a586:	5b                   	pop    %ebx
43a587:	c9                   	leave
43a588:	c2 04 00             	ret    $0x4
43a58b:	8b c2                	mov    %edx,%eax
43a58d:	eb f5                	jmp    0x43a584
43a58f:	55                   	push   %ebp
43a590:	8b ec                	mov    %esp,%ebp
43a592:	53                   	push   %ebx
43a593:	56                   	push   %esi
43a594:	8b 75 08             	mov    0x8(%ebp),%esi
43a597:	8b d9                	mov    %ecx,%ebx
43a599:	57                   	push   %edi
43a59a:	8b 7d 0c             	mov    0xc(%ebp),%edi
43a59d:	8b 43 04             	mov    0x4(%ebx),%eax
43a5a0:	03 47 04             	add    0x4(%edi),%eax
43a5a3:	8b ce                	mov    %esi,%ecx
43a5a5:	50                   	push   %eax
43a5a6:	e8 64 c5 fc ff       	call   0x406b0f
43a5ab:	8b 43 04             	mov    0x4(%ebx),%eax
43a5ae:	03 c0                	add    %eax,%eax
43a5b0:	50                   	push   %eax
43a5b1:	ff 33                	push   (%ebx)
43a5b3:	ff 36                	push   (%esi)
43a5b5:	e8 c6 48 fe ff       	call   0x41ee80
43a5ba:	8b 47 04             	mov    0x4(%edi),%eax
43a5bd:	8b 53 04             	mov    0x4(%ebx),%edx
43a5c0:	8b 0e                	mov    (%esi),%ecx