410253:	8b f7                	mov    %edi,%esi
410255:	89 74 24 0c          	mov    %esi,0xc(%esp)
410259:	0f b7 07             	movzwl (%edi),%eax
41025c:	89 44 24 20          	mov    %eax,0x20(%esp)
410260:	66 85 c0             	test   %ax,%ax
410263:	74 27                	je     0x41028c
410265:	83 f8 5c             	cmp    $0x5c,%eax
410268:	74 22                	je     0x41028c
41026a:	83 c7 02             	add    $0x2,%edi
41026d:	66 85 c0             	test   %ax,%ax
410270:	75 e7                	jne    0x410259
410272:	33 c0                	xor    %eax,%eax
410274:	40                   	inc    %eax
410275:	8b 8c 24 7c 02 00 00 	mov    0x27c(%esp),%ecx
41027c:	5f                   	pop    %edi
41027d:	5e                   	pop    %esi
41027e:	5b                   	pop    %ebx
41027f:	33 cc                	xor    %esp,%ecx
410281:	e8 aa 68 00 00       	call   0x416b30
410286:	8b e5                	mov    %ebp,%esp
410288:	5d                   	pop    %ebp
410289:	c2 04 00             	ret    $0x4
41028c:	33 c0                	xor    %eax,%eax
41028e:	66 89 07             	mov    %ax,(%edi)
410291:	8d 44 24 28          	lea    0x28(%esp),%eax
410295:	50                   	push   %eax
410296:	51                   	push   %ecx
410297:	ff 15 cc a0 44 00    	call   *0x44a0cc
41029d:	8b c8                	mov    %eax,%ecx
41029f:	8b 44 24 20          	mov    0x20(%esp),%eax
4102a3:	66 89 07             	mov    %ax,(%edi)
4102a6:	83 f9 ff             	cmp    $0xffffffff,%ecx
4102a9:	0f 84 e9 e4 00 00    	je     0x41e798
4102af:	51                   	push   %ecx
4102b0:	ff 15 d8 a0 44 00    	call   *0x44a0d8
4102b6:	66 83 bc 24 5c 02 00 	cmpw   $0x0,0x25c(%esp)
4102bd:	00 00
4102bf:	0f 85 88 00 00 00    	jne    0x41034d
4102c5:	8d 44 24 54          	lea    0x54(%esp),%eax
4102c9:	8b c8                	mov    %eax,%ecx
4102cb:	89 44 24 18          	mov    %eax,0x18(%esp)
4102cf:	8d 51 02             	lea    0x2(%ecx),%edx
4102d2:	66 8b 01             	mov    (%ecx),%ax
4102d5:	83 c1 02             	add    $0x2,%ecx
4102d8:	66 3b 44 24 14       	cmp    0x14(%esp),%ax
4102dd:	75 f3                	jne    0x4102d2
4102df:	2b ca                	sub    %edx,%ecx
4102e1:	8b c7                	mov    %edi,%eax
4102e3:	d1 f9                	sar    $1,%ecx
4102e5:	2b c6                	sub    %esi,%eax
4102e7:	d1 f8                	sar    $1,%eax
4102e9:	8b d1                	mov    %ecx,%edx
4102eb:	2b d0                	sub    %eax,%edx
4102ed:	89 4c 24 24          	mov    %ecx,0x24(%esp)
4102f1:	03 da                	add    %edx,%ebx
4102f3:	3b 5c 24 1c          	cmp    0x1c(%esp),%ebx
4102f7:	0f 8d 80 00 00 00    	jge    0x41037d
4102fd:	85 d2                	test   %edx,%edx
4102ff:	0f 8f 5d e4 00 00    	jg     0x41e762
410305:	8d 34 09             	lea    (%ecx,%ecx,1),%esi
410308:	56                   	push   %esi
410309:	ff 74 24 1c          	push   0x1c(%esp)
41030d:	ff 74 24 14          	push   0x14(%esp)
410311:	e8 26 79 00 00       	call   0x417c3c
410316:	01 74 24 18          	add    %esi,0x18(%esp)
41031a:	83 c4 0c             	add    $0xc,%esp
41031d:	8b 74 24 0c          	mov    0xc(%esp),%esi
410321:	8b c6                	mov    %esi,%eax
410323:	2b 44 24 10          	sub    0x10(%esp),%eax
410327:	8b ce                	mov    %esi,%ecx
410329:	8b 54 24 1c          	mov    0x1c(%esp),%edx
41032d:	d1 f8                	sar    $1,%eax
41032f:	57                   	push   %edi
410330:	2b d0                	sub    %eax,%edx
410332:	e8 69 f0 ff ff       	call   0x40f3a0
410337:	8b 44 24 20          	mov    0x20(%esp),%eax
41033b:	83 c6 02             	add    $0x2,%esi
41033e:	8b fe                	mov    %esi,%edi
410340:	8b 4c 24 10          	mov    0x10(%esp),%ecx
410344:	89 74 24 0c          	mov    %esi,0xc(%esp)
410348:	e9 1d ff ff ff       	jmp    0x41026a
41034d:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
410351:	0f 85 ff e3 00 00    	jne    0x41e756
410357:	8b c7                	mov    %edi,%eax
410359:	2b c6                	sub    %esi,%eax
41035b:	d1 f8                	sar    $1,%eax
41035d:	50                   	push   %eax
41035e:	8d 84 24 60 02 00 00 	lea    0x260(%esp),%eax
410365:	56                   	push   %esi
410366:	50                   	push   %eax
410367:	ff 15 28 a4 44 00    	call   *0x44a428
41036d:	83 c4 0c             	add    $0xc,%esp
410370:	85 c0                	test   %eax,%eax
410372:	0f 85 4d ff ff ff    	jne    0x4102c5
410378:	e9 bc e3 00 00       	jmp    0x41e739
41037d:	33 c0                	xor    %eax,%eax
41037f:	e9 f1 fe ff ff       	jmp    0x410275
410384:	cc                   	int3
410385:	cc                   	int3
410386:	cc                   	int3
410387:	cc                   	int3
410388:	cc                   	int3
410389:	cc                   	int3
41038a:	cc                   	int3
41038b:	cc                   	int3
41038c:	cc                   	int3
41038d:	cc                   	int3
41038e:	cc                   	int3
41038f:	cc                   	int3
410390:	8b ff                	mov    %edi,%edi
410392:	55                   	push   %ebp
410393:	8b ec                	mov    %esp,%ebp
410395:	8b 55 08             	mov    0x8(%ebp),%edx
410398:	33 c9                	xor    %ecx,%ecx
41039a:	8b 52 38             	mov    0x38(%edx),%edx
41039d:	e8 ce e0 ff ff       	call   0x40e470
4103a2:	5d                   	pop    %ebp
4103a3:	c2 04 00             	ret    $0x4
4103a6:	cc                   	int3
4103a7:	cc                   	int3
4103a8:	cc                   	int3
4103a9:	cc                   	int3
4103aa:	cc                   	int3
4103ab:	cc                   	int3
4103ac:	cc                   	int3
4103ad:	cc                   	int3
4103ae:	cc                   	int3
4103af:	cc                   	int3
4103b0:	8b ff                	mov    %edi,%edi
4103b2:	55                   	push   %ebp
4103b3:	8b ec                	mov    %esp,%ebp
4103b5:	83 e4 f8             	and    $0xfffffff8,%esp
4103b8:	51                   	push   %ecx
4103b9:	53                   	push   %ebx
4103ba:	8b 5d 08             	mov    0x8(%ebp),%ebx
4103bd:	33 d2                	xor    %edx,%edx
4103bf:	56                   	push   %esi
4103c0:	57                   	push   %edi
4103c1:	8b 73 3c             	mov    0x3c(%ebx),%esi
4103c4:	8b 06                	mov    (%esi),%eax
4103c6:	83 f8 38             	cmp    $0x38,%eax
4103c9:	74 5f                	je     0x41042a
4103cb:	88 54 24 0f          	mov    %dl,0xf(%esp)
4103cf:	83 f8 35             	cmp    $0x35,%eax
4103d2:	0f 84 ca e3 00 00    	je     0x41e7a2
4103d8:	83 f8 34             	cmp    $0x34,%eax
4103db:	0f 84 c1 e3 00 00    	je     0x41e7a2
4103e1:	6b c0 18             	imul   $0x18,%eax,%eax
4103e4:	56                   	push   %esi
4103e5:	8b b8 84 16 40 00    	mov    0x401684(%eax),%edi
4103eb:	81 ff f0 15 41 00    	cmp    $0x4115f0,%edi
4103f1:	75 23                	jne    0x410416
4103f3:	e8 f8 11 00 00       	call   0x4115f0
4103f8:	85 c0                	test   %eax,%eax
4103fa:	0f 95 c0             	setne  %al
4103fd:	33 c9                	xor    %ecx,%ecx
4103ff:	3a 44 24 0f          	cmp    0xf(%esp),%al
410403:	75 20                	jne    0x410425
410405:	8b 53 48             	mov    0x48(%ebx),%edx
410408:	e8 63 e0 ff ff       	call   0x40e470
41040d:	5f                   	pop    %edi
41040e:	5e                   	pop    %esi
41040f:	5b                   	pop    %ebx
410410:	8b e5                	mov    %ebp,%esp
410412:	5d                   	pop    %ebp
410413:	c2 04 00             	ret    $0x4
410416:	81 ff 60 29 41 00    	cmp    $0x412960,%edi
41041c:	75 1a                	jne    0x410438
41041e:	e8 3d 25 00 00       	call   0x412960
410423:	eb d3                	jmp    0x4103f8
410425:	8b 53 40             	mov    0x40(%ebx),%edx
410428:	eb de                	jmp    0x410408
41042a:	8b 46 3c             	mov    0x3c(%esi),%eax
41042d:	8b f0                	mov    %eax,%esi
41042f:	c6 44 24 0f 01       	movb   $0x1,0xf(%esp)
410434:	8b 00                	mov    (%eax),%eax
410436:	eb 97                	jmp    0x4103cf
410438:	8b cf                	mov    %edi,%ecx
41043a:	ff 15 c4 a4 44 00    	call   *0x44a4c4
410440:	ff d7                	call   *%edi
410442:	eb b4                	jmp    0x4103f8
410444:	8b ff                	mov    %edi,%edi
410446:	55                   	push   %ebp
410447:	8b ec                	mov    %esp,%ebp
410449:	83 e4 f8             	and    $0xfffffff8,%esp
41044c:	51                   	push   %ecx
41044d:	53                   	push   %ebx
41044e:	56                   	push   %esi
41044f:	57                   	push   %edi
410450:	8b f9                	mov    %ecx,%edi
410452:	33 c9                	xor    %ecx,%ecx
410454:	e8 17 c8 ff ff       	call   0x40cc70
410459:	3d 00 40 00 00       	cmp    $0x4000,%eax
41045e:	0f 85 98 e3 00 00    	jne    0x41e7fc
410464:	33 c9                	xor    %ecx,%ecx
410466:	e8 25 b7 ff ff       	call   0x40bb90
41046b:	bb f0 4a 44 00       	mov    $0x444af0,%ebx
410470:	8b f0                	mov    %eax,%esi
410472:	53                   	push   %ebx
410473:	68 9c 23 40 00       	push   $0x40239c
410478:	ff 15 40 a4 44 00    	call   *0x44a440
41047e:	59                   	pop    %ecx
41047f:	59                   	pop    %ecx
410480:	85 c0                	test   %eax,%eax
410482:	0f 84 7e e3 00 00    	je     0x41e806
410488:	53                   	push   %ebx
410489:	68 00 24 40 00       	push   $0x402400
41048e:	ff 15 40 a4 44 00    	call   *0x44a440
410494:	59                   	pop    %ecx
410495:	59                   	pop    %ecx
410496:	85 c0                	test   %eax,%eax
410498:	0f 84 9e 00 00 00    	je     0x41053c
41049e:	80 3d 55 67 43 00 00 	cmpb   $0x0,0x436755
4104a5:	74 31                	je     0x4104d8
4104a7:	53                   	push   %ebx
4104a8:	68 d8 23 40 00       	push   $0x4023d8
4104ad:	ff 15 40 a4 44 00    	call   *0x44a440
4104b3:	59                   	pop    %ecx
4104b4:	59                   	pop    %ecx
4104b5:	85 c0                	test   %eax,%eax
4104b7:	0f 84 54 e3 00 00    	je     0x41e811
4104bd:	80 3d 55 67 43 00 00 	cmpb   $0x0,0x436755
4104c4:	74 12                	je     0x4104d8
4104c6:	53                   	push   %ebx
4104c7:	68 0c 24 40 00       	push   $0x40240c
4104cc:	ff 15 40 a4 44 00    	call   *0x44a440
4104d2:	59                   	pop    %ecx
4104d3:	59                   	pop    %ecx
4104d4:	85 c0                	test   %eax,%eax
4104d6:	74 4a                	je     0x410522
4104d8:	53                   	push   %ebx
4104d9:	68 24 24 40 00       	push   $0x402424
4104de:	ff 15 40 a4 44 00    	call   *0x44a440
4104e4:	59                   	pop    %ecx
4104e5:	59                   	pop    %ecx
4104e6:	85 c0                	test   %eax,%eax
4104e8:	74 21                	je     0x41050b
4104ea:	6a 00                	push   $0x0
4104ec:	33 d2                	xor    %edx,%edx
4104ee:	33 c9                	xor    %ecx,%ecx
4104f0:	e8 1b ca ff ff       	call   0x40cf10
4104f5:	8b ce                	mov    %esi,%ecx
4104f7:	c7 06 39 00 00 00    	movl   $0x39,(%esi)
4104fd:	e8 87 92 ff ff       	call   0x409789
410502:	5f                   	pop    %edi
410503:	8b c6                	mov    %esi,%eax
410505:	5e                   	pop    %esi
410506:	5b                   	pop    %ebx
410507:	8b e5                	mov    %ebp,%esp
410509:	5d                   	pop    %ebp
41050a:	c3                   	ret
41050b:	85 ff                	test   %edi,%edi
41050d:	75 35                	jne    0x410544
41050f:	33 c9                	xor    %ecx,%ecx
410511:	c7 06 38 00 00 00    	movl   $0x38,(%esi)
410517:	41                   	inc    %ecx
410518:	e8 27 ff ff ff       	call   0x410444
41051d:	89 46 3c             	mov    %eax,0x3c(%esi)
410520:	eb e0                	jmp    0x410502
410522:	c7 06 36 00 00 00    	movl   $0x36,(%esi)
410528:	6a 00                	push   $0x0
41052a:	51                   	push   %ecx
41052b:	e8 01 a4 ff ff       	call   0x40a931
410530:	59                   	pop    %ecx
410531:	33 d2                	xor    %edx,%edx
410533:	8b c8                	mov    %eax,%ecx
410535:	e8 f6 b6 ff ff       	call   0x40bc30
41053a:	eb e1                	jmp    0x41051d
41053c:	c7 06 37 00 00 00    	movl   $0x37,(%esi)
410542:	eb e4                	jmp    0x410528
410544:	e8 10 84 01 00       	call   0x428959
410549:	eb c4                	jmp    0x41050f
41054b:	8b ff                	mov    %edi,%edi
41054d:	53                   	push   %ebx
41054e:	56                   	push   %esi
41054f:	57                   	push   %edi
410550:	8b f9                	mov    %ecx,%edi
410552:	8b d7                	mov    %edi,%edx
410554:	8d 4a 02             	lea    0x2(%edx),%ecx
410557:	66 8b 02             	mov    (%edx),%ax
41055a:	83 c2 02             	add    $0x2,%edx
41055d:	66 85 c0             	test   %ax,%ax
410560:	75 f5                	jne    0x410557
410562:	2b d1                	sub    %ecx,%edx
410564:	d1 fa                	sar    $1,%edx
410566:	8d 5a 01             	lea    0x1(%edx),%ebx
410569:	8d 0c 1b             	lea    (%ebx,%ebx,1),%ecx
41056c:	e8 5f d7 ff ff       	call   0x40dcd0
410571:	8b f0                	mov    %eax,%esi
410573:	85 f6                	test   %esi,%esi
410575:	0f 84 2c 97 00 00    	je     0x419ca7
41057b:	57                   	push   %edi
41057c:	8b d3                	mov    %ebx,%edx
41057e:	8b ce                	mov    %esi,%ecx
410580:	e8 1b ee ff ff       	call   0x40f3a0
410585:	5f                   	pop    %edi
410586:	8b c6                	mov    %esi,%eax
410588:	5e                   	pop    %esi
410589:	5b                   	pop    %ebx
41058a:	c3                   	ret
41058b:	cc                   	int3
41058c:	cc                   	int3
41058d:	cc                   	int3
41058e:	cc                   	int3
41058f:	cc                   	int3
410590:	8b ff                	mov    %edi,%edi
410592:	55                   	push   %ebp
410593:	8b ec                	mov    %esp,%ebp
410595:	83 ec 24             	sub    $0x24,%esp
410598:	53                   	push   %ebx
410599:	56                   	push   %esi
41059a:	57                   	push   %edi
41059b:	bf 03 00 00 00       	mov    $0x3,%edi
4105a0:	89 4d f0             	mov    %ecx,-0x10(%ebp)
4105a3:	8b da                	mov    %edx,%ebx
4105a5:	89 7d f4             	mov    %edi,-0xc(%ebp)
4105a8:	23 d7                	and    %edi,%edx
4105aa:	c7 45 e4 01 00 00 00 	movl   $0x1,-0x1c(%ebp)
4105b1:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)
4105b8:	c7 45 dc 0c 00 00 00 	movl   $0xc,-0x24(%ebp)
4105bf:	83 fa 02             	cmp    $0x2,%edx
4105c2:	77 09                	ja     0x4105cd
4105c4:	8b c3                	mov    %ebx,%eax
4105c6:	83 e0 09             	and    $0x9,%eax
4105c9:	3c 09                	cmp    $0x9,%al
4105cb:	75 0c                	jne    0x4105d9
4105cd:	5f                   	pop    %edi
4105ce:	5e                   	pop    %esi
4105cf:	83 c8 ff             	or     $0xffffffff,%eax
4105d2:	5b                   	pop    %ebx
4105d3:	8b e5                	mov    %ebp,%esp
4105d5:	5d                   	pop    %ebp
4105d6:	c2 04 00             	ret    $0x4
4105d9:	85 d2                	test   %edx,%edx
4105db:	75 7b                	jne    0x410658
4105dd:	be 00 00 00 80       	mov    $0x80000000,%esi
4105e2:	8b c7                	mov    %edi,%eax
4105e4:	6a 00                	push   $0x0
4105e6:	68 80 00 00 00       	push   $0x80
4105eb:	81 fb 0a 01 00 00    	cmp    $0x10a,%ebx
4105f1:	0f 84 8e 00 00 00    	je     0x410685
4105f7:	50                   	push   %eax
4105f8:	8d 45 dc             	lea    -0x24(%ebp),%eax
4105fb:	50                   	push   %eax
4105fc:	57                   	push   %edi
4105fd:	56                   	push   %esi
4105fe:	51                   	push   %ecx
4105ff:	ff 15 ac a0 44 00    	call   *0x44a0ac
410605:	8b f8                	mov    %eax,%edi
410607:	83 ff ff             	cmp    $0xffffffff,%edi