4018f3:	8d 42 02             	lea    0x2(%edx),%eax
4018f6:	50                   	push   %eax
4018f7:	e8 74 dd 02 00       	call   0x42f670
4018fc:	83 c4 0c             	add    $0xc,%esp
4018ff:	8b 4d 08             	mov    0x8(%ebp),%ecx
401902:	85 f6                	test   %esi,%esi
401904:	0f 89 4b ff ff ff    	jns    0x401855
40190a:	e9 13 ff ff ff       	jmp    0x401822
40190f:	55                   	push   %ebp
401910:	8b ec                	mov    %esp,%ebp
401912:	51                   	push   %ecx
401913:	8b 45 20             	mov    0x20(%ebp),%eax
401916:	ba 57 00 07 80       	mov    $0x80070057,%edx
40191b:	53                   	push   %ebx
40191c:	8b 5d 08             	mov    0x8(%ebp),%ebx
40191f:	b9 ff ff ff 7f       	mov    $0x7fffffff,%ecx
401924:	56                   	push   %esi
401925:	33 f6                	xor    %esi,%esi
401927:	57                   	push   %edi
401928:	8b 7d 0c             	mov    0xc(%ebp),%edi
40192b:	a9 00 01 00 00       	test   $0x100,%eax
401930:	74 0a                	je     0x40193c
401932:	85 db                	test   %ebx,%ebx
401934:	75 0c                	jne    0x401942
401936:	85 ff                	test   %edi,%edi
401938:	75 0c                	jne    0x401946
40193a:	eb 06                	jmp    0x401942
40193c:	33 f6                	xor    %esi,%esi
40193e:	85 ff                	test   %edi,%edi
401940:	74 04                	je     0x401946
401942:	3b f9                	cmp    %ecx,%edi
401944:	76 02                	jbe    0x401948
401946:	8b f2                	mov    %edx,%esi
401948:	85 f6                	test   %esi,%esi
40194a:	0f 88 13 01 00 00    	js     0x401a63
401950:	50                   	push   %eax
401951:	51                   	push   %ecx
401952:	8d 45 14             	lea    0x14(%ebp),%eax
401955:	89 5d 08             	mov    %ebx,0x8(%ebp)
401958:	50                   	push   %eax
401959:	8b d7                	mov    %edi,%edx
40195b:	8d 45 10             	lea    0x10(%ebp),%eax
40195e:	50                   	push   %eax
40195f:	89 55 0c             	mov    %edx,0xc(%ebp)
401962:	89 55 fc             	mov    %edx,-0x4(%ebp)
401965:	e8 73 04 00 00       	call   0x401ddd
40196a:	8b f0                	mov    %eax,%esi
40196c:	85 f6                	test   %esi,%esi
40196e:	0f 88 9d 00 00 00    	js     0x401a11
401974:	f7 45 20 00 e0 ff ff 	testl  $0xffffe000,0x20(%ebp)
40197b:	74 17                	je     0x401994
40197d:	be 57 00 07 80       	mov    $0x80070057,%esi
401982:	8b cf                	mov    %edi,%ecx
401984:	85 ff                	test   %edi,%edi
401986:	0f 84 93 00 00 00    	je     0x401a1f
40198c:	c6 03 00             	movb   $0x0,(%ebx)
40198f:	e9 8b 00 00 00       	jmp    0x401a1f
401994:	85 ff                	test   %edi,%edi
401996:	75 21                	jne    0x4019b9
401998:	39 7d 14             	cmp    %edi,0x14(%ebp)
40199b:	74 7b                	je     0x401a18
40199d:	8b 45 10             	mov    0x10(%ebp),%eax
4019a0:	80 38 00             	cmpb   $0x0,(%eax)
4019a3:	74 73                	je     0x401a18
4019a5:	85 db                	test   %ebx,%ebx
4019a7:	75 09                	jne    0x4019b2
4019a9:	be 57 00 07 80       	mov    $0x80070057,%esi
4019ae:	8b cf                	mov    %edi,%ecx
4019b0:	eb 6d                	jmp    0x401a1f
4019b2:	be 7a 00 07 80       	mov    $0x8007007a,%esi
4019b7:	eb 5f                	jmp    0x401a18
4019b9:	ff 75 14             	push   0x14(%ebp)
4019bc:	83 65 0c 00          	andl   $0x0,0xc(%ebp)
4019c0:	8d 45 0c             	lea    0xc(%ebp),%eax
4019c3:	ff 75 10             	push   0x10(%ebp)
4019c6:	50                   	push   %eax
4019c7:	57                   	push   %edi
4019c8:	53                   	push   %ebx
4019c9:	e8 19 03 00 00       	call   0x401ce7
4019ce:	8b f0                	mov    %eax,%esi
4019d0:	8b 45 0c             	mov    0xc(%ebp),%eax
4019d3:	8d 0c 18             	lea    (%eax,%ebx,1),%ecx
4019d6:	89 4d 08             	mov    %ecx,0x8(%ebp)
4019d9:	8b cf                	mov    %edi,%ecx
4019db:	2b c8                	sub    %eax,%ecx
4019dd:	89 4d 0c             	mov    %ecx,0xc(%ebp)
4019e0:	89 4d fc             	mov    %ecx,-0x4(%ebp)
4019e3:	85 f6                	test   %esi,%esi
4019e5:	78 38                	js     0x401a1f
4019e7:	8b 4d 20             	mov    0x20(%ebp),%ecx
4019ea:	f7 c1 00 02 00 00    	test   $0x200,%ecx
4019f0:	74 26                	je     0x401a18
4019f2:	8b 55 0c             	mov    0xc(%ebp),%edx
4019f5:	83 fa 01             	cmp    $0x1,%edx
4019f8:	76 1e                	jbe    0x401a18
4019fa:	8d 42 ff             	lea    -0x1(%edx),%eax
4019fd:	50                   	push   %eax
4019fe:	0f b6 c1             	movzbl %cl,%eax
401a01:	50                   	push   %eax
401a02:	8b 45 08             	mov    0x8(%ebp),%eax
401a05:	40                   	inc    %eax
401a06:	50                   	push   %eax
401a07:	e8 64 dc 02 00       	call   0x42f670
401a0c:	83 c4 0c             	add    $0xc,%esp
401a0f:	eb 07                	jmp    0x401a18
401a11:	85 ff                	test   %edi,%edi
401a13:	74 03                	je     0x401a18
401a15:	c6 03 00             	movb   $0x0,(%ebx)
401a18:	8b 4d 0c             	mov    0xc(%ebp),%ecx
401a1b:	85 f6                	test   %esi,%esi
401a1d:	79 2f                	jns    0x401a4e
401a1f:	8b 45 20             	mov    0x20(%ebp),%eax
401a22:	a9 00 1c 00 00       	test   $0x1c00,%eax
401a27:	74 19                	je     0x401a42
401a29:	85 ff                	test   %edi,%edi
401a2b:	74 15                	je     0x401a42
401a2d:	50                   	push   %eax
401a2e:	8d 45 fc             	lea    -0x4(%ebp),%eax
401a31:	50                   	push   %eax
401a32:	8d 45 08             	lea    0x8(%ebp),%eax
401a35:	50                   	push   %eax
401a36:	6a 00                	push   $0x0
401a38:	57                   	push   %edi
401a39:	53                   	push   %ebx
401a3a:	e8 05 03 00 00       	call   0x401d44
401a3f:	8b 4d fc             	mov    -0x4(%ebp),%ecx
401a42:	85 f6                	test   %esi,%esi
401a44:	79 08                	jns    0x401a4e
401a46:	81 fe 7a 00 07 80    	cmp    $0x8007007a,%esi
401a4c:	75 15                	jne    0x401a63
401a4e:	8b 45 18             	mov    0x18(%ebp),%eax
401a51:	85 c0                	test   %eax,%eax
401a53:	74 05                	je     0x401a5a
401a55:	8b 55 08             	mov    0x8(%ebp),%edx
401a58:	89 10                	mov    %edx,(%eax)
401a5a:	8b 45 1c             	mov    0x1c(%ebp),%eax
401a5d:	85 c0                	test   %eax,%eax
401a5f:	74 02                	je     0x401a63
401a61:	89 08                	mov    %ecx,(%eax)
401a63:	5f                   	pop    %edi
401a64:	8b c6                	mov    %esi,%eax
401a66:	5e                   	pop    %esi
401a67:	5b                   	pop    %ebx
401a68:	8b e5                	mov    %ebp,%esp
401a6a:	5d                   	pop    %ebp
401a6b:	c2 1c 00             	ret    $0x1c
401a6e:	55                   	push   %ebp
401a6f:	8b ec                	mov    %esp,%ebp
401a71:	51                   	push   %ecx
401a72:	8b 45 20             	mov    0x20(%ebp),%eax
401a75:	33 c9                	xor    %ecx,%ecx
401a77:	ba 57 00 07 80       	mov    $0x80070057,%edx
401a7c:	53                   	push   %ebx
401a7d:	8b 5d 08             	mov    0x8(%ebp),%ebx
401a80:	56                   	push   %esi
401a81:	8b f1                	mov    %ecx,%esi
401a83:	b9 ff ff ff 7f       	mov    $0x7fffffff,%ecx
401a88:	57                   	push   %edi
401a89:	8b 7d 0c             	mov    0xc(%ebp),%edi
401a8c:	a9 00 01 00 00       	test   $0x100,%eax
401a91:	74 0a                	je     0x401a9d
401a93:	85 db                	test   %ebx,%ebx
401a95:	75 0a                	jne    0x401aa1
401a97:	85 ff                	test   %edi,%edi
401a99:	75 0a                	jne    0x401aa5
401a9b:	eb 04                	jmp    0x401aa1
401a9d:	85 ff                	test   %edi,%edi
401a9f:	74 04                	je     0x401aa5
401aa1:	3b f9                	cmp    %ecx,%edi
401aa3:	76 02                	jbe    0x401aa7
401aa5:	8b f2                	mov    %edx,%esi
401aa7:	85 f6                	test   %esi,%esi
401aa9:	0f 88 30 01 00 00    	js     0x401bdf
401aaf:	50                   	push   %eax
401ab0:	51                   	push   %ecx
401ab1:	8d 45 14             	lea    0x14(%ebp),%eax
401ab4:	89 5d 08             	mov    %ebx,0x8(%ebp)
401ab7:	50                   	push   %eax
401ab8:	8b d7                	mov    %edi,%edx
401aba:	8d 45 10             	lea    0x10(%ebp),%eax
401abd:	50                   	push   %eax
401abe:	89 55 0c             	mov    %edx,0xc(%ebp)
401ac1:	89 55 fc             	mov    %edx,-0x4(%ebp)
401ac4:	e8 50 03 00 00       	call   0x401e19
401ac9:	8b f0                	mov    %eax,%esi
401acb:	85 f6                	test   %esi,%esi
401acd:	0f 88 b4 00 00 00    	js     0x401b87
401ad3:	f7 45 20 00 e0 ff ff 	testl  $0xffffe000,0x20(%ebp)
401ada:	74 19                	je     0x401af5
401adc:	be 57 00 07 80       	mov    $0x80070057,%esi
401ae1:	8b cf                	mov    %edi,%ecx
401ae3:	85 ff                	test   %edi,%edi
401ae5:	0f 84 ac 00 00 00    	je     0x401b97
401aeb:	33 c0                	xor    %eax,%eax
401aed:	66 89 03             	mov    %ax,(%ebx)
401af0:	e9 a2 00 00 00       	jmp    0x401b97
401af5:	85 ff                	test   %edi,%edi
401af7:	75 2b                	jne    0x401b24
401af9:	39 7d 14             	cmp    %edi,0x14(%ebp)
401afc:	0f 84 8e 00 00 00    	je     0x401b90
401b02:	8b 45 10             	mov    0x10(%ebp),%eax
401b05:	33 c9                	xor    %ecx,%ecx
401b07:	66 39 08             	cmp    %cx,(%eax)
401b0a:	0f 84 80 00 00 00    	je     0x401b90
401b10:	85 db                	test   %ebx,%ebx
401b12:	75 09                	jne    0x401b1d
401b14:	be 57 00 07 80       	mov    $0x80070057,%esi
401b19:	8b cf                	mov    %edi,%ecx
401b1b:	eb 7a                	jmp    0x401b97
401b1d:	be 7a 00 07 80       	mov    $0x8007007a,%esi
401b22:	eb 6c                	jmp    0x401b90
401b24:	ff 75 14             	push   0x14(%ebp)
401b27:	8d 45 0c             	lea    0xc(%ebp),%eax
401b2a:	33 c9                	xor    %ecx,%ecx
401b2c:	ff 75 10             	push   0x10(%ebp)
401b2f:	89 4d 0c             	mov    %ecx,0xc(%ebp)
401b32:	50                   	push   %eax
401b33:	57                   	push   %edi
401b34:	53                   	push   %ebx
401b35:	e8 74 df 01 00       	call   0x41faae
401b3a:	8b f0                	mov    %eax,%esi
401b3c:	8b 45 0c             	mov    0xc(%ebp),%eax
401b3f:	8d 0c 43             	lea    (%ebx,%eax,2),%ecx
401b42:	89 4d 08             	mov    %ecx,0x8(%ebp)
401b45:	8b cf                	mov    %edi,%ecx
401b47:	2b c8                	sub    %eax,%ecx
401b49:	89 4d 0c             	mov    %ecx,0xc(%ebp)
401b4c:	89 4d fc             	mov    %ecx,-0x4(%ebp)
401b4f:	85 f6                	test   %esi,%esi
401b51:	78 44                	js     0x401b97
401b53:	8b 4d 20             	mov    0x20(%ebp),%ecx
401b56:	f7 c1 00 02 00 00    	test   $0x200,%ecx
401b5c:	74 32                	je     0x401b90
401b5e:	8b 55 0c             	mov    0xc(%ebp),%edx
401b61:	83 fa 01             	cmp    $0x1,%edx
401b64:	76 2a                	jbe    0x401b90
401b66:	8d 04 12             	lea    (%edx,%edx,1),%eax
401b69:	83 f8 02             	cmp    $0x2,%eax
401b6c:	76 22                	jbe    0x401b90
401b6e:	83 c0 fe             	add    $0xfffffffe,%eax
401b71:	50                   	push   %eax
401b72:	0f b6 c1             	movzbl %cl,%eax
401b75:	50                   	push   %eax
401b76:	8b 45 08             	mov    0x8(%ebp),%eax
401b79:	83 c0 02             	add    $0x2,%eax
401b7c:	50                   	push   %eax
401b7d:	e8 ee da 02 00       	call   0x42f670
401b82:	83 c4 0c             	add    $0xc,%esp
401b85:	eb 09                	jmp    0x401b90
401b87:	85 ff                	test   %edi,%edi
401b89:	74 05                	je     0x401b90
401b8b:	33 c0                	xor    %eax,%eax
401b8d:	66 89 03             	mov    %ax,(%ebx)
401b90:	8b 4d 0c             	mov    0xc(%ebp),%ecx
401b93:	85 f6                	test   %esi,%esi
401b95:	79 33                	jns    0x401bca
401b97:	8b 45 20             	mov    0x20(%ebp),%eax
401b9a:	a9 00 1c 00 00       	test   $0x1c00,%eax
401b9f:	74 1d                	je     0x401bbe
401ba1:	85 ff                	test   %edi,%edi
401ba3:	74 19                	je     0x401bbe
401ba5:	50                   	push   %eax
401ba6:	8d 45 fc             	lea    -0x4(%ebp),%eax
401ba9:	50                   	push   %eax
401baa:	8d 45 08             	lea    0x8(%ebp),%eax
401bad:	50                   	push   %eax
401bae:	33 c0                	xor    %eax,%eax
401bb0:	50                   	push   %eax
401bb1:	8d 04 3f             	lea    (%edi,%edi,1),%eax
401bb4:	50                   	push   %eax
401bb5:	53                   	push   %ebx
401bb6:	e8 50 df 01 00       	call   0x41fb0b
401bbb:	8b 4d fc             	mov    -0x4(%ebp),%ecx
401bbe:	85 f6                	test   %esi,%esi
401bc0:	79 08                	jns    0x401bca
401bc2:	81 fe 7a 00 07 80    	cmp    $0x8007007a,%esi
401bc8:	75 15                	jne    0x401bdf
401bca:	8b 45 18             	mov    0x18(%ebp),%eax
401bcd:	85 c0                	test   %eax,%eax
401bcf:	74 05                	je     0x401bd6
401bd1:	8b 55 08             	mov    0x8(%ebp),%edx
401bd4:	89 10                	mov    %edx,(%eax)
401bd6:	8b 45 1c             	mov    0x1c(%ebp),%eax
401bd9:	85 c0                	test   %eax,%eax
401bdb:	74 02                	je     0x401bdf
401bdd:	89 08                	mov    %ecx,(%eax)
401bdf:	5f                   	pop    %edi
401be0:	8b c6                	mov    %esi,%eax
401be2:	5e                   	pop    %esi
401be3:	5b                   	pop    %ebx
401be4:	8b e5                	mov    %ebp,%esp
401be6:	5d                   	pop    %ebp
401be7:	c2 1c 00             	ret    $0x1c
401bea:	55                   	push   %ebp
401beb:	8b ec                	mov    %esp,%ebp
401bed:	8b 4d 0c             	mov    0xc(%ebp),%ecx
401bf0:	33 c0                	xor    %eax,%eax
401bf2:	85 c9                	test   %ecx,%ecx
401bf4:	74 08                	je     0x401bfe
401bf6:	81 f9 ff ff ff 7f    	cmp    $0x7fffffff,%ecx
401bfc:	76 05                	jbe    0x401c03
401bfe:	b8 57 00 07 80       	mov    $0x80070057,%eax
401c03:	85 c0                	test   %eax,%eax
401c05:	78 13                	js     0x401c1a
401c07:	68 fe ff ff 7f       	push   $0x7ffffffe
401c0c:	ff 75 10             	push   0x10(%ebp)
401c0f:	6a 00                	push   $0x0
401c11:	51                   	push   %ecx
401c12:	ff 75 08             	push   0x8(%ebp)
401c15:	e8 94 de 01 00       	call   0x41faae
401c1a:	5d                   	pop    %ebp
401c1b:	c2 0c 00             	ret    $0xc
401c1e:	55                   	push   %ebp
401c1f:	8b ec                	mov    %esp,%ebp
401c21:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
401c25:	56                   	push   %esi
401c26:	8b 75 10             	mov    0x10(%ebp),%esi
401c29:	74 17                	je     0x401c42
401c2b:	81 7d 0c ff ff ff 7f 	cmpl   $0x7fffffff,0xc(%ebp)
401c32:	77 0e                	ja     0x401c42
401c34:	56                   	push   %esi
401c35:	ff 75 0c             	push   0xc(%ebp)
401c38:	ff 75 08             	push   0x8(%ebp)
401c3b:	e8 15 02 00 00       	call   0x401e55
401c40:	eb 05                	jmp    0x401c47
401c42:	b8 57 00 07 80       	mov    $0x80070057,%eax
401c47:	85 c0                	test   %eax,%eax
401c49:	79 07                	jns    0x401c52
401c4b:	85 f6                	test   %esi,%esi
401c4d:	74 03                	je     0x401c52
401c4f:	83 26 00             	andl   $0x0,(%esi)
401c52:	5e                   	pop    %esi
401c53:	5d                   	pop    %ebp
401c54:	c2 0c 00             	ret    $0xc
401c57:	55                   	push   %ebp
401c58:	8b ec                	mov    %esp,%ebp
401c5a:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
401c5e:	56                   	push   %esi
401c5f:	8b 75 10             	mov    0x10(%ebp),%esi
401c62:	74 17                	je     0x401c7b
401c64:	81 7d 0c ff ff ff 7f 	cmpl   $0x7fffffff,0xc(%ebp)
401c6b:	77 0e                	ja     0x401c7b
401c6d:	56                   	push   %esi
401c6e:	ff 75 0c             	push   0xc(%ebp)
401c71:	ff 75 08             	push   0x8(%ebp)
401c74:	e8 1e 02 00 00       	call   0x401e97
401c79:	eb 05                	jmp    0x401c80
401c7b:	b8 57 00 07 80       	mov    $0x80070057,%eax
401c80:	85 c0                	test   %eax,%eax
401c82:	79 07                	jns    0x401c8b