43f377:	50                   	push   %eax
43f378:	8b 45 fc             	mov    -0x4(%ebp),%eax
43f37b:	e8 30 25 00 00       	call   0x4418b0
43f380:	50                   	push   %eax
43f381:	e8 b2 7a fc ff       	call   0x406e38
43f386:	c3                   	ret
43f387:	e9 fc 4c fc ff       	jmp    0x404088
43f38c:	eb dd                	jmp    0x43f36b
43f38e:	5f                   	pop    %edi
43f38f:	5e                   	pop    %esi
43f390:	5b                   	pop    %ebx
43f391:	8b e5                	mov    %ebp,%esp
43f393:	5d                   	pop    %ebp
43f394:	c3                   	ret
43f395:	8d 40 00             	lea    0x0(%eax),%eax
43f398:	83 c4 f0             	add    $0xfffffff0,%esp
43f39b:	c7 04 24 0f 00 00 00 	movl   $0xf,(%esp)
43f3a2:	89 54 24 04          	mov    %edx,0x4(%esp)
43f3a6:	33 d2                	xor    %edx,%edx
43f3a8:	89 54 24 08          	mov    %edx,0x8(%esp)
43f3ac:	33 d2                	xor    %edx,%edx
43f3ae:	89 54 24 0c          	mov    %edx,0xc(%esp)
43f3b2:	8b d4                	mov    %esp,%edx
43f3b4:	8b 08                	mov    (%eax),%ecx
43f3b6:	ff 51 f0             	call   *-0x10(%ecx)
43f3b9:	83 c4 10             	add    $0x10,%esp
43f3bc:	c3                   	ret
43f3bd:	8d 40 00             	lea    0x0(%eax),%eax
43f3c0:	55                   	push   %ebp
43f3c1:	8b ec                	mov    %esp,%ebp
43f3c3:	83 c4 d8             	add    $0xffffffd8,%esp
43f3c6:	53                   	push   %ebx
43f3c7:	56                   	push   %esi
43f3c8:	57                   	push   %edi
43f3c9:	8b d9                	mov    %ecx,%ebx
43f3cb:	89 55 f8             	mov    %edx,-0x8(%ebp)
43f3ce:	89 45 fc             	mov    %eax,-0x4(%ebp)
43f3d1:	8b 45 fc             	mov    -0x4(%ebp),%eax
43f3d4:	80 b8 dc 01 00 00 00 	cmpb   $0x0,0x1dc(%eax)
43f3db:	74 29                	je     0x43f406
43f3dd:	8b 45 fc             	mov    -0x4(%ebp),%eax
43f3e0:	80 b8 db 01 00 00 00 	cmpb   $0x0,0x1db(%eax)
43f3e7:	74 1d                	je     0x43f406
43f3e9:	8b 45 fc             	mov    -0x4(%ebp),%eax
43f3ec:	83 b8 b0 01 00 00 00 	cmpl   $0x0,0x1b0(%eax)
43f3f3:	74 11                	je     0x43f406
43f3f5:	8b 45 fc             	mov    -0x4(%ebp),%eax
43f3f8:	8b 80 b0 01 00 00    	mov    0x1b0(%eax),%eax
43f3fe:	8b 55 f8             	mov    -0x8(%ebp),%edx
43f401:	8b 08                	mov    (%eax),%ecx
43f403:	ff 51 20             	call   *0x20(%ecx)
43f406:	8b 45 fc             	mov    -0x4(%ebp),%eax
43f409:	8b 80 cc 01 00 00    	mov    0x1cc(%eax),%eax
43f40f:	85 c0                	test   %eax,%eax
43f411:	0f 84 75 01 00 00    	je     0x43f58c
43f417:	33 d2                	xor    %edx,%edx
43f419:	89 55 f4             	mov    %edx,-0xc(%ebp)
43f41c:	85 db                	test   %ebx,%ebx
43f41e:	74 15                	je     0x43f435
43f420:	8b d3                	mov    %ebx,%edx
43f422:	e8 a5 87 fd ff       	call   0x417bcc
43f427:	89 45 f4             	mov    %eax,-0xc(%ebp)
43f42a:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
43f42e:	7d 05                	jge    0x43f435
43f430:	33 c0                	xor    %eax,%eax
43f432:	89 45 f4             	mov    %eax,-0xc(%ebp)
43f435:	8b 45 fc             	mov    -0x4(%ebp),%eax
43f438:	8b 80 cc 01 00 00    	mov    0x1cc(%eax),%eax
43f43e:	8b 40 08             	mov    0x8(%eax),%eax
43f441:	89 45 f0             	mov    %eax,-0x10(%ebp)
43f444:	8b 45 f4             	mov    -0xc(%ebp),%eax
43f447:	3b 45 f0             	cmp    -0x10(%ebp),%eax
43f44a:	0f 8d 3c 01 00 00    	jge    0x43f58c
43f450:	8b 45 fc             	mov    -0x4(%ebp),%eax
43f453:	8b 80 cc 01 00 00    	mov    0x1cc(%eax),%eax
43f459:	8b 55 f4             	mov    -0xc(%ebp),%edx
43f45c:	e8 0f 87 fd ff       	call   0x417b70
43f461:	89 45 e8             	mov    %eax,-0x18(%ebp)
43f464:	8b 45 e8             	mov    -0x18(%ebp),%eax
43f467:	80 78 57 00          	cmpb   $0x0,0x57(%eax)
43f46b:	74 12                	je     0x43f47f
43f46d:	8b 45 e8             	mov    -0x18(%ebp),%eax
43f470:	f6 40 1c 10          	testb  $0x10,0x1c(%eax)
43f474:	74 30                	je     0x43f4a6
43f476:	8b 45 e8             	mov    -0x18(%ebp),%eax
43f479:	f6 40 55 08          	testb  $0x8,0x55(%eax)
43f47d:	74 27                	je     0x43f4a6
43f47f:	8b 45 e8             	mov    -0x18(%ebp),%eax
43f482:	f6 40 1c 10          	testb  $0x10,0x1c(%eax)
43f486:	0f 84 f1 00 00 00    	je     0x43f57d
43f48c:	8b 45 e8             	mov    -0x18(%ebp),%eax
43f48f:	f6 40 55 08          	testb  $0x8,0x55(%eax)
43f493:	0f 85 e4 00 00 00    	jne    0x43f57d
43f499:	8b 45 e8             	mov    -0x18(%ebp),%eax
43f49c:	f6 40 51 04          	testb  $0x4,0x51(%eax)
43f4a0:	0f 85 d7 00 00 00    	jne    0x43f57d
43f4a6:	8b 45 e8             	mov    -0x18(%ebp),%eax
43f4a9:	8b 70 44             	mov    0x44(%eax),%esi
43f4ac:	8b c6                	mov    %esi,%eax
43f4ae:	8b 55 e8             	mov    -0x18(%ebp),%edx
43f4b1:	03 42 4c             	add    0x4c(%edx),%eax
43f4b4:	50                   	push   %eax
43f4b5:	8d 45 d8             	lea    -0x28(%ebp),%eax
43f4b8:	50                   	push   %eax
43f4b9:	8b 45 e8             	mov    -0x18(%ebp),%eax
43f4bc:	8b 58 40             	mov    0x40(%eax),%ebx
43f4bf:	8b cb                	mov    %ebx,%ecx
43f4c1:	8b 45 e8             	mov    -0x18(%ebp),%eax
43f4c4:	03 48 48             	add    0x48(%eax),%ecx
43f4c7:	8b d6                	mov    %esi,%edx
43f4c9:	8b c3                	mov    %ebx,%eax
43f4cb:	e8 48 72 fd ff       	call   0x416718
43f4d0:	8d 45 d8             	lea    -0x28(%ebp),%eax
43f4d3:	50                   	push   %eax
43f4d4:	8b 45 f8             	mov    -0x8(%ebp),%eax
43f4d7:	50                   	push   %eax
43f4d8:	e8 b3 77 fc ff       	call   0x406c90
43f4dd:	85 c0                	test   %eax,%eax
43f4df:	0f 84 98 00 00 00    	je     0x43f57d
43f4e5:	8b 45 fc             	mov    -0x4(%ebp),%eax
43f4e8:	f6 40 54 80          	testb  $0x80,0x54(%eax)
43f4ec:	74 09                	je     0x43f4f7
43f4ee:	8b 45 e8             	mov    -0x18(%ebp),%eax
43f4f1:	66 81 48 54 80 00    	orw    $0x80,0x54(%eax)
43f4f7:	8b 45 f8             	mov    -0x8(%ebp),%eax
43f4fa:	50                   	push   %eax
43f4fb:	e8 a0 77 fc ff       	call   0x406ca0
43f500:	89 45 ec             	mov    %eax,-0x14(%ebp)
43f503:	33 c0                	xor    %eax,%eax
43f505:	55                   	push   %ebp
43f506:	68 6d f5 43 00       	push   $0x43f56d
43f50b:	64 ff 30             	push   %fs:(%eax)
43f50e:	64 89 20             	mov    %esp,%fs:(%eax)
43f511:	8b 45 e8             	mov    -0x18(%ebp),%eax
43f514:	8b 48 44             	mov    0x44(%eax),%ecx
43f517:	8b 45 e8             	mov    -0x18(%ebp),%eax
43f51a:	8b 50 40             	mov    0x40(%eax),%edx
43f51d:	8b 45 f8             	mov    -0x8(%ebp),%eax
43f520:	e8 83 8f ff ff       	call   0x4384a8
43f525:	8b 45 e8             	mov    -0x18(%ebp),%eax
43f528:	8b 40 4c             	mov    0x4c(%eax),%eax
43f52b:	50                   	push   %eax
43f52c:	8b 45 e8             	mov    -0x18(%ebp),%eax
43f52f:	8b 40 48             	mov    0x48(%eax),%eax
43f532:	50                   	push   %eax
43f533:	6a 00                	push   $0x0
43f535:	6a 00                	push   $0x0
43f537:	8b 45 f8             	mov    -0x8(%ebp),%eax
43f53a:	50                   	push   %eax
43f53b:	e8 10 77 fc ff       	call   0x406c50
43f540:	6a 00                	push   $0x0
43f542:	8b 4d f8             	mov    -0x8(%ebp),%ecx
43f545:	ba 0f 00 00 00       	mov    $0xf,%edx
43f54a:	8b 45 e8             	mov    -0x18(%ebp),%eax
43f54d:	e8 ca bb ff ff       	call   0x43b11c
43f552:	33 c0                	xor    %eax,%eax
43f554:	5a                   	pop    %edx
43f555:	59                   	pop    %ecx
43f556:	59                   	pop    %ecx
43f557:	64 89 10             	mov    %edx,%fs:(%eax)
43f55a:	68 74 f5 43 00       	push   $0x43f574
43f55f:	8b 45 ec             	mov    -0x14(%ebp),%eax
43f562:	50                   	push   %eax
43f563:	8b 45 f8             	mov    -0x8(%ebp),%eax
43f566:	50                   	push   %eax
43f567:	e8 2c 77 fc ff       	call   0x406c98
43f56c:	c3                   	ret
43f56d:	e9 16 4b fc ff       	jmp    0x404088
43f572:	eb eb                	jmp    0x43f55f
43f574:	8b 45 e8             	mov    -0x18(%ebp),%eax
43f577:	66 81 60 54 7f ff    	andw   $0xff7f,0x54(%eax)
43f57d:	ff 45 f4             	incl   -0xc(%ebp)
43f580:	8b 45 f4             	mov    -0xc(%ebp),%eax
43f583:	3b 45 f0             	cmp    -0x10(%ebp),%eax
43f586:	0f 8c c4 fe ff ff    	jl     0x43f450
43f58c:	8b 45 fc             	mov    -0x4(%ebp),%eax
43f58f:	8b 80 d0 01 00 00    	mov    0x1d0(%eax),%eax
43f595:	85 c0                	test   %eax,%eax
43f597:	0f 84 ea 00 00 00    	je     0x43f687
43f59d:	8b 78 08             	mov    0x8(%eax),%edi
43f5a0:	4f                   	dec    %edi
43f5a1:	85 ff                	test   %edi,%edi
43f5a3:	0f 8c de 00 00 00    	jl     0x43f687
43f5a9:	47                   	inc    %edi
43f5aa:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
43f5b1:	8b 45 fc             	mov    -0x4(%ebp),%eax
43f5b4:	8b 80 d0 01 00 00    	mov    0x1d0(%eax),%eax
43f5ba:	8b 55 f4             	mov    -0xc(%ebp),%edx
43f5bd:	e8 ae 85 fd ff       	call   0x417b70
43f5c2:	8b d8                	mov    %eax,%ebx
43f5c4:	80 bb d9 01 00 00 00 	cmpb   $0x0,0x1d9(%ebx)
43f5cb:	0f 84 ac 00 00 00    	je     0x43f67d
43f5d1:	f6 43 50 10          	testb  $0x10,0x50(%ebx)
43f5d5:	0f 84 a2 00 00 00    	je     0x43f67d
43f5db:	80 7b 57 00          	cmpb   $0x0,0x57(%ebx)
43f5df:	75 14                	jne    0x43f5f5
43f5e1:	f6 43 1c 10          	testb  $0x10,0x1c(%ebx)
43f5e5:	0f 84 92 00 00 00    	je     0x43f67d
43f5eb:	f6 43 51 04          	testb  $0x4,0x51(%ebx)
43f5ef:	0f 85 88 00 00 00    	jne    0x43f67d
43f5f5:	b8 10 00 00 ff       	mov    $0xff000010,%eax
43f5fa:	e8 91 34 fe ff       	call   0x422a90
43f5ff:	50                   	push   %eax
43f600:	e8 73 75 fc ff       	call   0x406b78
43f605:	8b f0                	mov    %eax,%esi
43f607:	56                   	push   %esi
43f608:	8b 43 44             	mov    0x44(%ebx),%eax
43f60b:	03 43 4c             	add    0x4c(%ebx),%eax
43f60e:	50                   	push   %eax
43f60f:	8d 45 d8             	lea    -0x28(%ebp),%eax
43f612:	50                   	push   %eax
43f613:	8b 4b 40             	mov    0x40(%ebx),%ecx
43f616:	03 4b 48             	add    0x48(%ebx),%ecx
43f619:	8b 53 44             	mov    0x44(%ebx),%edx
43f61c:	4a                   	dec    %edx
43f61d:	8b 43 40             	mov    0x40(%ebx),%eax
43f620:	48                   	dec    %eax
43f621:	e8 f2 70 fd ff       	call   0x416718
43f626:	8d 45 d8             	lea    -0x28(%ebp),%eax
43f629:	50                   	push   %eax
43f62a:	8b 45 f8             	mov    -0x8(%ebp),%eax
43f62d:	50                   	push   %eax
43f62e:	e8 3d 78 fc ff       	call   0x406e70
43f633:	56                   	push   %esi
43f634:	e8 57 75 fc ff       	call   0x406b90
43f639:	b8 14 00 00 ff       	mov    $0xff000014,%eax
43f63e:	e8 4d 34 fe ff       	call   0x422a90
43f643:	50                   	push   %eax
43f644:	e8 2f 75 fc ff       	call   0x406b78
43f649:	8b f0                	mov    %eax,%esi
43f64b:	56                   	push   %esi
43f64c:	8b 43 44             	mov    0x44(%ebx),%eax
43f64f:	03 43 4c             	add    0x4c(%ebx),%eax
43f652:	40                   	inc    %eax
43f653:	50                   	push   %eax
43f654:	8d 45 d8             	lea    -0x28(%ebp),%eax
43f657:	50                   	push   %eax
43f658:	8b 4b 40             	mov    0x40(%ebx),%ecx
43f65b:	03 4b 48             	add    0x48(%ebx),%ecx
43f65e:	41                   	inc    %ecx
43f65f:	8b 53 44             	mov    0x44(%ebx),%edx
43f662:	8b 43 40             	mov    0x40(%ebx),%eax
43f665:	e8 ae 70 fd ff       	call   0x416718
43f66a:	8d 45 d8             	lea    -0x28(%ebp),%eax
43f66d:	50                   	push   %eax
43f66e:	8b 45 f8             	mov    -0x8(%ebp),%eax
43f671:	50                   	push   %eax
43f672:	e8 f9 77 fc ff       	call   0x406e70
43f677:	56                   	push   %esi
43f678:	e8 13 75 fc ff       	call   0x406b90
43f67d:	ff 45 f4             	incl   -0xc(%ebp)
43f680:	4f                   	dec    %edi
43f681:	0f 85 2a ff ff ff    	jne    0x43f5b1
43f687:	5f                   	pop    %edi
43f688:	5e                   	pop    %esi
43f689:	5b                   	pop    %ebx
43f68a:	8b e5                	mov    %ebp,%esp
43f68c:	5d                   	pop    %ebp
43f68d:	c3                   	ret
43f68e:	8b c0                	mov    %eax,%eax
43f690:	55                   	push   %ebp
43f691:	8b ec                	mov    %esp,%ebp
43f693:	83 c4 e4             	add    $0xffffffe4,%esp
43f696:	53                   	push   %ebx
43f697:	56                   	push   %esi
43f698:	8b d9                	mov    %ecx,%ebx
43f69a:	89 55 f8             	mov    %edx,-0x8(%ebp)
43f69d:	89 45 fc             	mov    %eax,-0x4(%ebp)
43f6a0:	8b 45 fc             	mov    -0x4(%ebp),%eax
43f6a3:	66 81 48 54 80 00    	orw    $0x80,0x54(%eax)
43f6a9:	8b 45 f8             	mov    -0x8(%ebp),%eax
43f6ac:	50                   	push   %eax
43f6ad:	e8 ee 75 fc ff       	call   0x406ca0
43f6b2:	89 45 f4             	mov    %eax,-0xc(%ebp)
43f6b5:	33 d2                	xor    %edx,%edx
43f6b7:	55                   	push   %ebp
43f6b8:	68 08 f8 43 00       	push   $0x43f808
43f6bd:	64 ff 32             	push   %fs:(%edx)
43f6c0:	64 89 22             	mov    %esp,%fs:(%edx)
43f6c3:	8b 4d 08             	mov    0x8(%ebp),%ecx
43f6c6:	8b d3                	mov    %ebx,%edx
43f6c8:	8b 45 f8             	mov    -0x8(%ebp),%eax
43f6cb:	e8 d8 8d ff ff       	call   0x4384a8
43f6d0:	8b 45 fc             	mov    -0x4(%ebp),%eax
43f6d3:	8b 40 4c             	mov    0x4c(%eax),%eax
43f6d6:	50                   	push   %eax
43f6d7:	8b 45 fc             	mov    -0x4(%ebp),%eax
43f6da:	8b 40 48             	mov    0x48(%eax),%eax
43f6dd:	50                   	push   %eax
43f6de:	6a 00                	push   $0x0
43f6e0:	6a 00                	push   $0x0
43f6e2:	8b 45 f8             	mov    -0x8(%ebp),%eax
43f6e5:	50                   	push   %eax
43f6e6:	e8 65 75 fc ff       	call   0x406c50
43f6eb:	33 db                	xor    %ebx,%ebx
43f6ed:	33 f6                	xor    %esi,%esi
43f6ef:	6a ec                	push   $0xffffffec
43f6f1:	8b 45 fc             	mov    -0x4(%ebp),%eax
43f6f4:	e8 b7 21 00 00       	call   0x4418b0
43f6f9:	50                   	push   %eax
43f6fa:	e8 d1 78 fc ff       	call   0x406fd0
43f6ff:	f6 c4 02             	test   $0x2,%ah
43f702:	74 0c                	je     0x43f710
43f704:	be 0a 00 00 00       	mov    $0xa,%esi
43f709:	bb 0f 20 00 00       	mov    $0x200f,%ebx
43f70e:	eb 21                	jmp    0x43f731
43f710:	6a f0                	push   $0xfffffff0
43f712:	8b 45 fc             	mov    -0x4(%ebp),%eax
43f715:	e8 96 21 00 00       	call   0x4418b0
43f71a:	50                   	push   %eax
43f71b:	e8 b0 78 fc ff       	call   0x406fd0
43f720:	a9 00 00 80 00       	test   $0x800000,%eax
43f725:	74 0a                	je     0x43f731
43f727:	be 03 00 00 00       	mov    $0x3,%esi
43f72c:	bb 0f a0 00 00       	mov    $0xa00f,%ebx
43f731:	85 db                	test   %ebx,%ebx
43f733:	74 53                	je     0x43f788
43f735:	8b 45 fc             	mov    -0x4(%ebp),%eax
43f738:	8b 40 4c             	mov    0x4c(%eax),%eax
43f73b:	50                   	push   %eax
43f73c:	8b 45 fc             	mov    -0x4(%ebp),%eax
43f73f:	8b 40 48             	mov    0x48(%eax),%eax
43f742:	50                   	push   %eax
43f743:	6a 00                	push   $0x0
43f745:	6a 00                	push   $0x0
43f747:	8d 45 e4             	lea    -0x1c(%ebp),%eax
43f74a:	50                   	push   %eax
43f74b:	e8 68 7a fc ff       	call   0x4071b8
43f750:	53                   	push   %ebx
43f751:	56                   	push   %esi
43f752:	8d 45 e4             	lea    -0x1c(%ebp),%eax
43f755:	50                   	push   %eax
43f756:	8b 45 f8             	mov    -0x8(%ebp),%eax
43f759:	50                   	push   %eax
43f75a:	e8 91 76 fc ff       	call   0x406df0
43f75f:	8b 4d e8             	mov    -0x18(%ebp),%ecx
43f762:	8b 55 e4             	mov    -0x1c(%ebp),%edx
43f765:	8b 45 f8             	mov    -0x8(%ebp),%eax
43f768:	e8 3b 8d ff ff       	call   0x4384a8
43f76d:	8b 45 f0             	mov    -0x10(%ebp),%eax
43f770:	2b 45 e8             	sub    -0x18(%ebp),%eax
43f773:	50                   	push   %eax
43f774:	8b 45 ec             	mov    -0x14(%ebp),%eax
43f777:	2b 45 e4             	sub    -0x1c(%ebp),%eax
43f77a:	50                   	push   %eax
43f77b:	6a 00                	push   $0x0
43f77d:	6a 00                	push   $0x0
43f77f:	8b 45 f8             	mov    -0x8(%ebp),%eax
43f782:	50                   	push   %eax
43f783:	e8 c8 74 fc ff       	call   0x406c50