40f794:	8b 39                	mov    (%ecx),%edi
40f796:	33 f6                	xor    %esi,%esi
40f798:	56                   	push   %esi
40f799:	6a ff                	push   $0xffffffff
40f79b:	57                   	push   %edi
40f79c:	ff 15 28 31 43 00    	call   *0x433128
40f7a2:	b9 80 00 00 00       	mov    $0x80,%ecx
40f7a7:	3d 02 01 00 00       	cmp    $0x102,%eax
40f7ac:	74 08                	je     0x40f7b6
40f7ae:	85 c0                	test   %eax,%eax
40f7b0:	74 0c                	je     0x40f7be
40f7b2:	3b c1                	cmp    %ecx,%eax
40f7b4:	75 15                	jne    0x40f7cb
40f7b6:	85 c0                	test   %eax,%eax
40f7b8:	74 04                	je     0x40f7be
40f7ba:	3b c1                	cmp    %ecx,%eax
40f7bc:	75 02                	jne    0x40f7c0
40f7be:	8b f7                	mov    %edi,%esi
40f7c0:	8b 45 08             	mov    0x8(%ebp),%eax
40f7c3:	5f                   	pop    %edi
40f7c4:	89 30                	mov    %esi,(%eax)
40f7c6:	5e                   	pop    %esi
40f7c7:	5d                   	pop    %ebp
40f7c8:	c2 10 00             	ret    $0x10
40f7cb:	51                   	push   %ecx
40f7cc:	8b 4d 04             	mov    0x4(%ebp),%ecx
40f7cf:	e8 91 8b ff ff       	call   0x408365
40f7d4:	cc                   	int3
40f7d5:	8b ff                	mov    %edi,%edi
40f7d7:	55                   	push   %ebp
40f7d8:	8b ec                	mov    %esp,%ebp
40f7da:	51                   	push   %ecx
40f7db:	53                   	push   %ebx
40f7dc:	56                   	push   %esi
40f7dd:	8b f1                	mov    %ecx,%esi
40f7df:	8b da                	mov    %edx,%ebx
40f7e1:	33 c9                	xor    %ecx,%ecx
40f7e3:	57                   	push   %edi
40f7e4:	3b f3                	cmp    %ebx,%esi
40f7e6:	74 45                	je     0x40f82d
40f7e8:	8b 7d 08             	mov    0x8(%ebp),%edi
40f7eb:	85 ff                	test   %edi,%edi
40f7ed:	74 3e                	je     0x40f82d
40f7ef:	66 39 0f             	cmp    %cx,(%edi)
40f7f2:	74 39                	je     0x40f82d
40f7f4:	8b cf                	mov    %edi,%ecx
40f7f6:	e8 bb 84 ff ff       	call   0x407cb6
40f7fb:	2b de                	sub    %esi,%ebx
40f7fd:	89 45 fc             	mov    %eax,-0x4(%ebp)
40f800:	3b d8                	cmp    %eax,%ebx
40f802:	73 0c                	jae    0x40f810
40f804:	8b 45 0c             	mov    0xc(%ebp),%eax
40f807:	85 c0                	test   %eax,%eax
40f809:	74 2b                	je     0x40f836
40f80b:	83 20 00             	andl   $0x0,(%eax)
40f80e:	eb 26                	jmp    0x40f836
40f810:	50                   	push   %eax
40f811:	57                   	push   %edi
40f812:	53                   	push   %ebx
40f813:	56                   	push   %esi
40f814:	ff 15 e8 33 43 00    	call   *0x4333e8
40f81a:	8b 45 0c             	mov    0xc(%ebp),%eax
40f81d:	83 c4 10             	add    $0x10,%esp
40f820:	85 c0                	test   %eax,%eax
40f822:	74 02                	je     0x40f826
40f824:	89 30                	mov    %esi,(%eax)
40f826:	8b 45 fc             	mov    -0x4(%ebp),%eax
40f829:	03 c6                	add    %esi,%eax
40f82b:	eb 0b                	jmp    0x40f838
40f82d:	8b 45 0c             	mov    0xc(%ebp),%eax
40f830:	85 c0                	test   %eax,%eax
40f832:	74 02                	je     0x40f836
40f834:	89 08                	mov    %ecx,(%eax)
40f836:	8b c6                	mov    %esi,%eax
40f838:	5f                   	pop    %edi
40f839:	5e                   	pop    %esi
40f83a:	5b                   	pop    %ebx
40f83b:	c9                   	leave
40f83c:	c2 08 00             	ret    $0x8
40f83f:	8b ff                	mov    %edi,%edi
40f841:	55                   	push   %ebp
40f842:	8b ec                	mov    %esp,%ebp
40f844:	51                   	push   %ecx
40f845:	53                   	push   %ebx
40f846:	56                   	push   %esi
40f847:	8b da                	mov    %edx,%ebx
40f849:	8b f1                	mov    %ecx,%esi
40f84b:	57                   	push   %edi
40f84c:	3b f3                	cmp    %ebx,%esi
40f84e:	74 39                	je     0x40f889
40f850:	8b 7d 08             	mov    0x8(%ebp),%edi
40f853:	85 ff                	test   %edi,%edi
40f855:	74 32                	je     0x40f889
40f857:	80 3f 00             	cmpb   $0x0,(%edi)
40f85a:	74 2d                	je     0x40f889
40f85c:	8b cf                	mov    %edi,%ecx
40f85e:	e8 3b 84 ff ff       	call   0x407c9e
40f863:	2b de                	sub    %esi,%ebx
40f865:	89 45 fc             	mov    %eax,-0x4(%ebp)
40f868:	3b d8                	cmp    %eax,%ebx
40f86a:	72 1d                	jb     0x40f889
40f86c:	50                   	push   %eax
40f86d:	57                   	push   %edi
40f86e:	53                   	push   %ebx
40f86f:	56                   	push   %esi
40f870:	ff 15 e8 33 43 00    	call   *0x4333e8
40f876:	8b 45 0c             	mov    0xc(%ebp),%eax
40f879:	83 c4 10             	add    $0x10,%esp
40f87c:	85 c0                	test   %eax,%eax
40f87e:	74 02                	je     0x40f882
40f880:	89 30                	mov    %esi,(%eax)
40f882:	8b 45 fc             	mov    -0x4(%ebp),%eax
40f885:	03 c6                	add    %esi,%eax
40f887:	eb 0c                	jmp    0x40f895
40f889:	8b 45 0c             	mov    0xc(%ebp),%eax
40f88c:	85 c0                	test   %eax,%eax
40f88e:	74 03                	je     0x40f893
40f890:	83 20 00             	andl   $0x0,(%eax)
40f893:	8b c6                	mov    %esi,%eax
40f895:	5f                   	pop    %edi
40f896:	5e                   	pop    %esi
40f897:	5b                   	pop    %ebx
40f898:	c9                   	leave
40f899:	c2 08 00             	ret    $0x8
40f89c:	8b ff                	mov    %edi,%edi
40f89e:	53                   	push   %ebx
40f89f:	56                   	push   %esi
40f8a0:	33 db                	xor    %ebx,%ebx
40f8a2:	57                   	push   %edi
40f8a3:	8b f9                	mov    %ecx,%edi
40f8a5:	6a 50                	push   $0x50
40f8a7:	53                   	push   %ebx
40f8a8:	8d 77 1c             	lea    0x1c(%edi),%esi
40f8ab:	89 5f 04             	mov    %ebx,0x4(%edi)
40f8ae:	89 7f 08             	mov    %edi,0x8(%edi)
40f8b1:	8d 47 44             	lea    0x44(%edi),%eax
40f8b4:	89 47 14             	mov    %eax,0x14(%edi)
40f8b7:	8d 46 40             	lea    0x40(%esi),%eax
40f8ba:	89 5f 0c             	mov    %ebx,0xc(%edi)
40f8bd:	89 5f 10             	mov    %ebx,0x10(%edi)
40f8c0:	50                   	push   %eax
40f8c1:	89 77 18             	mov    %esi,0x18(%edi)
40f8c4:	89 1e                	mov    %ebx,(%esi)
40f8c6:	88 5e 04             	mov    %bl,0x4(%esi)
40f8c9:	88 5e 34             	mov    %bl,0x34(%esi)
40f8cc:	89 5e 28             	mov    %ebx,0x28(%esi)
40f8cf:	c7 46 2c 24 17 40 00 	movl   $0x401724,0x2c(%esi)
40f8d6:	89 5e 30             	mov    %ebx,0x30(%esi)
40f8d9:	c7 46 38 01 00 00 00 	movl   $0x1,0x38(%esi)
40f8e0:	89 5e 3c             	mov    %ebx,0x3c(%esi)
40f8e3:	89 58 50             	mov    %ebx,0x50(%eax)
40f8e6:	89 58 54             	mov    %ebx,0x54(%eax)
40f8e9:	e8 19 12 00 00       	call   0x410b07
40f8ee:	83 c4 0c             	add    $0xc,%esp
40f8f1:	89 9e 98 00 00 00    	mov    %ebx,0x98(%esi)
40f8f7:	8b cf                	mov    %edi,%ecx
40f8f9:	89 9f b8 00 00 00    	mov    %ebx,0xb8(%edi)
40f8ff:	c7 07 4c 10 40 00    	movl   $0x40104c,(%edi)
40f905:	e8 7e 99 ff ff       	call   0x409288
40f90a:	8b c7                	mov    %edi,%eax
40f90c:	5f                   	pop    %edi
40f90d:	5e                   	pop    %esi
40f90e:	5b                   	pop    %ebx
40f90f:	c3                   	ret
40f910:	8b ff                	mov    %edi,%edi
40f912:	55                   	push   %ebp
40f913:	8b ec                	mov    %esp,%ebp
40f915:	83 e4 f8             	and    $0xfffffff8,%esp
40f918:	83 ec 2c             	sub    $0x2c,%esp
40f91b:	a1 64 10 41 00       	mov    0x411064,%eax
40f920:	33 c4                	xor    %esp,%eax
40f922:	89 44 24 28          	mov    %eax,0x28(%esp)
40f926:	83 39 05             	cmpl   $0x5,(%ecx)
40f929:	56                   	push   %esi
40f92a:	8b f2                	mov    %edx,%esi
40f92c:	76 25                	jbe    0x40f953
40f92e:	68 00 20 00 00       	push   $0x2000
40f933:	6a 00                	push   $0x0
40f935:	e8 6d 2c ff ff       	call   0x4025a7
40f93a:	84 c0                	test   %al,%al
40f93c:	74 15                	je     0x40f953
40f93e:	8d 44 24 08          	lea    0x8(%esp),%eax
40f942:	50                   	push   %eax
40f943:	6a 02                	push   $0x2
40f945:	6a 00                	push   $0x0
40f947:	56                   	push   %esi
40f948:	68 69 1a 40 00       	push   $0x401a69
40f94d:	51                   	push   %ecx
40f94e:	e8 c8 2b ff ff       	call   0x40251b
40f953:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
40f957:	5e                   	pop    %esi
40f958:	33 cc                	xor    %esp,%ecx
40f95a:	e8 d1 0a 00 00       	call   0x410430
40f95f:	8b e5                	mov    %ebp,%esp
40f961:	5d                   	pop    %ebp
40f962:	c3                   	ret
40f963:	8b ff                	mov    %edi,%edi
40f965:	55                   	push   %ebp
40f966:	8b ec                	mov    %esp,%ebp
40f968:	83 ec 4c             	sub    $0x4c,%esp
40f96b:	a1 64 10 41 00       	mov    0x411064,%eax
40f970:	33 c5                	xor    %ebp,%eax
40f972:	89 45 fc             	mov    %eax,-0x4(%ebp)
40f975:	53                   	push   %ebx
40f976:	56                   	push   %esi
40f977:	57                   	push   %edi
40f978:	33 f6                	xor    %esi,%esi
40f97a:	89 55 b8             	mov    %edx,-0x48(%ebp)
40f97d:	56                   	push   %esi
40f97e:	6a 01                	push   $0x1
40f980:	6a 03                	push   $0x3
40f982:	56                   	push   %esi
40f983:	6a 01                	push   $0x1
40f985:	68 00 00 00 80       	push   $0x80000000
40f98a:	51                   	push   %ecx
40f98b:	ff 15 68 31 43 00    	call   *0x433168
40f991:	8b d8                	mov    %eax,%ebx
40f993:	89 5d c4             	mov    %ebx,-0x3c(%ebp)
40f996:	83 fb ff             	cmp    $0xffffffff,%ebx
40f999:	0f 84 30 01 00 00    	je     0x40facf
40f99f:	56                   	push   %esi
40f9a0:	53                   	push   %ebx
40f9a1:	ff 15 64 31 43 00    	call   *0x433164
40f9a7:	56                   	push   %esi
40f9a8:	8b f8                	mov    %eax,%edi
40f9aa:	57                   	push   %edi
40f9ab:	56                   	push   %esi
40f9ac:	6a 02                	push   $0x2
40f9ae:	56                   	push   %esi
40f9af:	53                   	push   %ebx
40f9b0:	ff 15 60 31 43 00    	call   *0x433160
40f9b6:	89 45 bc             	mov    %eax,-0x44(%ebp)
40f9b9:	85 c0                	test   %eax,%eax
40f9bb:	0f 84 07 01 00 00    	je     0x40fac8
40f9c1:	83 ff 10             	cmp    $0x10,%edi
40f9c4:	0f 82 fe 00 00 00    	jb     0x40fac8
40f9ca:	56                   	push   %esi
40f9cb:	56                   	push   %esi
40f9cc:	56                   	push   %esi
40f9cd:	6a 04                	push   $0x4
40f9cf:	50                   	push   %eax
40f9d0:	ff 15 5c 31 43 00    	call   *0x43315c
40f9d6:	8b f8                	mov    %eax,%edi
40f9d8:	85 ff                	test   %edi,%edi
40f9da:	0f 84 de 00 00 00    	je     0x40fabe
40f9e0:	81 3f 55 43 45 58    	cmpl   $0x58454355,(%edi)
40f9e6:	0f 85 cb 00 00 00    	jne    0x40fab7
40f9ec:	8b 47 04             	mov    0x4(%edi),%eax
40f9ef:	03 c7                	add    %edi,%eax
40f9f1:	68 60 15 40 00       	push   $0x401560
40f9f6:	50                   	push   %eax
40f9f7:	ff 15 54 31 43 00    	call   *0x433154
40f9fd:	85 c0                	test   %eax,%eax
40f9ff:	75 45                	jne    0x40fa46
40fa01:	e8 3a 52 ff ff       	call   0x404c40
40fa06:	85 c0                	test   %eax,%eax
40fa08:	0f 84 a9 00 00 00    	je     0x40fab7
40fa0e:	6a 01                	push   $0x1
40fa10:	6a 07                	push   $0x7
40fa12:	ff 15 08 31 43 00    	call   *0x433108
40fa18:	85 c0                	test   %eax,%eax
40fa1a:	75 2a                	jne    0x40fa46
40fa1c:	6a 01                	push   $0x1
40fa1e:	6a 0a                	push   $0xa
40fa20:	ff 15 08 31 43 00    	call   *0x433108
40fa26:	85 c0                	test   %eax,%eax
40fa28:	75 1c                	jne    0x40fa46
40fa2a:	6a 01                	push   $0x1
40fa2c:	6a 08                	push   $0x8
40fa2e:	ff 15 08 31 43 00    	call   *0x433108
40fa34:	85 c0                	test   %eax,%eax
40fa36:	75 0e                	jne    0x40fa46
40fa38:	6a 01                	push   $0x1
40fa3a:	6a 09                	push   $0x9
40fa3c:	ff 15 08 31 43 00    	call   *0x433108
40fa42:	85 c0                	test   %eax,%eax
40fa44:	74 71                	je     0x40fab7
40fa46:	0f b7 5f 08          	movzwl 0x8(%edi),%ebx
40fa4a:	b8 b0 04 00 00       	mov    $0x4b0,%eax
40fa4f:	66 3b d8             	cmp    %ax,%bx
40fa52:	0f 84 d0 00 00 00    	je     0x40fb28
40fa58:	8b c3                	mov    %ebx,%eax
40fa5a:	50                   	push   %eax
40fa5b:	ff 15 b8 31 43 00    	call   *0x4331b8
40fa61:	85 c0                	test   %eax,%eax
40fa63:	74 4f                	je     0x40fab4
40fa65:	8d 45 e8             	lea    -0x18(%ebp),%eax
40fa68:	50                   	push   %eax
40fa69:	53                   	push   %ebx
40fa6a:	ff 15 70 31 43 00    	call   *0x433170
40fa70:	85 c0                	test   %eax,%eax
40fa72:	74 40                	je     0x40fab4
40fa74:	83 7d e8 01          	cmpl   $0x1,-0x18(%ebp)
40fa78:	76 66                	jbe    0x40fae0
40fa7a:	6a 02                	push   $0x2
40fa7c:	8d 45 c8             	lea    -0x38(%ebp),%eax
40fa7f:	50                   	push   %eax
40fa80:	53                   	push   %ebx
40fa81:	ff 15 78 30 43 00    	call   *0x433078
40fa87:	85 c0                	test   %eax,%eax
40fa89:	74 55                	je     0x40fae0
40fa8b:	8b 15 b8 16 41 00    	mov    0x4116b8,%edx
40fa91:	85 d2                	test   %edx,%edx
40fa93:	7e 1f                	jle    0x40fab4
40fa95:	8b 0d b4 16 41 00    	mov    0x4116b4,%ecx
40fa9b:	81 c1 00 02 00 00    	add    $0x200,%ecx
40faa1:	0f b6 01             	movzbl (%ecx),%eax
40faa4:	3b 45 c8             	cmp    -0x38(%ebp),%eax
40faa7:	74 37                	je     0x40fae0
40faa9:	46                   	inc    %esi
40faaa:	81 c1 14 02 00 00    	add    $0x214,%ecx
40fab0:	3b f2                	cmp    %edx,%esi
40fab2:	7c ed                	jl     0x40faa1
40fab4:	8b 5d c4             	mov    -0x3c(%ebp),%ebx
40fab7:	57                   	push   %edi
40fab8:	ff 15 58 31 43 00    	call   *0x433158
40fabe:	8b 45 bc             	mov    -0x44(%ebp),%eax
40fac1:	50                   	push   %eax
40fac2:	ff 15 74 31 43 00    	call   *0x433174
40fac8:	53                   	push   %ebx
40fac9:	ff 15 74 31 43 00    	call   *0x433174
40facf:	33 c0                	xor    %eax,%eax
40fad1:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40fad4:	5f                   	pop    %edi
40fad5:	5e                   	pop    %esi
40fad6:	33 cd                	xor    %ebp,%ecx
40fad8:	5b                   	pop    %ebx
40fad9:	e8 52 09 00 00       	call   0x410430
40fade:	c9                   	leave
40fadf:	c3                   	ret
40fae0:	b8 a4 03 00 00       	mov    $0x3a4,%eax
40fae5:	66 3b d8             	cmp    %ax,%bx
40fae8:	75 06                	jne    0x40faf0
40faea:	6a 01                	push   $0x1
40faec:	6a 07                	push   $0x7
40faee:	eb 2e                	jmp    0x40fb1e
40faf0:	b8 a8 03 00 00       	mov    $0x3a8,%eax
40faf5:	66 3b d8             	cmp    %ax,%bx
40faf8:	75 06                	jne    0x40fb00
40fafa:	6a 01                	push   $0x1
40fafc:	6a 0a                	push   $0xa
40fafe:	eb 1e                	jmp    0x40fb1e
40fb00:	b8 b5 03 00 00       	mov    $0x3b5,%eax
40fb05:	66 3b d8             	cmp    %ax,%bx
40fb08:	75 06                	jne    0x40fb10
40fb0a:	6a 01                	push   $0x1
40fb0c:	6a 08                	push   $0x8
40fb0e:	eb 0e                	jmp    0x40fb1e
40fb10:	b8 b6 03 00 00       	mov    $0x3b6,%eax
40fb15:	66 3b d8             	cmp    %ax,%bx