40c592:	e8 75 d1 ff ff       	call   0x40970c
40c597:	68 7e 04 00 00       	push   $0x47e
40c59c:	ff 15 74 20 41 00    	call   *0x412074
40c5a2:	e9 fe 02 00 00       	jmp    0x40c8a5
40c5a7:	e8 df ce ff ff       	call   0x40948b
40c5ac:	85 c0                	test   %eax,%eax
40c5ae:	0f 84 ec 02 00 00    	je     0x40c8a0
40c5b4:	33 c9                	xor    %ecx,%ecx
40c5b6:	e8 ce f1 ff ff       	call   0x40b789
40c5bb:	8b d8                	mov    %eax,%ebx
40c5bd:	89 5c 24 14          	mov    %ebx,0x14(%esp)
40c5c1:	85 db                	test   %ebx,%ebx
40c5c3:	0f 84 d7 02 00 00    	je     0x40c8a0
40c5c9:	56                   	push   %esi
40c5ca:	8d 4c 24 20          	lea    0x20(%esp),%ecx
40c5ce:	e8 e7 f4 ff ff       	call   0x40baba
40c5d3:	85 c0                	test   %eax,%eax
40c5d5:	0f 84 c5 02 00 00    	je     0x40c8a0
40c5db:	83 64 24 20 00       	andl   $0x0,0x20(%esp)
40c5e0:	33 c9                	xor    %ecx,%ecx
40c5e2:	41                   	inc    %ecx
40c5e3:	89 4c 24 24          	mov    %ecx,0x24(%esp)
40c5e7:	3b f9                	cmp    %ecx,%edi
40c5e9:	0f 86 62 01 00 00    	jbe    0x40c751
40c5ef:	8b 54 24 2c          	mov    0x2c(%esp),%edx
40c5f3:	8d 41 01             	lea    0x1(%ecx),%eax
40c5f6:	c7 44 24 18 02 00 00 	movl   $0x2,0x18(%esp)
40c5fd:	00
40c5fe:	8b 3c 8a             	mov    (%edx,%ecx,4),%edi
40c601:	3b 44 24 28          	cmp    0x28(%esp),%eax
40c605:	73 0a                	jae    0x40c611
40c607:	8b 44 8a 04          	mov    0x4(%edx,%ecx,4),%eax
40c60b:	89 44 24 10          	mov    %eax,0x10(%esp)
40c60f:	eb 05                	jmp    0x40c616
40c611:	83 64 24 10 00       	andl   $0x0,0x10(%esp)
40c616:	57                   	push   %edi
40c617:	8b d6                	mov    %esi,%edx
40c619:	e8 e0 fc ff ff       	call   0x40c2fe
40c61e:	8b c8                	mov    %eax,%ecx
40c620:	83 f9 ff             	cmp    $0xffffffff,%ecx
40c623:	75 3f                	jne    0x40c664
40c625:	8d 44 24 30          	lea    0x30(%esp),%eax
40c629:	8b d6                	mov    %esi,%edx
40c62b:	50                   	push   %eax
40c62c:	57                   	push   %edi
40c62d:	e8 99 fd ff ff       	call   0x40c3cb
40c632:	8b c8                	mov    %eax,%ecx
40c634:	83 f9 ff             	cmp    $0xffffffff,%ecx
40c637:	75 16                	jne    0x40c64f
40c639:	8b 44 24 1c          	mov    0x1c(%esp),%eax
40c63d:	3b c1                	cmp    %ecx,%eax
40c63f:	0f 84 51 01 00 00    	je     0x40c796
40c645:	89 7c 24 10          	mov    %edi,0x10(%esp)
40c649:	8b c8                	mov    %eax,%ecx
40c64b:	33 ff                	xor    %edi,%edi
40c64d:	eb 0c                	jmp    0x40c65b
40c64f:	8b 44 24 34          	mov    0x34(%esp),%eax
40c653:	8b 7c 24 30          	mov    0x30(%esp),%edi
40c657:	89 44 24 10          	mov    %eax,0x10(%esp)
40c65b:	33 d2                	xor    %edx,%edx
40c65d:	42                   	inc    %edx
40c65e:	89 54 24 18          	mov    %edx,0x18(%esp)
40c662:	eb 04                	jmp    0x40c668
40c664:	8b 54 24 18          	mov    0x18(%esp),%edx
40c668:	6b d9 50             	imul   $0x50,%ecx,%ebx
40c66b:	03 de                	add    %esi,%ebx
40c66d:	0f 84 8a 01 00 00    	je     0x40c7fd
40c673:	8b 4c 24 10          	mov    0x10(%esp),%ecx
40c677:	85 c9                	test   %ecx,%ecx
40c679:	74 5b                	je     0x40c6d6
40c67b:	83 fa 02             	cmp    $0x2,%edx
40c67e:	75 56                	jne    0x40c6d6
40c680:	8b 43 08             	mov    0x8(%ebx),%eax
40c683:	48                   	dec    %eax
40c684:	83 f8 09             	cmp    $0x9,%eax
40c687:	77 48                	ja     0x40c6d1
40c689:	0f b6 80 bb c8 40 00 	movzbl 0x40c8bb(%eax),%eax
40c690:	ff 24 85 b3 c8 40 00 	jmp    *0x40c8b3(,%eax,4)
40c697:	51                   	push   %ecx
40c698:	8b d6                	mov    %esi,%edx
40c69a:	e8 5f fc ff ff       	call   0x40c2fe
40c69f:	83 f8 ff             	cmp    $0xffffffff,%eax
40c6a2:	75 15                	jne    0x40c6b9
40c6a4:	8d 44 24 30          	lea    0x30(%esp),%eax
40c6a8:	8b d6                	mov    %esi,%edx
40c6aa:	50                   	push   %eax
40c6ab:	ff 74 24 14          	push   0x14(%esp)
40c6af:	e8 17 fd ff ff       	call   0x40c3cb
40c6b4:	83 f8 ff             	cmp    $0xffffffff,%eax
40c6b7:	74 05                	je     0x40c6be
40c6b9:	33 d2                	xor    %edx,%edx
40c6bb:	42                   	inc    %edx
40c6bc:	eb 04                	jmp    0x40c6c2
40c6be:	8b 54 24 18          	mov    0x18(%esp),%edx
40c6c2:	40                   	inc    %eax
40c6c3:	f7 d8                	neg    %eax
40c6c5:	1b c0                	sbb    %eax,%eax
40c6c7:	f7 d0                	not    %eax
40c6c9:	23 44 24 10          	and    0x10(%esp),%eax
40c6cd:	8b c8                	mov    %eax,%ecx
40c6cf:	eb 05                	jmp    0x40c6d6
40c6d1:	33 d2                	xor    %edx,%edx
40c6d3:	33 c9                	xor    %ecx,%ecx
40c6d5:	42                   	inc    %edx
40c6d6:	8b 44 24 1c          	mov    0x1c(%esp),%eax
40c6da:	89 44 24 3c          	mov    %eax,0x3c(%esp)
40c6de:	8b 44 24 14          	mov    0x14(%esp),%eax
40c6e2:	89 44 24 40          	mov    %eax,0x40(%esp)
40c6e6:	8d 44 24 38          	lea    0x38(%esp),%eax
40c6ea:	89 54 24 38          	mov    %edx,0x38(%esp)
40c6ee:	8b d1                	mov    %ecx,%edx
40c6f0:	50                   	push   %eax
40c6f1:	8b cf                	mov    %edi,%ecx
40c6f3:	89 5c 24 48          	mov    %ebx,0x48(%esp)
40c6f7:	e8 8e f6 ff ff       	call   0x40bd8a
40c6fc:	8b 54 24 38          	mov    0x38(%esp),%edx
40c700:	85 c0                	test   %eax,%eax
40c702:	0f 84 38 01 00 00    	je     0x40c840
40c708:	8b 43 18             	mov    0x18(%ebx),%eax
40c70b:	85 c0                	test   %eax,%eax
40c70d:	74 09                	je     0x40c718
40c70f:	3b 43 1c             	cmp    0x1c(%ebx),%eax
40c712:	0f 84 a9 00 00 00    	je     0x40c7c1
40c718:	8b 43 10             	mov    0x10(%ebx),%eax
40c71b:	ff 43 1c             	incl   0x1c(%ebx)
40c71e:	25 00 00 02 00       	and    $0x20000,%eax
40c723:	83 c8 00             	or     $0x0,%eax
40c726:	74 09                	je     0x40c731
40c728:	33 c0                	xor    %eax,%eax
40c72a:	40                   	inc    %eax
40c72b:	89 44 24 20          	mov    %eax,0x20(%esp)
40c72f:	eb 04                	jmp    0x40c735
40c731:	8b 44 24 20          	mov    0x20(%esp),%eax
40c735:	8b 4c 24 24          	mov    0x24(%esp),%ecx
40c739:	03 ca                	add    %edx,%ecx
40c73b:	89 4c 24 24          	mov    %ecx,0x24(%esp)
40c73f:	3b 4c 24 28          	cmp    0x28(%esp),%ecx
40c743:	0f 82 a6 fe ff ff    	jb     0x40c5ef
40c749:	85 c0                	test   %eax,%eax
40c74b:	75 39                	jne    0x40c786
40c74d:	8b 5c 24 14          	mov    0x14(%esp),%ebx
40c751:	33 ff                	xor    %edi,%edi
40c753:	8b ce                	mov    %esi,%ecx
40c755:	85 c9                	test   %ecx,%ecx
40c757:	0f 84 c9 00 00 00    	je     0x40c826
40c75d:	8b 41 14             	mov    0x14(%ecx),%eax
40c760:	8b 51 10             	mov    0x10(%ecx),%edx
40c763:	89 44 24 34          	mov    %eax,0x34(%esp)
40c767:	8b c2                	mov    %edx,%eax
40c769:	25 00 00 08 00       	and    $0x80000,%eax
40c76e:	83 c8 00             	or     $0x0,%eax
40c771:	74 0a                	je     0x40c77d
40c773:	83 79 1c 00          	cmpl   $0x0,0x1c(%ecx)
40c777:	0f 84 98 00 00 00    	je     0x40c815
40c77d:	47                   	inc    %edi
40c77e:	83 c1 50             	add    $0x50,%ecx
40c781:	83 ff 0b             	cmp    $0xb,%edi
40c784:	72 cf                	jb     0x40c755
40c786:	6a 00                	push   $0x0
40c788:	ff 15 74 20 41 00    	call   *0x412074
40c78e:	33 c0                	xor    %eax,%eax
40c790:	40                   	inc    %eax
40c791:	e9 11 01 00 00       	jmp    0x40c8a7
40c796:	ff 74 24 14          	push   0x14(%esp)
40c79a:	b9 e7 15 00 00       	mov    $0x15e7,%ecx
40c79f:	57                   	push   %edi
40c7a0:	e8 ac d2 ff ff       	call   0x409a51
40c7a5:	50                   	push   %eax
40c7a6:	6a 02                	push   $0x2
40c7a8:	e8 be cf ff ff       	call   0x40976b
40c7ad:	83 c4 10             	add    $0x10,%esp
40c7b0:	8b d6                	mov    %esi,%edx
40c7b2:	e8 02 fd ff ff       	call   0x40c4b9
40c7b7:	68 e4 01 04 80       	push   $0x800401e4
40c7bc:	e9 db fd ff ff       	jmp    0x40c59c
40c7c1:	85 ff                	test   %edi,%edi
40c7c3:	74 2a                	je     0x40c7ef
40c7c5:	57                   	push   %edi
40c7c6:	ff 15 d4 20 41 00    	call   *0x4120d4
40c7cc:	85 c0                	test   %eax,%eax
40c7ce:	74 1f                	je     0x40c7ef
40c7d0:	ff 74 24 14          	push   0x14(%esp)
40c7d4:	b9 e5 15 00 00       	mov    $0x15e5,%ecx
40c7d9:	ff 73 18             	push   0x18(%ebx)
40c7dc:	57                   	push   %edi
40c7dd:	e8 6f d2 ff ff       	call   0x409a51
40c7e2:	50                   	push   %eax
40c7e3:	6a 03                	push   $0x3
40c7e5:	e8 81 cf ff ff       	call   0x40976b
40c7ea:	83 c4 14             	add    $0x14,%esp
40c7ed:	eb c1                	jmp    0x40c7b0
40c7ef:	ff 74 24 14          	push   0x14(%esp)
40c7f3:	b9 ea 15 00 00       	mov    $0x15ea,%ecx
40c7f8:	ff 73 18             	push   0x18(%ebx)
40c7fb:	eb a3                	jmp    0x40c7a0
40c7fd:	ff 15 48 20 41 00    	call   *0x412048
40c803:	85 c0                	test   %eax,%eax
40c805:	0f 85 95 00 00 00    	jne    0x40c8a0
40c80b:	68 2b 04 00 00       	push   $0x42b
40c810:	e9 85 00 00 00       	jmp    0x40c89a
40c815:	83 79 20 00          	cmpl   $0x0,0x20(%ecx)
40c819:	75 4b                	jne    0x40c866
40c81b:	81 e2 00 00 04 00    	and    $0x40000,%edx
40c821:	83 ca 00             	or     $0x0,%edx
40c824:	75 23                	jne    0x40c849
40c826:	ff 15 48 20 41 00    	call   *0x412048
40c82c:	85 c0                	test   %eax,%eax
40c82e:	75 0b                	jne    0x40c83b
40c830:	68 2b 04 00 00       	push   $0x42b
40c835:	ff 15 74 20 41 00    	call   *0x412074
40c83b:	e8 b4 cf ff ff       	call   0x4097f4
40c840:	8b d6                	mov    %esi,%edx
40c842:	e8 72 fc ff ff       	call   0x40c4b9
40c847:	eb 5c                	jmp    0x40c8a5
40c849:	8b 79 24             	mov    0x24(%ecx),%edi
40c84c:	85 ff                	test   %edi,%edi
40c84e:	74 2d                	je     0x40c87d
40c850:	57                   	push   %edi
40c851:	ff 15 d4 20 41 00    	call   *0x4120d4
40c857:	85 c0                	test   %eax,%eax
40c859:	74 22                	je     0x40c87d
40c85b:	53                   	push   %ebx
40c85c:	b9 e4 15 00 00       	mov    $0x15e4,%ecx
40c861:	e9 39 ff ff ff       	jmp    0x40c79f
40c866:	8b 79 24             	mov    0x24(%ecx),%edi
40c869:	85 ff                	test   %edi,%edi
40c86b:	75 e3                	jne    0x40c850
40c86d:	8b 49 20             	mov    0x20(%ecx),%ecx
40c870:	e8 b1 f1 ff ff       	call   0x40ba26
40c875:	8b f8                	mov    %eax,%edi
40c877:	85 ff                	test   %edi,%edi
40c879:	75 d5                	jne    0x40c850
40c87b:	eb be                	jmp    0x40c83b
40c87d:	53                   	push   %ebx
40c87e:	b9 e8 15 00 00       	mov    $0x15e8,%ecx
40c883:	e8 c9 d1 ff ff       	call   0x409a51
40c888:	50                   	push   %eax
40c889:	6a 01                	push   $0x1
40c88b:	e8 db ce ff ff       	call   0x40976b
40c890:	83 c4 0c             	add    $0xc,%esp
40c893:	e9 18 ff ff ff       	jmp    0x40c7b0
40c898:	6a 57                	push   $0x57
40c89a:	ff 15 74 20 41 00    	call   *0x412074
40c8a0:	e8 4f cf ff ff       	call   0x4097f4
40c8a5:	33 c0                	xor    %eax,%eax
40c8a7:	5f                   	pop    %edi
40c8a8:	5e                   	pop    %esi
40c8a9:	5b                   	pop    %ebx
40c8aa:	8b e5                	mov    %ebp,%esp
40c8ac:	5d                   	pop    %ebp
40c8ad:	c2 10 00             	ret    $0x10
40c8b0:	8d 49 00             	lea    0x0(%ecx),%ecx
40c8b3:	97                   	xchg   %eax,%edi
40c8b4:	c6 40 00 d1          	movb   $0xd1,0x0(%eax)
40c8b8:	c6 40 00 00          	movb   $0x0,0x0(%eax)
40c8bc:	00 00                	add    %al,(%eax)
40c8be:	01 01                	add    %eax,(%ecx)
40c8c0:	01 00                	add    %eax,(%eax)
40c8c2:	00 00                	add    %al,(%eax)
40c8c4:	01 8b ff 55 8b ec    	add    %ecx,-0x1374aa01(%ebx)
40c8ca:	53                   	push   %ebx
40c8cb:	56                   	push   %esi
40c8cc:	57                   	push   %edi
40c8cd:	8b fa                	mov    %edx,%edi
40c8cf:	85 ff                	test   %edi,%edi
40c8d1:	74 34                	je     0x40c907
40c8d3:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
40c8d7:	74 2e                	je     0x40c907
40c8d9:	33 f6                	xor    %esi,%esi
40c8db:	8d 5f 04             	lea    0x4(%edi),%ebx
40c8de:	8b 4d 08             	mov    0x8(%ebp),%ecx
40c8e1:	8b d3                	mov    %ebx,%edx
40c8e3:	6a 01                	push   $0x1
40c8e5:	e8 fe d4 ff ff       	call   0x409de8
40c8ea:	85 c0                	test   %eax,%eax
40c8ec:	75 0e                	jne    0x40c8fc
40c8ee:	46                   	inc    %esi
40c8ef:	81 c3 d0 00 00 00    	add    $0xd0,%ebx
40c8f5:	83 fe 06             	cmp    $0x6,%esi
40c8f8:	72 e4                	jb     0x40c8de
40c8fa:	eb 18                	jmp    0x40c914
40c8fc:	69 c6 d0 00 00 00    	imul   $0xd0,%esi,%eax
40c902:	8b 04 38             	mov    (%eax,%edi,1),%eax
40c905:	eb 0f                	jmp    0x40c916
40c907:	6a 57                	push   $0x57
40c909:	ff 15 74 20 41 00    	call   *0x412074
40c90f:	e8 e0 ce ff ff       	call   0x4097f4
40c914:	33 c0                	xor    %eax,%eax
40c916:	5f                   	pop    %edi
40c917:	5e                   	pop    %esi
40c918:	5b                   	pop    %ebx
40c919:	5d                   	pop    %ebp
40c91a:	c2 04 00             	ret    $0x4
40c91d:	8b ff                	mov    %edi,%edi
40c91f:	55                   	push   %ebp
40c920:	8b ec                	mov    %esp,%ebp
40c922:	85 c9                	test   %ecx,%ecx
40c924:	74 32                	je     0x40c958
40c926:	85 d2                	test   %edx,%edx
40c928:	74 2e                	je     0x40c958
40c92a:	83 7d 0c ff          	cmpl   $0xffffffff,0xc(%ebp)
40c92e:	75 07                	jne    0x40c937
40c930:	b8 ff 00 00 00       	mov    $0xff,%eax
40c935:	eb 30                	jmp    0x40c967
40c937:	ff 75 0c             	push   0xc(%ebp)
40c93a:	6a 01                	push   $0x1
40c93c:	e8 59 db ff ff       	call   0x40a49a
40c941:	85 c0                	test   %eax,%eax
40c943:	75 05                	jne    0x40c94a
40c945:	6a 02                	push   $0x2
40c947:	58                   	pop    %eax
40c948:	eb 1d                	jmp    0x40c967
40c94a:	79 04                	jns    0x40c950
40c94c:	6a 04                	push   $0x4
40c94e:	eb f7                	jmp    0x40c947
40c950:	85 c0                	test   %eax,%eax
40c952:	7e 11                	jle    0x40c965
40c954:	6a 08                	push   $0x8
40c956:	eb ef                	jmp    0x40c947
40c958:	6a 57                	push   $0x57
40c95a:	ff 15 74 20 41 00    	call   *0x412074
40c960:	e8 8f ce ff ff       	call   0x4097f4
40c965:	33 c0                	xor    %eax,%eax
40c967:	5d                   	pop    %ebp
40c968:	c2 08 00             	ret    $0x8
40c96b:	8b ff                	mov    %edi,%edi
40c96d:	55                   	push   %ebp
40c96e:	8b ec                	mov    %esp,%ebp
40c970:	81 ec 00 07 00 00    	sub    $0x700,%esp
40c976:	a1 44 10 41 00       	mov    0x411044,%eax
40c97b:	33 c5                	xor    %ebp,%eax
40c97d:	89 45 f8             	mov    %eax,-0x8(%ebp)
40c980:	53                   	push   %ebx
40c981:	56                   	push   %esi
40c982:	57                   	push   %edi
40c983:	89 8d 10 f9 ff ff    	mov    %ecx,-0x6f0(%ebp)
40c989:	8d 75 08             	lea    0x8(%ebp),%esi
40c98c:	b9 37 01 00 00       	mov    $0x137,%ecx
40c991:	8d bd 14 f9 ff ff    	lea    -0x6ec(%ebp),%edi
40c997:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
40c999:	68 fe 01 00 00       	push   $0x1fe
40c99e:	33 ff                	xor    %edi,%edi
40c9a0:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
40c9a6:	57                   	push   %edi
40c9a7:	50                   	push   %eax
40c9a8:	8b da                	mov    %edx,%ebx
40c9aa:	e8 15 2a 00 00       	call   0x40f3c4
40c9af:	8b 8d 10 f9 ff ff    	mov    -0x6f0(%ebp),%ecx
40c9b5:	83 c4 0c             	add    $0xc,%esp
40c9b8:	85 c9                	test   %ecx,%ecx