405869:	8d 42 fe             	lea    -0x2(%edx),%eax
40586c:	5e                   	pop    %esi
40586d:	5f                   	pop    %edi
40586e:	5b                   	pop    %ebx
40586f:	c3                   	ret
405870:	8d 42 fd             	lea    -0x3(%edx),%eax
405873:	5e                   	pop    %esi
405874:	5f                   	pop    %edi
405875:	5b                   	pop    %ebx
405876:	c3                   	ret
405877:	8d 42 fc             	lea    -0x4(%edx),%eax
40587a:	5e                   	pop    %esi
40587b:	5f                   	pop    %edi
40587c:	5b                   	pop    %ebx
40587d:	c3                   	ret
40587e:	8b c1                	mov    %ecx,%eax
405880:	83 60 04 00          	andl   $0x0,0x4(%eax)
405884:	83 60 08 00          	andl   $0x0,0x8(%eax)
405888:	c7 00 18 76 41 00    	movl   $0x417618,(%eax)
40588e:	c3                   	ret
40588f:	53                   	push   %ebx
405890:	8b 5c 24 08          	mov    0x8(%esp),%ebx
405894:	56                   	push   %esi
405895:	57                   	push   %edi
405896:	8b f9                	mov    %ecx,%edi
405898:	c7 07 18 76 41 00    	movl   $0x417618,(%edi)
40589e:	8b 03                	mov    (%ebx),%eax
4058a0:	85 c0                	test   %eax,%eax
4058a2:	74 26                	je     0x4058ca
4058a4:	50                   	push   %eax
4058a5:	e8 b6 0e 00 00       	call   0x406760
4058aa:	8b f0                	mov    %eax,%esi
4058ac:	46                   	inc    %esi
4058ad:	56                   	push   %esi
4058ae:	e8 9c 54 00 00       	call   0x40ad4f
4058b3:	85 c0                	test   %eax,%eax
4058b5:	59                   	pop    %ecx
4058b6:	59                   	pop    %ecx
4058b7:	89 47 04             	mov    %eax,0x4(%edi)
4058ba:	74 12                	je     0x4058ce
4058bc:	ff 33                	push   (%ebx)
4058be:	56                   	push   %esi
4058bf:	50                   	push   %eax
4058c0:	e8 d6 53 00 00       	call   0x40ac9b
4058c5:	83 c4 0c             	add    $0xc,%esp
4058c8:	eb 04                	jmp    0x4058ce
4058ca:	83 67 04 00          	andl   $0x0,0x4(%edi)
4058ce:	c7 47 08 01 00 00 00 	movl   $0x1,0x8(%edi)
4058d5:	8b c7                	mov    %edi,%eax
4058d7:	5f                   	pop    %edi
4058d8:	5e                   	pop    %esi
4058d9:	5b                   	pop    %ebx
4058da:	c2 04 00             	ret    $0x4
4058dd:	8b c1                	mov    %ecx,%eax
4058df:	8b 4c 24 04          	mov    0x4(%esp),%ecx
4058e3:	c7 00 18 76 41 00    	movl   $0x417618,(%eax)
4058e9:	8b 09                	mov    (%ecx),%ecx
4058eb:	83 60 08 00          	andl   $0x0,0x8(%eax)
4058ef:	89 48 04             	mov    %ecx,0x4(%eax)
4058f2:	c2 08 00             	ret    $0x8
4058f5:	53                   	push   %ebx
4058f6:	8b 5c 24 08          	mov    0x8(%esp),%ebx
4058fa:	56                   	push   %esi
4058fb:	8b f1                	mov    %ecx,%esi
4058fd:	c7 06 18 76 41 00    	movl   $0x417618,(%esi)
405903:	8b 43 08             	mov    0x8(%ebx),%eax
405906:	89 46 08             	mov    %eax,0x8(%esi)
405909:	85 c0                	test   %eax,%eax
40590b:	8b 43 04             	mov    0x4(%ebx),%eax
40590e:	57                   	push   %edi
40590f:	74 31                	je     0x405942
405911:	85 c0                	test   %eax,%eax
405913:	74 27                	je     0x40593c
405915:	50                   	push   %eax
405916:	e8 45 0e 00 00       	call   0x406760
40591b:	8b f8                	mov    %eax,%edi
40591d:	47                   	inc    %edi
40591e:	57                   	push   %edi
40591f:	e8 2b 54 00 00       	call   0x40ad4f
405924:	85 c0                	test   %eax,%eax
405926:	59                   	pop    %ecx
405927:	59                   	pop    %ecx
405928:	89 46 04             	mov    %eax,0x4(%esi)
40592b:	74 18                	je     0x405945
40592d:	ff 73 04             	push   0x4(%ebx)
405930:	57                   	push   %edi
405931:	50                   	push   %eax
405932:	e8 64 53 00 00       	call   0x40ac9b
405937:	83 c4 0c             	add    $0xc,%esp
40593a:	eb 09                	jmp    0x405945
40593c:	83 66 04 00          	andl   $0x0,0x4(%esi)
405940:	eb 03                	jmp    0x405945
405942:	89 46 04             	mov    %eax,0x4(%esi)
405945:	5f                   	pop    %edi
405946:	8b c6                	mov    %esi,%eax
405948:	5e                   	pop    %esi
405949:	5b                   	pop    %ebx
40594a:	c2 04 00             	ret    $0x4
40594d:	83 79 08 00          	cmpl   $0x0,0x8(%ecx)
405951:	c7 01 18 76 41 00    	movl   $0x417618,(%ecx)
405957:	74 09                	je     0x405962
405959:	ff 71 04             	push   0x4(%ecx)
40595c:	e8 f2 0a 00 00       	call   0x406453
405961:	59                   	pop    %ecx
405962:	c3                   	ret
405963:	8b 41 04             	mov    0x4(%ecx),%eax
405966:	85 c0                	test   %eax,%eax
405968:	75 05                	jne    0x40596f
40596a:	b8 20 76 41 00       	mov    $0x417620,%eax
40596f:	c3                   	ret
405970:	56                   	push   %esi
405971:	8d 44 24 08          	lea    0x8(%esp),%eax
405975:	50                   	push   %eax
405976:	8b f1                	mov    %ecx,%esi
405978:	e8 12 ff ff ff       	call   0x40588f
40597d:	c7 06 38 76 41 00    	movl   $0x417638,(%esi)
405983:	8b c6                	mov    %esi,%eax
405985:	5e                   	pop    %esi
405986:	c2 04 00             	ret    $0x4
405989:	56                   	push   %esi
40598a:	ff 74 24 08          	push   0x8(%esp)
40598e:	8b f1                	mov    %ecx,%esi
405990:	e8 60 ff ff ff       	call   0x4058f5
405995:	c7 06 38 76 41 00    	movl   $0x417638,(%esi)
40599b:	8b c6                	mov    %esi,%eax
40599d:	5e                   	pop    %esi
40599e:	c2 04 00             	ret    $0x4
4059a1:	c7 01 38 76 41 00    	movl   $0x417638,(%ecx)
4059a7:	e9 a1 ff ff ff       	jmp    0x40594d
4059ac:	56                   	push   %esi
4059ad:	8b f1                	mov    %ecx,%esi
4059af:	e8 99 ff ff ff       	call   0x40594d
4059b4:	f6 44 24 08 01       	testb  $0x1,0x8(%esp)
4059b9:	74 07                	je     0x4059c2
4059bb:	56                   	push   %esi
4059bc:	e8 6e 00 00 00       	call   0x405a2f
4059c1:	59                   	pop    %ecx
4059c2:	8b c6                	mov    %esi,%eax
4059c4:	5e                   	pop    %esi
4059c5:	c2 04 00             	ret    $0x4
4059c8:	56                   	push   %esi
4059c9:	8b f1                	mov    %ecx,%esi
4059cb:	c7 06 38 76 41 00    	movl   $0x417638,(%esi)
4059d1:	e8 77 ff ff ff       	call   0x40594d
4059d6:	f6 44 24 08 01       	testb  $0x1,0x8(%esp)
4059db:	74 07                	je     0x4059e4
4059dd:	56                   	push   %esi
4059de:	e8 4c 00 00 00       	call   0x405a2f
4059e3:	59                   	pop    %ecx
4059e4:	8b c6                	mov    %esi,%eax
4059e6:	5e                   	pop    %esi
4059e7:	c2 04 00             	ret    $0x4
4059ea:	51                   	push   %ecx
4059eb:	c7 01 44 76 41 00    	movl   $0x417644,(%ecx)
4059f1:	e8 1c 54 00 00       	call   0x40ae12
4059f6:	59                   	pop    %ecx
4059f7:	c3                   	ret
4059f8:	56                   	push   %esi
4059f9:	8b f1                	mov    %ecx,%esi
4059fb:	e8 ea ff ff ff       	call   0x4059ea
405a00:	f6 44 24 08 01       	testb  $0x1,0x8(%esp)
405a05:	74 07                	je     0x405a0e
405a07:	56                   	push   %esi
405a08:	e8 22 00 00 00       	call   0x405a2f
405a0d:	59                   	pop    %ecx
405a0e:	8b c6                	mov    %esi,%eax
405a10:	5e                   	pop    %esi
405a11:	c2 04 00             	ret    $0x4
405a14:	8b 44 24 04          	mov    0x4(%esp),%eax
405a18:	83 c1 09             	add    $0x9,%ecx
405a1b:	51                   	push   %ecx
405a1c:	83 c0 09             	add    $0x9,%eax
405a1f:	50                   	push   %eax
405a20:	e8 6b 54 00 00       	call   0x40ae90
405a25:	f7 d8                	neg    %eax
405a27:	59                   	pop    %ecx
405a28:	1b c0                	sbb    %eax,%eax
405a2a:	59                   	pop    %ecx
405a2b:	40                   	inc    %eax
405a2c:	c2 04 00             	ret    $0x4
405a2f:	e9 1f 0a 00 00       	jmp    0x406453
405a34:	55                   	push   %ebp
405a35:	8b ec                	mov    %esp,%ebp
405a37:	56                   	push   %esi
405a38:	8b 75 14             	mov    0x14(%ebp),%esi
405a3b:	57                   	push   %edi
405a3c:	33 ff                	xor    %edi,%edi
405a3e:	3b f7                	cmp    %edi,%esi
405a40:	75 04                	jne    0x405a46
405a42:	33 c0                	xor    %eax,%eax
405a44:	eb 65                	jmp    0x405aab
405a46:	39 7d 08             	cmp    %edi,0x8(%ebp)
405a49:	75 1b                	jne    0x405a66
405a4b:	e8 aa 39 00 00       	call   0x4093fa
405a50:	6a 16                	push   $0x16
405a52:	5e                   	pop    %esi
405a53:	89 30                	mov    %esi,(%eax)
405a55:	57                   	push   %edi
405a56:	57                   	push   %edi
405a57:	57                   	push   %edi
405a58:	57                   	push   %edi
405a59:	57                   	push   %edi
405a5a:	e8 f1 1b 00 00       	call   0x407650
405a5f:	83 c4 14             	add    $0x14,%esp
405a62:	8b c6                	mov    %esi,%eax
405a64:	eb 45                	jmp    0x405aab
405a66:	39 7d 10             	cmp    %edi,0x10(%ebp)
405a69:	74 16                	je     0x405a81
405a6b:	39 75 0c             	cmp    %esi,0xc(%ebp)
405a6e:	72 11                	jb     0x405a81
405a70:	56                   	push   %esi
405a71:	ff 75 10             	push   0x10(%ebp)
405a74:	ff 75 08             	push   0x8(%ebp)
405a77:	e8 54 01 00 00       	call   0x405bd0
405a7c:	83 c4 0c             	add    $0xc,%esp
405a7f:	eb c1                	jmp    0x405a42
405a81:	ff 75 0c             	push   0xc(%ebp)
405a84:	57                   	push   %edi
405a85:	ff 75 08             	push   0x8(%ebp)
405a88:	e8 c3 00 00 00       	call   0x405b50
405a8d:	83 c4 0c             	add    $0xc,%esp
405a90:	39 7d 10             	cmp    %edi,0x10(%ebp)
405a93:	74 b6                	je     0x405a4b
405a95:	39 75 0c             	cmp    %esi,0xc(%ebp)
405a98:	73 0e                	jae    0x405aa8
405a9a:	e8 5b 39 00 00       	call   0x4093fa
405a9f:	6a 22                	push   $0x22
405aa1:	59                   	pop    %ecx
405aa2:	89 08                	mov    %ecx,(%eax)
405aa4:	8b f1                	mov    %ecx,%esi
405aa6:	eb ad                	jmp    0x405a55
405aa8:	6a 16                	push   $0x16
405aaa:	58                   	pop    %eax
405aab:	5f                   	pop    %edi
405aac:	5e                   	pop    %esi
405aad:	5d                   	pop    %ebp
405aae:	c3                   	ret
405aaf:	55                   	push   %ebp
405ab0:	8b ec                	mov    %esp,%ebp
405ab2:	8b 45 14             	mov    0x14(%ebp),%eax
405ab5:	56                   	push   %esi
405ab6:	57                   	push   %edi
405ab7:	33 ff                	xor    %edi,%edi
405ab9:	3b c7                	cmp    %edi,%eax
405abb:	74 47                	je     0x405b04
405abd:	39 7d 08             	cmp    %edi,0x8(%ebp)
405ac0:	75 1b                	jne    0x405add
405ac2:	e8 33 39 00 00       	call   0x4093fa
405ac7:	6a 16                	push   $0x16
405ac9:	5e                   	pop    %esi
405aca:	89 30                	mov    %esi,(%eax)
405acc:	57                   	push   %edi
405acd:	57                   	push   %edi
405ace:	57                   	push   %edi
405acf:	57                   	push   %edi
405ad0:	57                   	push   %edi
405ad1:	e8 7a 1b 00 00       	call   0x407650
405ad6:	83 c4 14             	add    $0x14,%esp
405ad9:	8b c6                	mov    %esi,%eax
405adb:	eb 29                	jmp    0x405b06
405add:	39 7d 10             	cmp    %edi,0x10(%ebp)
405ae0:	74 e0                	je     0x405ac2
405ae2:	39 45 0c             	cmp    %eax,0xc(%ebp)
405ae5:	73 0e                	jae    0x405af5
405ae7:	e8 0e 39 00 00       	call   0x4093fa
405aec:	6a 22                	push   $0x22
405aee:	59                   	pop    %ecx
405aef:	89 08                	mov    %ecx,(%eax)
405af1:	8b f1                	mov    %ecx,%esi
405af3:	eb d7                	jmp    0x405acc
405af5:	50                   	push   %eax
405af6:	ff 75 10             	push   0x10(%ebp)
405af9:	ff 75 08             	push   0x8(%ebp)
405afc:	e8 1f 54 00 00       	call   0x40af20
405b01:	83 c4 0c             	add    $0xc,%esp
405b04:	33 c0                	xor    %eax,%eax
405b06:	5f                   	pop    %edi
405b07:	5e                   	pop    %esi
405b08:	5d                   	pop    %ebp
405b09:	c3                   	ret
405b0a:	55                   	push   %ebp
405b0b:	8b ec                	mov    %esp,%ebp
405b0d:	51                   	push   %ecx
405b0e:	51                   	push   %ecx
405b0f:	8d 45 f8             	lea    -0x8(%ebp),%eax
405b12:	50                   	push   %eax
405b13:	ff 15 a4 70 41 00    	call   *0x4170a4
405b19:	8b 45 f8             	mov    -0x8(%ebp),%eax
405b1c:	8b 4d fc             	mov    -0x4(%ebp),%ecx
405b1f:	6a 00                	push   $0x0
405b21:	05 00 80 c1 2a       	add    $0x2ac18000,%eax
405b26:	68 80 96 98 00       	push   $0x989680
405b2b:	81 d1 21 4e 62 fe    	adc    $0xfe624e21,%ecx
405b31:	51                   	push   %ecx
405b32:	50                   	push   %eax
405b33:	e8 58 57 00 00       	call   0x40b290
405b38:	8b 4d 08             	mov    0x8(%ebp),%ecx
405b3b:	85 c9                	test   %ecx,%ecx
405b3d:	74 05                	je     0x405b44
405b3f:	89 01                	mov    %eax,(%ecx)
405b41:	89 51 04             	mov    %edx,0x4(%ecx)
405b44:	c9                   	leave
405b45:	c3                   	ret
405b46:	cc                   	int3
405b47:	cc                   	int3
405b48:	cc                   	int3
405b49:	cc                   	int3
405b4a:	cc                   	int3
405b4b:	cc                   	int3
405b4c:	cc                   	int3
405b4d:	cc                   	int3
405b4e:	cc                   	int3
405b4f:	cc                   	int3
405b50:	8b 54 24 0c          	mov    0xc(%esp),%edx
405b54:	8b 4c 24 04          	mov    0x4(%esp),%ecx
405b58:	85 d2                	test   %edx,%edx
405b5a:	74 69                	je     0x405bc5
405b5c:	33 c0                	xor    %eax,%eax
405b5e:	8a 44 24 08          	mov    0x8(%esp),%al
405b62:	84 c0                	test   %al,%al
405b64:	75 16                	jne    0x405b7c
405b66:	81 fa 00 01 00 00    	cmp    $0x100,%edx
405b6c:	72 0e                	jb     0x405b7c
405b6e:	83 3d f8 e5 41 00 00 	cmpl   $0x0,0x41e5f8
405b75:	74 05                	je     0x405b7c
405b77:	e9 d3 57 00 00       	jmp    0x40b34f
405b7c:	57                   	push   %edi
405b7d:	8b f9                	mov    %ecx,%edi
405b7f:	83 fa 04             	cmp    $0x4,%edx
405b82:	72 31                	jb     0x405bb5
405b84:	f7 d9                	neg    %ecx
405b86:	83 e1 03             	and    $0x3,%ecx
405b89:	74 0c                	je     0x405b97
405b8b:	2b d1                	sub    %ecx,%edx
405b8d:	88 07                	mov    %al,(%edi)
405b8f:	83 c7 01             	add    $0x1,%edi
405b92:	83 e9 01             	sub    $0x1,%ecx
405b95:	75 f6                	jne    0x405b8d
405b97:	8b c8                	mov    %eax,%ecx
405b99:	c1 e0 08             	shl    $0x8,%eax
405b9c:	03 c1                	add    %ecx,%eax
405b9e:	8b c8                	mov    %eax,%ecx
405ba0:	c1 e0 10             	shl    $0x10,%eax
405ba3:	03 c1                	add    %ecx,%eax
405ba5:	8b ca                	mov    %edx,%ecx
405ba7:	83 e2 03             	and    $0x3,%edx
405baa:	c1 e9 02             	shr    $0x2,%ecx
405bad:	74 06                	je     0x405bb5
405baf:	f3 ab                	rep stos %eax,%es:(%edi)
405bb1:	85 d2                	test   %edx,%edx