43f296:	8b d5                	mov    %ebp,%edx
43f298:	8b 08                	mov    (%eax),%ecx
43f29a:	ff 51 20             	call   *0x20(%ecx)
43f29d:	8b 86 98 01 00 00    	mov    0x198(%esi),%eax
43f2a3:	85 c0                	test   %eax,%eax
43f2a5:	0f 84 df 00 00 00    	je     0x43f38a
43f2ab:	33 ff                	xor    %edi,%edi
43f2ad:	85 db                	test   %ebx,%ebx
43f2af:	74 0f                	je     0x43f2c0
43f2b1:	8b d3                	mov    %ebx,%edx
43f2b3:	e8 30 4b fd ff       	call   0x413de8
43f2b8:	8b f8                	mov    %eax,%edi
43f2ba:	85 ff                	test   %edi,%edi
43f2bc:	7d 02                	jge    0x43f2c0
43f2be:	33 ff                	xor    %edi,%edi
43f2c0:	8b 86 98 01 00 00    	mov    0x198(%esi),%eax
43f2c6:	8b 40 08             	mov    0x8(%eax),%eax
43f2c9:	89 04 24             	mov    %eax,(%esp)
43f2cc:	3b 3c 24             	cmp    (%esp),%edi
43f2cf:	0f 8d b5 00 00 00    	jge    0x43f38a
43f2d5:	8b 86 98 01 00 00    	mov    0x198(%esi),%eax
43f2db:	8b d7                	mov    %edi,%edx
43f2dd:	e8 aa 4a fd ff       	call   0x413d8c
43f2e2:	8b d8                	mov    %eax,%ebx
43f2e4:	80 7b 57 00          	cmpb   $0x0,0x57(%ebx)
43f2e8:	75 14                	jne    0x43f2fe
43f2ea:	f6 43 1c 10          	testb  $0x10,0x1c(%ebx)
43f2ee:	0f 84 8c 00 00 00    	je     0x43f380
43f2f4:	f6 43 51 04          	testb  $0x4,0x51(%ebx)
43f2f8:	0f 85 82 00 00 00    	jne    0x43f380
43f2fe:	8b 43 44             	mov    0x44(%ebx),%eax
43f301:	03 43 4c             	add    0x4c(%ebx),%eax
43f304:	50                   	push   %eax
43f305:	8d 44 24 14          	lea    0x14(%esp),%eax
43f309:	50                   	push   %eax
43f30a:	8b 4b 40             	mov    0x40(%ebx),%ecx
43f30d:	03 4b 48             	add    0x48(%ebx),%ecx
43f310:	8b 53 44             	mov    0x44(%ebx),%edx
43f313:	8b 43 40             	mov    0x40(%ebx),%eax
43f316:	e8 3d 36 fd ff       	call   0x412958
43f31b:	8d 44 24 10          	lea    0x10(%esp),%eax
43f31f:	50                   	push   %eax
43f320:	55                   	push   %ebp
43f321:	e8 42 70 fc ff       	call   0x406368
43f326:	85 c0                	test   %eax,%eax
43f328:	74 56                	je     0x43f380
43f32a:	f6 46 54 80          	testb  $0x80,0x54(%esi)
43f32e:	74 06                	je     0x43f336
43f330:	66 81 4b 54 80 00    	orw    $0x80,0x54(%ebx)
43f336:	55                   	push   %ebp
43f337:	e8 44 70 fc ff       	call   0x406380
43f33c:	89 44 24 04          	mov    %eax,0x4(%esp)
43f340:	8b 4b 44             	mov    0x44(%ebx),%ecx
43f343:	8b 53 40             	mov    0x40(%ebx),%edx
43f346:	8b c5                	mov    %ebp,%eax
43f348:	e8 6f a2 ff ff       	call   0x4395bc
43f34d:	8b 43 4c             	mov    0x4c(%ebx),%eax
43f350:	50                   	push   %eax
43f351:	8b 43 48             	mov    0x48(%ebx),%eax
43f354:	50                   	push   %eax
43f355:	6a 00                	push   $0x0
43f357:	6a 00                	push   $0x0
43f359:	55                   	push   %ebp
43f35a:	e8 c9 6f fc ff       	call   0x406328
43f35f:	6a 00                	push   $0x0
43f361:	8b cd                	mov    %ebp,%ecx
43f363:	ba 0f 00 00 00       	mov    $0xf,%edx
43f368:	8b c3                	mov    %ebx,%eax
43f36a:	e8 b9 ca ff ff       	call   0x43be28
43f36f:	8b 44 24 04          	mov    0x4(%esp),%eax
43f373:	50                   	push   %eax
43f374:	55                   	push   %ebp
43f375:	e8 fe 6f fc ff       	call   0x406378
43f37a:	66 81 63 54 7f ff    	andw   $0xff7f,0x54(%ebx)
43f380:	47                   	inc    %edi
43f381:	3b 3c 24             	cmp    (%esp),%edi
43f384:	0f 8c 4b ff ff ff    	jl     0x43f2d5
43f38a:	8b 86 9c 01 00 00    	mov    0x19c(%esi),%eax
43f390:	85 c0                	test   %eax,%eax
43f392:	0f 84 f8 00 00 00    	je     0x43f490
43f398:	8b 40 08             	mov    0x8(%eax),%eax
43f39b:	48                   	dec    %eax
43f39c:	85 c0                	test   %eax,%eax
43f39e:	0f 8c ec 00 00 00    	jl     0x43f490
43f3a4:	40                   	inc    %eax
43f3a5:	89 44 24 0c          	mov    %eax,0xc(%esp)
43f3a9:	33 ff                	xor    %edi,%edi
43f3ab:	8b 86 9c 01 00 00    	mov    0x19c(%esi),%eax
43f3b1:	8b d7                	mov    %edi,%edx
43f3b3:	e8 d4 49 fd ff       	call   0x413d8c
43f3b8:	8b d8                	mov    %eax,%ebx
43f3ba:	80 bb a5 01 00 00 00 	cmpb   $0x0,0x1a5(%ebx)
43f3c1:	0f 84 be 00 00 00    	je     0x43f485
43f3c7:	f6 43 50 10          	testb  $0x10,0x50(%ebx)
43f3cb:	0f 84 b4 00 00 00    	je     0x43f485
43f3d1:	80 7b 57 00          	cmpb   $0x0,0x57(%ebx)
43f3d5:	75 14                	jne    0x43f3eb
43f3d7:	f6 43 1c 10          	testb  $0x10,0x1c(%ebx)
43f3db:	0f 84 a4 00 00 00    	je     0x43f485
43f3e1:	f6 43 51 04          	testb  $0x4,0x51(%ebx)
43f3e5:	0f 85 9a 00 00 00    	jne    0x43f485
43f3eb:	b8 10 00 00 ff       	mov    $0xff000010,%eax
43f3f0:	e8 63 d2 fd ff       	call   0x41c658
43f3f5:	50                   	push   %eax
43f3f6:	e8 65 6e fc ff       	call   0x406260
43f3fb:	89 44 24 08          	mov    %eax,0x8(%esp)
43f3ff:	8b 44 24 08          	mov    0x8(%esp),%eax
43f403:	50                   	push   %eax
43f404:	8b 43 44             	mov    0x44(%ebx),%eax
43f407:	03 43 4c             	add    0x4c(%ebx),%eax
43f40a:	50                   	push   %eax
43f40b:	8d 44 24 18          	lea    0x18(%esp),%eax
43f40f:	50                   	push   %eax
43f410:	8b 4b 40             	mov    0x40(%ebx),%ecx
43f413:	03 4b 48             	add    0x48(%ebx),%ecx
43f416:	8b 53 44             	mov    0x44(%ebx),%edx
43f419:	4a                   	dec    %edx
43f41a:	8b 43 40             	mov    0x40(%ebx),%eax
43f41d:	48                   	dec    %eax
43f41e:	e8 35 35 fd ff       	call   0x412958
43f423:	8d 44 24 14          	lea    0x14(%esp),%eax
43f427:	50                   	push   %eax
43f428:	55                   	push   %ebp
43f429:	e8 32 71 fc ff       	call   0x406560
43f42e:	8b 44 24 08          	mov    0x8(%esp),%eax
43f432:	50                   	push   %eax
43f433:	e8 40 6e fc ff       	call   0x406278
43f438:	b8 14 00 00 ff       	mov    $0xff000014,%eax
43f43d:	e8 16 d2 fd ff       	call   0x41c658
43f442:	50                   	push   %eax
43f443:	e8 18 6e fc ff       	call   0x406260
43f448:	89 44 24 08          	mov    %eax,0x8(%esp)
43f44c:	8b 44 24 08          	mov    0x8(%esp),%eax
43f450:	50                   	push   %eax
43f451:	8b 43 44             	mov    0x44(%ebx),%eax
43f454:	03 43 4c             	add    0x4c(%ebx),%eax
43f457:	40                   	inc    %eax
43f458:	50                   	push   %eax
43f459:	8d 44 24 18          	lea    0x18(%esp),%eax
43f45d:	50                   	push   %eax
43f45e:	8b 4b 40             	mov    0x40(%ebx),%ecx
43f461:	03 4b 48             	add    0x48(%ebx),%ecx
43f464:	41                   	inc    %ecx
43f465:	8b 53 44             	mov    0x44(%ebx),%edx
43f468:	8b 43 40             	mov    0x40(%ebx),%eax
43f46b:	e8 e8 34 fd ff       	call   0x412958
43f470:	8d 44 24 14          	lea    0x14(%esp),%eax
43f474:	50                   	push   %eax
43f475:	55                   	push   %ebp
43f476:	e8 e5 70 fc ff       	call   0x406560
43f47b:	8b 44 24 08          	mov    0x8(%esp),%eax
43f47f:	50                   	push   %eax
43f480:	e8 f3 6d fc ff       	call   0x406278
43f485:	47                   	inc    %edi
43f486:	ff 4c 24 0c          	decl   0xc(%esp)
43f48a:	0f 85 1b ff ff ff    	jne    0x43f3ab
43f490:	83 c4 20             	add    $0x20,%esp
43f493:	5d                   	pop    %ebp
43f494:	5f                   	pop    %edi
43f495:	5e                   	pop    %esi
43f496:	5b                   	pop    %ebx
43f497:	c3                   	ret
43f498:	55                   	push   %ebp
43f499:	8b ec                	mov    %esp,%ebp
43f49b:	83 c4 e0             	add    $0xffffffe0,%esp
43f49e:	53                   	push   %ebx
43f49f:	56                   	push   %esi
43f4a0:	57                   	push   %edi
43f4a1:	8b f9                	mov    %ecx,%edi
43f4a3:	8b f2                	mov    %edx,%esi
43f4a5:	8b d8                	mov    %eax,%ebx
43f4a7:	66 81 4b 54 80 00    	orw    $0x80,0x54(%ebx)
43f4ad:	56                   	push   %esi
43f4ae:	e8 cd 6e fc ff       	call   0x406380
43f4b3:	89 45 f4             	mov    %eax,-0xc(%ebp)
43f4b6:	8b 4d 08             	mov    0x8(%ebp),%ecx
43f4b9:	8b d7                	mov    %edi,%edx
43f4bb:	8b c6                	mov    %esi,%eax
43f4bd:	e8 fa a0 ff ff       	call   0x4395bc
43f4c2:	8b 43 4c             	mov    0x4c(%ebx),%eax
43f4c5:	50                   	push   %eax
43f4c6:	8b 43 48             	mov    0x48(%ebx),%eax
43f4c9:	50                   	push   %eax
43f4ca:	6a 00                	push   $0x0
43f4cc:	6a 00                	push   $0x0
43f4ce:	56                   	push   %esi
43f4cf:	e8 54 6e fc ff       	call   0x406328
43f4d4:	33 ff                	xor    %edi,%edi
43f4d6:	33 c0                	xor    %eax,%eax
43f4d8:	89 45 f8             	mov    %eax,-0x8(%ebp)
43f4db:	6a ec                	push   $0xffffffec
43f4dd:	8b c3                	mov    %ebx,%eax
43f4df:	e8 78 1f 00 00       	call   0x44145c
43f4e4:	50                   	push   %eax
43f4e5:	e8 c6 71 fc ff       	call   0x4066b0
43f4ea:	f6 c4 02             	test   $0x2,%ah
43f4ed:	74 0e                	je     0x43f4fd
43f4ef:	c7 45 f8 0a 00 00 00 	movl   $0xa,-0x8(%ebp)
43f4f6:	bf 0f 20 00 00       	mov    $0x200f,%edi
43f4fb:	eb 22                	jmp    0x43f51f
43f4fd:	6a f0                	push   $0xfffffff0
43f4ff:	8b c3                	mov    %ebx,%eax
43f501:	e8 56 1f 00 00       	call   0x44145c
43f506:	50                   	push   %eax
43f507:	e8 a4 71 fc ff       	call   0x4066b0
43f50c:	a9 00 00 80 00       	test   $0x800000,%eax
43f511:	74 0c                	je     0x43f51f
43f513:	c7 45 f8 03 00 00 00 	movl   $0x3,-0x8(%ebp)
43f51a:	bf 0f a0 00 00       	mov    $0xa00f,%edi
43f51f:	85 ff                	test   %edi,%edi
43f521:	74 49                	je     0x43f56c
43f523:	8b 43 4c             	mov    0x4c(%ebx),%eax
43f526:	50                   	push   %eax
43f527:	8b 43 48             	mov    0x48(%ebx),%eax
43f52a:	50                   	push   %eax
43f52b:	6a 00                	push   $0x0
43f52d:	6a 00                	push   $0x0
43f52f:	8d 45 e0             	lea    -0x20(%ebp),%eax
43f532:	50                   	push   %eax
43f533:	e8 30 73 fc ff       	call   0x406868
43f538:	57                   	push   %edi
43f539:	8b 45 f8             	mov    -0x8(%ebp),%eax
43f53c:	50                   	push   %eax
43f53d:	8d 45 e0             	lea    -0x20(%ebp),%eax
43f540:	50                   	push   %eax
43f541:	56                   	push   %esi
43f542:	e8 99 6f fc ff       	call   0x4064e0
43f547:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
43f54a:	8b 55 e0             	mov    -0x20(%ebp),%edx
43f54d:	8b c6                	mov    %esi,%eax
43f54f:	e8 68 a0 ff ff       	call   0x4395bc
43f554:	8b 45 ec             	mov    -0x14(%ebp),%eax
43f557:	2b 45 e4             	sub    -0x1c(%ebp),%eax
43f55a:	50                   	push   %eax
43f55b:	8b 45 e8             	mov    -0x18(%ebp),%eax
43f55e:	2b 45 e0             	sub    -0x20(%ebp),%eax
43f561:	50                   	push   %eax
43f562:	6a 00                	push   $0x0
43f564:	6a 00                	push   $0x0
43f566:	56                   	push   %esi
43f567:	e8 bc 6d fc ff       	call   0x406328
43f56c:	6a 00                	push   $0x0
43f56e:	8b ce                	mov    %esi,%ecx
43f570:	ba 14 00 00 00       	mov    $0x14,%edx
43f575:	8b c3                	mov    %ebx,%eax
43f577:	e8 ac c8 ff ff       	call   0x43be28
43f57c:	6a 00                	push   $0x0
43f57e:	8b ce                	mov    %esi,%ecx
43f580:	ba 0f 00 00 00       	mov    $0xf,%edx
43f585:	8b c3                	mov    %ebx,%eax
43f587:	e8 9c c8 ff ff       	call   0x43be28
43f58c:	8b 83 9c 01 00 00    	mov    0x19c(%ebx),%eax
43f592:	85 c0                	test   %eax,%eax
43f594:	74 3d                	je     0x43f5d3
43f596:	8b 40 08             	mov    0x8(%eax),%eax
43f599:	48                   	dec    %eax
43f59a:	85 c0                	test   %eax,%eax
43f59c:	7c 35                	jl     0x43f5d3
43f59e:	40                   	inc    %eax
43f59f:	89 45 f0             	mov    %eax,-0x10(%ebp)
43f5a2:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
43f5a9:	8b 55 fc             	mov    -0x4(%ebp),%edx
43f5ac:	8b 83 9c 01 00 00    	mov    0x19c(%ebx),%eax
43f5b2:	e8 d5 47 fd ff       	call   0x413d8c
43f5b7:	80 78 57 00          	cmpb   $0x0,0x57(%eax)
43f5bb:	74 0e                	je     0x43f5cb
43f5bd:	8b 50 44             	mov    0x44(%eax),%edx
43f5c0:	52                   	push   %edx
43f5c1:	8b 48 40             	mov    0x40(%eax),%ecx
43f5c4:	8b d6                	mov    %esi,%edx
43f5c6:	e8 cd fe ff ff       	call   0x43f498
43f5cb:	ff 45 fc             	incl   -0x4(%ebp)
43f5ce:	ff 4d f0             	decl   -0x10(%ebp)
43f5d1:	75 d6                	jne    0x43f5a9
43f5d3:	8b 45 f4             	mov    -0xc(%ebp),%eax
43f5d6:	50                   	push   %eax
43f5d7:	56                   	push   %esi
43f5d8:	e8 9b 6d fc ff       	call   0x406378
43f5dd:	66 81 63 54 7f ff    	andw   $0xff7f,0x54(%ebx)
43f5e3:	5f                   	pop    %edi
43f5e4:	5e                   	pop    %esi
43f5e5:	5b                   	pop    %ebx
43f5e6:	8b e5                	mov    %ebp,%esp
43f5e8:	5d                   	pop    %ebp
43f5e9:	c2 04 00             	ret    $0x4
43f5ec:	55                   	push   %ebp
43f5ed:	8b ec                	mov    %esp,%ebp
43f5ef:	83 c4 94             	add    $0xffffff94,%esp
43f5f2:	53                   	push   %ebx
43f5f3:	56                   	push   %esi
43f5f4:	57                   	push   %edi
43f5f5:	8b f2                	mov    %edx,%esi
43f5f7:	8b d8                	mov    %eax,%ebx
43f5f9:	80 bb f8 01 00 00 00 	cmpb   $0x0,0x1f8(%ebx)
43f600:	74 06                	je     0x43f608
43f602:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
43f606:	74 2d                	je     0x43f635
43f608:	f6 43 55 01          	testb  $0x1,0x55(%ebx)
43f60c:	75 19                	jne    0x43f627
43f60e:	8b c3                	mov    %ebx,%eax
43f610:	e8 77 eb ff ff       	call   0x43e18c
43f615:	85 c0                	test   %eax,%eax
43f617:	75 0e                	jne    0x43f627
43f619:	8b d6                	mov    %esi,%edx
43f61b:	8b c3                	mov    %ebx,%eax
43f61d:	8b 08                	mov    (%eax),%ecx
43f61f:	ff 51 f0             	call   *-0x10(%ecx)
43f622:	e9 1e 01 00 00       	jmp    0x43f745
43f627:	8b d6                	mov    %esi,%edx
43f629:	8b c3                	mov    %ebx,%eax
43f62b:	e8 e0 fa ff ff       	call   0x43f110
43f630:	e9 10 01 00 00       	jmp    0x43f745
43f635:	6a 00                	push   $0x0
43f637:	e8 6c 6f fc ff       	call   0x4065a8
43f63c:	8b f8                	mov    %eax,%edi
43f63e:	8d 55 a4             	lea    -0x5c(%ebp),%edx
43f641:	8b c3                	mov    %ebx,%eax
43f643:	8b 08                	mov    (%eax),%ecx
43f645:	ff 51 44             	call   *0x44(%ecx)
43f648:	8b 45 b0             	mov    -0x50(%ebp),%eax
43f64b:	50                   	push   %eax
43f64c:	8d 55 94             	lea    -0x6c(%ebp),%edx
43f64f:	8b c3                	mov    %ebx,%eax
43f651:	8b 08                	mov    (%eax),%ecx
43f653:	ff 51 44             	call   *0x44(%ecx)
43f656:	8b 45 9c             	mov    -0x64(%ebp),%eax
43f659:	50                   	push   %eax
43f65a:	57                   	push   %edi
43f65b:	e8 c0 6b fc ff       	call   0x406220
43f660:	89 45 f8             	mov    %eax,-0x8(%ebp)
43f663:	57                   	push   %edi
43f664:	6a 00                	push   $0x0
43f666:	e8 7d 71 fc ff       	call   0x4067e8
43f66b:	6a 00                	push   $0x0
43f66d:	e8 b6 6b fc ff       	call   0x406228
43f672:	89 45 fc             	mov    %eax,-0x4(%ebp)
43f675:	8b 45 f8             	mov    -0x8(%ebp),%eax
43f678:	50                   	push   %eax
43f679:	8b 45 fc             	mov    -0x4(%ebp),%eax
43f67c:	50                   	push   %eax
43f67d:	e8 16 6d fc ff       	call   0x406398
43f682:	89 45 f4             	mov    %eax,-0xc(%ebp)
43f685:	33 c0                	xor    %eax,%eax
43f687:	55                   	push   %ebp
43f688:	68 3e f7 43 00       	push   $0x43f73e
43f68d:	64 ff 30             	push   %fs:(%eax)
43f690:	64 89 20             	mov    %esp,%fs:(%eax)
43f693:	8d 45 b4             	lea    -0x4c(%ebp),%eax
43f696:	50                   	push   %eax
43f697:	8b c3                	mov    %ebx,%eax