4102d3:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
4102d7:	8d 4d 8c             	lea    -0x74(%ebp),%ecx
4102da:	89 45 14             	mov    %eax,0x14(%ebp)
4102dd:	e8 c1 0b 04 00       	call   0x450ea3
4102e2:	8b 45 f0             	mov    -0x10(%ebp),%eax
4102e5:	e9 36 01 00 00       	jmp    0x410420
4102ea:	8b 03                	mov    (%ebx),%eax
4102ec:	8b 08                	mov    (%eax),%ecx
4102ee:	8d 55 ec             	lea    -0x14(%ebp),%edx
4102f1:	52                   	push   %edx
4102f2:	68 2c 61 49 00       	push   $0x49612c
4102f7:	50                   	push   %eax
4102f8:	ff 11                	call   *(%ecx)
4102fa:	85 c0                	test   %eax,%eax
4102fc:	0f 8c 49 01 00 00    	jl     0x41044b
410302:	3b f7                	cmp    %edi,%esi
410304:	75 5e                	jne    0x410364
410306:	8d 45 0c             	lea    0xc(%ebp),%eax
410309:	50                   	push   %eax
41030a:	6a 01                	push   $0x1
41030c:	57                   	push   %edi
41030d:	89 7d 0c             	mov    %edi,0xc(%ebp)
410310:	ff 15 44 0b 4b 00    	call   *0x4b0b44
410316:	3b c7                	cmp    %edi,%eax
410318:	89 45 14             	mov    %eax,0x14(%ebp)
41031b:	0f 8c fc 00 00 00    	jl     0x41041d
410321:	8d 45 10             	lea    0x10(%ebp),%eax
410324:	50                   	push   %eax
410325:	57                   	push   %edi
410326:	68 12 10 00 00       	push   $0x1012
41032b:	ff 75 0c             	push   0xc(%ebp)
41032e:	89 7d 10             	mov    %edi,0x10(%ebp)
410331:	ff 15 40 0b 4b 00    	call   *0x4b0b40
410337:	3b c7                	cmp    %edi,%eax
410339:	89 45 14             	mov    %eax,0x14(%ebp)
41033c:	7c 18                	jl     0x410356
41033e:	8b 45 ec             	mov    -0x14(%ebp),%eax
410341:	ff 75 10             	push   0x10(%ebp)
410344:	8b 08                	mov    (%eax),%ecx
410346:	50                   	push   %eax
410347:	ff 51 14             	call   *0x14(%ecx)
41034a:	89 45 14             	mov    %eax,0x14(%ebp)
41034d:	8b 45 10             	mov    0x10(%ebp),%eax
410350:	8b 08                	mov    (%eax),%ecx
410352:	50                   	push   %eax
410353:	ff 51 08             	call   *0x8(%ecx)
410356:	8b 45 0c             	mov    0xc(%ebp),%eax
410359:	8b 08                	mov    (%eax),%ecx
41035b:	50                   	push   %eax
41035c:	ff 51 08             	call   *0x8(%ecx)
41035f:	e9 b9 00 00 00       	jmp    0x41041d
410364:	39 7d 10             	cmp    %edi,0x10(%ebp)
410367:	0f 84 a9 00 00 00    	je     0x410416
41036d:	8b 06                	mov    (%esi),%eax
41036f:	8b ce                	mov    %esi,%ecx
410371:	ff 50 30             	call   *0x30(%eax)
410374:	3b d7                	cmp    %edi,%edx
410376:	89 45 d4             	mov    %eax,-0x2c(%ebp)
410379:	77 37                	ja     0x4103b2
41037b:	72 05                	jb     0x410382
41037d:	83 f8 ff             	cmp    $0xffffffff,%eax
410380:	73 30                	jae    0x4103b2
410382:	50                   	push   %eax
410383:	57                   	push   %edi
410384:	ff 15 58 03 4b 00    	call   *0x4b0358
41038a:	3b c7                	cmp    %edi,%eax
41038c:	89 45 10             	mov    %eax,0x10(%ebp)
41038f:	74 21                	je     0x4103b2
410391:	50                   	push   %eax
410392:	ff 15 40 03 4b 00    	call   *0x4b0340
410398:	3b c7                	cmp    %edi,%eax
41039a:	74 16                	je     0x4103b2
41039c:	ff 75 d4             	push   -0x2c(%ebp)
41039f:	8b 16                	mov    (%esi),%edx
4103a1:	50                   	push   %eax
4103a2:	8b ce                	mov    %esi,%ecx
4103a4:	ff 52 34             	call   *0x34(%edx)
4103a7:	ff 75 10             	push   0x10(%ebp)
4103aa:	ff 15 44 03 4b 00    	call   *0x4b0344
4103b0:	eb 0a                	jmp    0x4103bc
4103b2:	c7 45 14 0e 00 07 80 	movl   $0x8007000e,0x14(%ebp)
4103b9:	89 7d 10             	mov    %edi,0x10(%ebp)
4103bc:	39 7d 10             	cmp    %edi,0x10(%ebp)
4103bf:	89 7d e4             	mov    %edi,-0x1c(%ebp)
4103c2:	74 59                	je     0x41041d
4103c4:	8d 45 e4             	lea    -0x1c(%ebp),%eax
4103c7:	50                   	push   %eax
4103c8:	6a 01                	push   $0x1
4103ca:	ff 75 10             	push   0x10(%ebp)
4103cd:	ff 15 44 0b 4b 00    	call   *0x4b0b44
4103d3:	3b c7                	cmp    %edi,%eax
4103d5:	89 45 14             	mov    %eax,0x14(%ebp)
4103d8:	7c 43                	jl     0x41041d
4103da:	8d 45 e8             	lea    -0x18(%ebp),%eax
4103dd:	50                   	push   %eax
4103de:	57                   	push   %edi
4103df:	57                   	push   %edi
4103e0:	6a 12                	push   $0x12
4103e2:	57                   	push   %edi
4103e3:	ff 75 e4             	push   -0x1c(%ebp)
4103e6:	89 7d e8             	mov    %edi,-0x18(%ebp)
4103e9:	ff 15 3c 0b 4b 00    	call   *0x4b0b3c
4103ef:	3b c7                	cmp    %edi,%eax
4103f1:	89 45 14             	mov    %eax,0x14(%ebp)
4103f4:	7c 18                	jl     0x41040e
4103f6:	8b 45 ec             	mov    -0x14(%ebp),%eax
4103f9:	ff 75 e8             	push   -0x18(%ebp)
4103fc:	8b 08                	mov    (%eax),%ecx
4103fe:	50                   	push   %eax
4103ff:	ff 51 18             	call   *0x18(%ecx)
410402:	89 45 14             	mov    %eax,0x14(%ebp)
410405:	8b 45 e8             	mov    -0x18(%ebp),%eax
410408:	8b 08                	mov    (%eax),%ecx
41040a:	50                   	push   %eax
41040b:	ff 51 08             	call   *0x8(%ecx)
41040e:	8b 45 e4             	mov    -0x1c(%ebp),%eax
410411:	e9 43 ff ff ff       	jmp    0x410359
410416:	c7 45 14 ff ff 00 80 	movl   $0x8000ffff,0x14(%ebp)
41041d:	8b 45 ec             	mov    -0x14(%ebp),%eax
410420:	8b 08                	mov    (%eax),%ecx
410422:	50                   	push   %eax
410423:	ff 51 08             	call   *0x8(%ecx)
410426:	39 7d 14             	cmp    %edi,0x14(%ebp)
410429:	7c 25                	jl     0x410450
41042b:	39 7d dc             	cmp    %edi,-0x24(%ebp)
41042e:	75 1b                	jne    0x41044b
410430:	8b 4d e0             	mov    -0x20(%ebp),%ecx
410433:	f6 41 6e 02          	testb  $0x2,0x6e(%ecx)
410437:	75 12                	jne    0x41044b
410439:	8b 03                	mov    (%ebx),%eax
41043b:	8b 10                	mov    (%eax),%edx
41043d:	81 c1 c4 00 00 00    	add    $0xc4,%ecx
410443:	51                   	push   %ecx
410444:	50                   	push   %eax
410445:	ff 52 0c             	call   *0xc(%edx)
410448:	89 45 14             	mov    %eax,0x14(%ebp)
41044b:	39 7d 14             	cmp    %edi,0x14(%ebp)
41044e:	7d 18                	jge    0x410468
410450:	8b 03                	mov    (%ebx),%eax
410452:	3b c7                	cmp    %edi,%eax
410454:	74 12                	je     0x410468
410456:	8b 08                	mov    (%eax),%ecx
410458:	6a 01                	push   $0x1
41045a:	50                   	push   %eax
41045b:	ff 51 18             	call   *0x18(%ecx)
41045e:	8b 03                	mov    (%ebx),%eax
410460:	8b 08                	mov    (%eax),%ecx
410462:	50                   	push   %eax
410463:	ff 51 08             	call   *0x8(%ecx)
410466:	89 3b                	mov    %edi,(%ebx)
410468:	8b 45 08             	mov    0x8(%ebp),%eax
41046b:	3b c7                	cmp    %edi,%eax
41046d:	74 06                	je     0x410475
41046f:	8b 08                	mov    (%eax),%ecx
410471:	50                   	push   %eax
410472:	ff 51 08             	call   *0x8(%ecx)
410475:	39 7d dc             	cmp    %edi,-0x24(%ebp)
410478:	74 0c                	je     0x410486
41047a:	39 7d 14             	cmp    %edi,0x14(%ebp)
41047d:	7c 07                	jl     0x410486
41047f:	c7 45 14 01 00 00 00 	movl   $0x1,0x14(%ebp)
410486:	8b 45 14             	mov    0x14(%ebp),%eax
410489:	8b 4d f4             	mov    -0xc(%ebp),%ecx
41048c:	5f                   	pop    %edi
41048d:	5e                   	pop    %esi
41048e:	5b                   	pop    %ebx
41048f:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
410496:	c9                   	leave
410497:	c2 10 00             	ret    $0x10
41049a:	55                   	push   %ebp
41049b:	8b ec                	mov    %esp,%ebp
41049d:	53                   	push   %ebx
41049e:	8b 5d 1c             	mov    0x1c(%ebp),%ebx
4104a1:	84 db                	test   %bl,%bl
4104a3:	56                   	push   %esi
4104a4:	8b f1                	mov    %ecx,%esi
4104a6:	79 0a                	jns    0x4104b2
4104a8:	8b 06                	mov    (%esi),%eax
4104aa:	6a 00                	push   $0x0
4104ac:	ff 90 a0 00 00 00    	call   *0xa0(%eax)
4104b2:	8b c3                	mov    %ebx,%eax
4104b4:	83 e0 03             	and    $0x3,%eax
4104b7:	3c 03                	cmp    $0x3,%al
4104b9:	74 41                	je     0x4104fc
4104bb:	f6 c3 02             	test   $0x2,%bl
4104be:	74 08                	je     0x4104c8
4104c0:	8b 56 2c             	mov    0x2c(%esi),%edx
4104c3:	8b 46 30             	mov    0x30(%esi),%eax
4104c6:	eb 06                	jmp    0x4104ce
4104c8:	8b 55 0c             	mov    0xc(%ebp),%edx
4104cb:	8b 45 10             	mov    0x10(%ebp),%eax
4104ce:	f6 c3 01             	test   $0x1,%bl
4104d1:	89 45 1c             	mov    %eax,0x1c(%ebp)
4104d4:	74 0e                	je     0x4104e4
4104d6:	8b 46 34             	mov    0x34(%esi),%eax
4104d9:	8b 4e 38             	mov    0x38(%esi),%ecx
4104dc:	2b 46 2c             	sub    0x2c(%esi),%eax
4104df:	2b 4e 30             	sub    0x30(%esi),%ecx
4104e2:	eb 06                	jmp    0x4104ea
4104e4:	8b 45 14             	mov    0x14(%ebp),%eax
4104e7:	8b 4d 18             	mov    0x18(%ebp),%ecx
4104ea:	57                   	push   %edi
4104eb:	8b 3e                	mov    (%esi),%edi
4104ed:	51                   	push   %ecx
4104ee:	50                   	push   %eax
4104ef:	ff 75 1c             	push   0x1c(%ebp)
4104f2:	8b ce                	mov    %esi,%ecx
4104f4:	52                   	push   %edx
4104f5:	ff 97 98 00 00 00    	call   *0x98(%edi)
4104fb:	5f                   	pop    %edi
4104fc:	f6 c3 40             	test   $0x40,%bl
4104ff:	74 0c                	je     0x41050d
410501:	8b 06                	mov    (%esi),%eax
410503:	6a 05                	push   $0x5
410505:	8b ce                	mov    %esi,%ecx
410507:	ff 90 a0 00 00 00    	call   *0xa0(%eax)
41050d:	8b 45 08             	mov    0x8(%ebp),%eax
410510:	81 e3 3f ff ff ff    	and    $0xffffff3f,%ebx
410516:	83 cb 03             	or     $0x3,%ebx
410519:	85 c0                	test   %eax,%eax
41051b:	74 03                	je     0x410520
41051d:	8b 40 1c             	mov    0x1c(%eax),%eax
410520:	53                   	push   %ebx
410521:	ff 75 18             	push   0x18(%ebp)
410524:	ff 75 14             	push   0x14(%ebp)
410527:	ff 75 10             	push   0x10(%ebp)
41052a:	ff 75 0c             	push   0xc(%ebp)
41052d:	50                   	push   %eax
41052e:	ff 76 20             	push   0x20(%esi)
410531:	ff 15 dc 07 4b 00    	call   *0x4b07dc
410537:	5e                   	pop    %esi
410538:	5b                   	pop    %ebx
410539:	5d                   	pop    %ebp
41053a:	c2 18 00             	ret    $0x18
41053d:	56                   	push   %esi
41053e:	8b f1                	mov    %ecx,%esi
410540:	f6 46 6d 40          	testb  $0x40,0x6d(%esi)
410544:	74 17                	je     0x41055d
410546:	83 7e 70 00          	cmpl   $0x0,0x70(%esi)
41054a:	75 11                	jne    0x41055d
41054c:	ff 76 20             	push   0x20(%esi)
41054f:	ff 15 e4 07 4b 00    	call   *0x4b07e4
410555:	50                   	push   %eax
410556:	e8 47 47 03 00       	call   0x444ca2
41055b:	5e                   	pop    %esi
41055c:	c3                   	ret
41055d:	57                   	push   %edi
41055e:	ff 15 d4 07 4b 00    	call   *0x4b07d4
410564:	50                   	push   %eax
410565:	e8 38 47 03 00       	call   0x444ca2
41056a:	f6 46 6d 04          	testb  $0x4,0x6d(%esi)
41056e:	8b f8                	mov    %eax,%edi
410570:	75 0b                	jne    0x41057d
410572:	8b 06                	mov    (%esi),%eax
410574:	6a 00                	push   $0x0
410576:	6a fc                	push   $0xfffffffc
410578:	8b ce                	mov    %esi,%ecx
41057a:	ff 50 5c             	call   *0x5c(%eax)
41057d:	8b c7                	mov    %edi,%eax
41057f:	5f                   	pop    %edi
410580:	5e                   	pop    %esi
410581:	c3                   	ret
410582:	56                   	push   %esi
410583:	8b f1                	mov    %ecx,%esi
410585:	f6 46 6d 40          	testb  $0x40,0x6d(%esi)
410589:	74 17                	je     0x4105a2
41058b:	83 7e 70 00          	cmpl   $0x0,0x70(%esi)
41058f:	75 11                	jne    0x4105a2
410591:	ff 76 20             	push   0x20(%esi)
410594:	ff 15 e4 07 4b 00    	call   *0x4b07e4
41059a:	50                   	push   %eax
41059b:	e8 02 47 03 00       	call   0x444ca2
4105a0:	eb 25                	jmp    0x4105c7
4105a2:	57                   	push   %edi
4105a3:	ff 15 d4 07 4b 00    	call   *0x4b07d4
4105a9:	50                   	push   %eax
4105aa:	e8 f3 46 03 00       	call   0x444ca2
4105af:	f6 46 6d 04          	testb  $0x4,0x6d(%esi)
4105b3:	8b f8                	mov    %eax,%edi
4105b5:	75 0d                	jne    0x4105c4
4105b7:	ff 74 24 0c          	push   0xc(%esp)
4105bb:	8b 06                	mov    (%esi),%eax
4105bd:	6a fc                	push   $0xfffffffc
4105bf:	8b ce                	mov    %esi,%ecx
4105c1:	ff 50 5c             	call   *0x5c(%eax)
4105c4:	8b c7                	mov    %edi,%eax
4105c6:	5f                   	pop    %edi
4105c7:	5e                   	pop    %esi
4105c8:	c2 04 00             	ret    $0x4
4105cb:	55                   	push   %ebp
4105cc:	8b ec                	mov    %esp,%ebp
4105ce:	51                   	push   %ecx
4105cf:	56                   	push   %esi
4105d0:	57                   	push   %edi
4105d1:	8b 7d 0c             	mov    0xc(%ebp),%edi
4105d4:	85 ff                	test   %edi,%edi
4105d6:	8b f1                	mov    %ecx,%esi
4105d8:	74 66                	je     0x410640
4105da:	83 7d 08 ff          	cmpl   $0xffffffff,0x8(%ebp)
4105de:	74 60                	je     0x410640
4105e0:	6a 1c                	push   $0x1c
4105e2:	e8 6e fa 02 00       	call   0x440055
4105e7:	85 c0                	test   %eax,%eax
4105e9:	59                   	pop    %ecx
4105ea:	74 14                	je     0x410600
4105ec:	6a 00                	push   $0x0
4105ee:	ff 75 08             	push   0x8(%ebp)
4105f1:	8b c8                	mov    %eax,%ecx
4105f3:	ff b6 90 00 00 00    	push   0x90(%esi)
4105f9:	e8 72 f1 ff ff       	call   0x40f770
4105fe:	eb 02                	jmp    0x410602
410600:	33 c0                	xor    %eax,%eax
410602:	89 86 90 00 00 00    	mov    %eax,0x90(%esi)
410608:	8b 4f 4c             	mov    0x4c(%edi),%ecx
41060b:	89 48 0c             	mov    %ecx,0xc(%eax)
41060e:	8b 86 90 00 00 00    	mov    0x90(%esi),%eax
410614:	89 30                	mov    %esi,(%eax)
410616:	8b 86 90 00 00 00    	mov    0x90(%esi),%eax
41061c:	8b 48 0c             	mov    0xc(%eax),%ecx
41061f:	8b 01                	mov    (%ecx),%eax
410621:	ff 90 b4 00 00 00    	call   *0xb4(%eax)
410627:	8b b6 90 00 00 00    	mov    0x90(%esi),%esi
41062d:	8b 46 0c             	mov    0xc(%esi),%eax
410630:	8b 88 8c 00 00 00    	mov    0x8c(%eax),%ecx
410636:	8b 01                	mov    (%ecx),%eax
410638:	6a 01                	push   $0x1
41063a:	56                   	push   %esi
41063b:	ff 50 04             	call   *0x4(%eax)
41063e:	eb 79                	jmp    0x4106b9
410640:	8b be 90 00 00 00    	mov    0x90(%esi),%edi
410646:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
41064a:	85 ff                	test   %edi,%edi
41064c:	74 6b                	je     0x4106b9
41064e:	53                   	push   %ebx
41064f:	8b 45 08             	mov    0x8(%ebp),%eax
410652:	83 f8 ff             	cmp    $0xffffffff,%eax
410655:	8b 5f 18             	mov    0x18(%edi),%ebx
410658:	74 05                	je     0x41065f
41065a:	39 47 08             	cmp    %eax,0x8(%edi)
41065d:	75 46                	jne    0x4106a5
41065f:	8b 45 0c             	mov    0xc(%ebp),%eax
410662:	85 c0                	test   %eax,%eax
410664:	74 08                	je     0x41066e
410666:	8b 40 4c             	mov    0x4c(%eax),%eax
410669:	3b 47 0c             	cmp    0xc(%edi),%eax
41066c:	75 37                	jne    0x4106a5
41066e:	8b 45 fc             	mov    -0x4(%ebp),%eax
410671:	85 c0                	test   %eax,%eax
410673:	74 05                	je     0x41067a
410675:	89 58 18             	mov    %ebx,0x18(%eax)