4018d3:	03 d7                	add    %edi,%edx
4018d5:	89 4d f0             	mov    %ecx,-0x10(%ebp)
4018d8:	03 df                	add    %edi,%ebx
4018da:	33 c9                	xor    %ecx,%ecx
4018dc:	89 55 f4             	mov    %edx,-0xc(%ebp)
4018df:	89 45 f8             	mov    %eax,-0x8(%ebp)
4018e2:	85 c0                	test   %eax,%eax
4018e4:	74 2d                	je     0x401913
4018e6:	8b 14 8a             	mov    (%edx,%ecx,4),%edx
4018e9:	03 d7                	add    %edi,%edx
4018eb:	33 f6                	xor    %esi,%esi
4018ed:	eb 10                	jmp    0x4018ff
4018ef:	c1 ce 0d             	ror    $0xd,%esi
4018f2:	3c 61                	cmp    $0x61,%al
4018f4:	0f be c0             	movsbl %al,%eax
4018f7:	7c 03                	jl     0x4018fc
4018f9:	83 e8 20             	sub    $0x20,%eax
4018fc:	03 f0                	add    %eax,%esi
4018fe:	42                   	inc    %edx
4018ff:	8a 02                	mov    (%edx),%al
401901:	84 c0                	test   %al,%al
401903:	75 ea                	jne    0x4018ef
401905:	3b 75 fc             	cmp    -0x4(%ebp),%esi
401908:	74 10                	je     0x40191a
40190a:	8b 55 f4             	mov    -0xc(%ebp),%edx
40190d:	41                   	inc    %ecx
40190e:	3b 4d f8             	cmp    -0x8(%ebp),%ecx
401911:	72 d3                	jb     0x4018e6
401913:	33 c0                	xor    %eax,%eax
401915:	5f                   	pop    %edi
401916:	5e                   	pop    %esi
401917:	5b                   	pop    %ebx
401918:	c9                   	leave
401919:	c3                   	ret
40191a:	8b 45 f0             	mov    -0x10(%ebp),%eax
40191d:	0f b7 04 48          	movzwl (%eax,%ecx,2),%eax
401921:	8b 04 83             	mov    (%ebx,%eax,4),%eax
401924:	03 c7                	add    %edi,%eax
401926:	eb ed                	jmp    0x401915
401928:	55                   	push   %ebp
401929:	8b ec                	mov    %esp,%ebp
40192b:	83 e4 f8             	and    $0xfffffff8,%esp
40192e:	6a ff                	push   $0xffffffff
401930:	68 d6 7c 41 00       	push   $0x417cd6
401935:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40193b:	50                   	push   %eax
40193c:	83 ec 48             	sub    $0x48,%esp
40193f:	a1 90 08 42 00       	mov    0x420890,%eax
401944:	33 c4                	xor    %esp,%eax
401946:	89 44 24 40          	mov    %eax,0x40(%esp)
40194a:	53                   	push   %ebx
40194b:	56                   	push   %esi
40194c:	57                   	push   %edi
40194d:	a1 90 08 42 00       	mov    0x420890,%eax
401952:	33 c4                	xor    %esp,%eax
401954:	50                   	push   %eax
401955:	8d 44 24 58          	lea    0x58(%esp),%eax
401959:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40195f:	89 4c 24 14          	mov    %ecx,0x14(%esp)
401963:	68 74 d4 41 00       	push   $0x41d474
401968:	8d 4c 24 3c          	lea    0x3c(%esp),%ecx
40196c:	e8 fc f7 ff ff       	call   0x40116d
401971:	33 db                	xor    %ebx,%ebx
401973:	53                   	push   %ebx
401974:	53                   	push   %ebx
401975:	68 80 d4 41 00       	push   $0x41d480
40197a:	89 5c 24 6c          	mov    %ebx,0x6c(%esp)
40197e:	ff 15 00 90 41 00    	call   *0x419000
401984:	85 c0                	test   %eax,%eax
401986:	0f 84 bb 00 00 00    	je     0x401a47
40198c:	68 98 d4 41 00       	push   $0x41d498
401991:	8d 4c 24 24          	lea    0x24(%esp),%ecx
401995:	e8 d3 f7 ff ff       	call   0x40116d
40199a:	c6 44 24 60 01       	movb   $0x1,0x60(%esp)
40199f:	83 7c 24 34 10       	cmpl   $0x10,0x34(%esp)
4019a4:	53                   	push   %ebx
4019a5:	8d 44 24 24          	lea    0x24(%esp),%eax
4019a9:	0f 43 44 24 24       	cmovae 0x24(%esp),%eax
4019ae:	53                   	push   %ebx
4019af:	50                   	push   %eax
4019b0:	ff 15 10 90 41 00    	call   *0x419010
4019b6:	68 a8 d4 41 00       	push   $0x41d4a8
4019bb:	8b f0                	mov    %eax,%esi
4019bd:	e8 39 37 00 00       	call   0x4050fb
4019c2:	59                   	pop    %ecx
4019c3:	8b d0                	mov    %eax,%edx
4019c5:	8b ce                	mov    %esi,%ecx
4019c7:	e8 e2 fe ff ff       	call   0x4018ae
4019cc:	6a 0a                	push   $0xa
4019ce:	68 9b 08 00 00       	push   $0x89b
4019d3:	53                   	push   %ebx
4019d4:	89 44 24 24          	mov    %eax,0x24(%esp)
4019d8:	ff 15 3c 90 41 00    	call   *0x41903c
4019de:	8b f0                	mov    %eax,%esi
4019e0:	85 f6                	test   %esi,%esi
4019e2:	74 5a                	je     0x401a3e
4019e4:	56                   	push   %esi
4019e5:	53                   	push   %ebx
4019e6:	ff 15 28 90 41 00    	call   *0x419028
4019ec:	89 44 24 1c          	mov    %eax,0x1c(%esp)
4019f0:	85 c0                	test   %eax,%eax
4019f2:	74 4a                	je     0x401a3e
4019f4:	56                   	push   %esi
4019f5:	53                   	push   %ebx
4019f6:	ff 15 08 90 41 00    	call   *0x419008
4019fc:	8b 4c 24 48          	mov    0x48(%esp),%ecx
401a00:	53                   	push   %ebx
401a01:	c1 e1 03             	shl    $0x3,%ecx
401a04:	51                   	push   %ecx
401a05:	68 00 30 00 00       	push   $0x3000
401a0a:	8b f8                	mov    %eax,%edi
401a0c:	57                   	push   %edi
401a0d:	53                   	push   %ebx
401a0e:	ff 15 04 90 41 00    	call   *0x419004
401a14:	50                   	push   %eax
401a15:	ff 54 24 30          	call   *0x30(%esp)
401a19:	8b f0                	mov    %eax,%esi
401a1b:	85 f6                	test   %esi,%esi
401a1d:	74 1f                	je     0x401a3e
401a1f:	57                   	push   %edi
401a20:	ff 74 24 20          	push   0x20(%esp)
401a24:	56                   	push   %esi
401a25:	e8 76 3c 00 00       	call   0x4056a0
401a2a:	8b 4c 24 20          	mov    0x20(%esp),%ecx
401a2e:	83 c4 0c             	add    $0xc,%esp
401a31:	57                   	push   %edi
401a32:	56                   	push   %esi
401a33:	e8 27 fd ff ff       	call   0x40175f
401a38:	59                   	pop    %ecx
401a39:	59                   	pop    %ecx
401a3a:	ff d6                	call   *%esi
401a3c:	b3 01                	mov    $0x1,%bl
401a3e:	8d 4c 24 20          	lea    0x20(%esp),%ecx
401a42:	e8 55 f7 ff ff       	call   0x40119c
401a47:	8d 4c 24 38          	lea    0x38(%esp),%ecx
401a4b:	e8 4c f7 ff ff       	call   0x40119c
401a50:	8a c3                	mov    %bl,%al
401a52:	8b 4c 24 58          	mov    0x58(%esp),%ecx
401a56:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
401a5d:	59                   	pop    %ecx
401a5e:	5f                   	pop    %edi
401a5f:	5e                   	pop    %esi
401a60:	5b                   	pop    %ebx
401a61:	8b 4c 24 40          	mov    0x40(%esp),%ecx
401a65:	33 cc                	xor    %esp,%ecx
401a67:	e8 cd 2c 00 00       	call   0x404739
401a6c:	8b e5                	mov    %ebp,%esp
401a6e:	5d                   	pop    %ebp
401a6f:	c3                   	ret
401a70:	55                   	push   %ebp
401a71:	8b ec                	mov    %esp,%ebp
401a73:	83 ec 28             	sub    $0x28,%esp
401a76:	a1 90 08 42 00       	mov    0x420890,%eax
401a7b:	33 c5                	xor    %ebp,%eax
401a7d:	89 45 fc             	mov    %eax,-0x4(%ebp)
401a80:	53                   	push   %ebx
401a81:	56                   	push   %esi
401a82:	57                   	push   %edi
401a83:	ff 15 0c 90 41 00    	call   *0x41900c
401a89:	6a 20                	push   $0x20
401a8b:	e8 b8 34 00 00       	call   0x404f48
401a90:	8b d8                	mov    %eax,%ebx
401a92:	59                   	pop    %ecx
401a93:	85 db                	test   %ebx,%ebx
401a95:	74 0b                	je     0x401aa2
401a97:	6a 08                	push   $0x8
401a99:	59                   	pop    %ecx
401a9a:	33 c0                	xor    %eax,%eax
401a9c:	8b fb                	mov    %ebx,%edi
401a9e:	f3 ab                	rep stos %eax,%es:(%edi)
401aa0:	eb 02                	jmp    0x401aa4
401aa2:	33 db                	xor    %ebx,%ebx
401aa4:	6a 08                	push   $0x8
401aa6:	59                   	pop    %ecx
401aa7:	be b4 d4 41 00       	mov    $0x41d4b4,%esi
401aac:	8d 7d d8             	lea    -0x28(%ebp),%edi
401aaf:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
401ab1:	8d 4d d8             	lea    -0x28(%ebp),%ecx
401ab4:	66 a5                	movsw  %ds:(%esi),%es:(%edi)
401ab6:	e8 6d fe ff ff       	call   0x401928
401abb:	8b cb                	mov    %ebx,%ecx
401abd:	e8 09 06 00 00       	call   0x4020cb
401ac2:	8b cb                	mov    %ebx,%ecx
401ac4:	e8 99 06 00 00       	call   0x402162
401ac9:	8b 4d fc             	mov    -0x4(%ebp),%ecx
401acc:	5f                   	pop    %edi
401acd:	5e                   	pop    %esi
401ace:	33 cd                	xor    %ebp,%ecx
401ad0:	5b                   	pop    %ebx
401ad1:	e8 63 2c 00 00       	call   0x404739
401ad6:	c9                   	leave
401ad7:	c3                   	ret
401ad8:	e8 93 ff ff ff       	call   0x401a70
401add:	33 c0                	xor    %eax,%eax
401adf:	c3                   	ret
401ae0:	6a 18                	push   $0x18
401ae2:	b8 44 7d 41 00       	mov    $0x417d44,%eax
401ae7:	e8 76 43 00 00       	call   0x405e62
401aec:	8b f1                	mov    %ecx,%esi
401aee:	89 75 e8             	mov    %esi,-0x18(%ebp)
401af1:	56                   	push   %esi
401af2:	8d 4d dc             	lea    -0x24(%ebp),%ecx
401af5:	33 ff                	xor    %edi,%edi
401af7:	e8 7e 01 00 00       	call   0x401c7a
401afc:	89 7d fc             	mov    %edi,-0x4(%ebp)
401aff:	80 7d e0 00          	cmpb   $0x0,-0x20(%ebp)
401b03:	75 07                	jne    0x401b0c
401b05:	6a 04                	push   $0x4
401b07:	59                   	pop    %ecx
401b08:	8b d9                	mov    %ecx,%ebx
401b0a:	eb 5b                	jmp    0x401b67
401b0c:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
401b10:	8b 06                	mov    (%esi),%eax
401b12:	6a 0a                	push   $0xa
401b14:	8b 40 04             	mov    0x4(%eax),%eax
401b17:	8b 4c 30 38          	mov    0x38(%eax,%esi,1),%ecx
401b1b:	e8 1e 01 00 00       	call   0x401c3e
401b20:	6a 04                	push   $0x4
401b22:	8b df                	mov    %edi,%ebx
401b24:	59                   	pop    %ecx
401b25:	83 f8 ff             	cmp    $0xffffffff,%eax
401b28:	0f 44 d9             	cmove  %ecx,%ebx
401b2b:	eb 37                	jmp    0x401b64
401b2d:	8b 4d e8             	mov    -0x18(%ebp),%ecx
401b30:	6a 04                	push   $0x4
401b32:	8b 01                	mov    (%ecx),%eax
401b34:	8b 70 04             	mov    0x4(%eax),%esi
401b37:	03 f1                	add    %ecx,%esi
401b39:	59                   	pop    %ecx
401b3a:	8b 56 0c             	mov    0xc(%esi),%edx
401b3d:	0b d1                	or     %ecx,%edx
401b3f:	8b c2                	mov    %edx,%eax
401b41:	0b c1                	or     %ecx,%eax
401b43:	83 7e 38 00          	cmpl   $0x0,0x38(%esi)
401b47:	6a 01                	push   $0x1
401b49:	0f 44 d0             	cmove  %eax,%edx
401b4c:	52                   	push   %edx
401b4d:	8b ce                	mov    %esi,%ecx
401b4f:	e8 12 fb ff ff       	call   0x401666
401b54:	b8 5a 1b 40 00       	mov    $0x401b5a,%eax
401b59:	c3                   	ret
401b5a:	8b 75 e8             	mov    -0x18(%ebp),%esi
401b5d:	33 ff                	xor    %edi,%edi
401b5f:	6a 04                	push   $0x4
401b61:	59                   	pop    %ecx
401b62:	8b df                	mov    %edi,%ebx
401b64:	89 7d fc             	mov    %edi,-0x4(%ebp)
401b67:	8b 06                	mov    (%esi),%eax
401b69:	8b 40 04             	mov    0x4(%eax),%eax
401b6c:	03 c6                	add    %esi,%eax
401b6e:	89 45 e4             	mov    %eax,-0x1c(%ebp)
401b71:	85 db                	test   %ebx,%ebx
401b73:	74 19                	je     0x401b8e
401b75:	8b 50 0c             	mov    0xc(%eax),%edx
401b78:	0b d3                	or     %ebx,%edx
401b7a:	8b c2                	mov    %edx,%eax
401b7c:	0b c1                	or     %ecx,%eax
401b7e:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
401b81:	57                   	push   %edi
401b82:	39 79 38             	cmp    %edi,0x38(%ecx)
401b85:	0f 44 d0             	cmove  %eax,%edx
401b88:	52                   	push   %edx
401b89:	e8 d8 fa ff ff       	call   0x401666
401b8e:	8d 4d dc             	lea    -0x24(%ebp),%ecx
401b91:	e8 43 01 00 00       	call   0x401cd9
401b96:	8b c6                	mov    %esi,%eax
401b98:	e8 39 42 00 00       	call   0x405dd6
401b9d:	c2 04 00             	ret    $0x4
401ba0:	55                   	push   %ebp
401ba1:	8b ec                	mov    %esp,%ebp
401ba3:	83 e4 f8             	and    $0xfffffff8,%esp
401ba6:	6a ff                	push   $0xffffffff
401ba8:	68 21 7d 41 00       	push   $0x417d21
401bad:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
401bb3:	50                   	push   %eax
401bb4:	83 ec 10             	sub    $0x10,%esp
401bb7:	56                   	push   %esi
401bb8:	a1 90 08 42 00       	mov    0x420890,%eax
401bbd:	33 c4                	xor    %esp,%eax
401bbf:	50                   	push   %eax
401bc0:	8d 44 24 18          	lea    0x18(%esp),%eax
401bc4:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
401bca:	8b f1                	mov    %ecx,%esi
401bcc:	8b 06                	mov    (%esi),%eax
401bce:	8b 40 04             	mov    0x4(%eax),%eax
401bd1:	83 7c 30 38 00       	cmpl   $0x0,0x38(%eax,%esi,1)
401bd6:	74 53                	je     0x401c2b
401bd8:	56                   	push   %esi
401bd9:	8d 4c 24 10          	lea    0x10(%esp),%ecx
401bdd:	e8 98 00 00 00       	call   0x401c7a
401be2:	83 64 24 20 00       	andl   $0x0,0x20(%esp)
401be7:	80 7c 24 10 00       	cmpb   $0x0,0x10(%esp)
401bec:	74 34                	je     0x401c22
401bee:	8b 06                	mov    (%esi),%eax
401bf0:	8b 40 04             	mov    0x4(%eax),%eax
401bf3:	8b 4c 30 38          	mov    0x38(%eax,%esi,1),%ecx
401bf7:	8b 01                	mov    (%ecx),%eax
401bf9:	ff 50 34             	call   *0x34(%eax)
401bfc:	83 f8 ff             	cmp    $0xffffffff,%eax
401bff:	75 21                	jne    0x401c22
401c01:	8b 06                	mov    (%esi),%eax
401c03:	6a 00                	push   $0x0
401c05:	8b 48 04             	mov    0x4(%eax),%ecx
401c08:	03 ce                	add    %esi,%ecx
401c0a:	8b 51 0c             	mov    0xc(%ecx),%edx
401c0d:	83 ca 04             	or     $0x4,%edx
401c10:	8b c2                	mov    %edx,%eax
401c12:	83 c8 04             	or     $0x4,%eax
401c15:	83 79 38 00          	cmpl   $0x0,0x38(%ecx)
401c19:	0f 44 d0             	cmove  %eax,%edx
401c1c:	52                   	push   %edx
401c1d:	e8 44 fa ff ff       	call   0x401666
401c22:	8d 4c 24 0c          	lea    0xc(%esp),%ecx
401c26:	e8 ae 00 00 00       	call   0x401cd9
401c2b:	8b c6                	mov    %esi,%eax
401c2d:	8b 4c 24 18          	mov    0x18(%esp),%ecx
401c31:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
401c38:	59                   	pop    %ecx
401c39:	5e                   	pop    %esi
401c3a:	8b e5                	mov    %ebp,%esp
401c3c:	5d                   	pop    %ebp
401c3d:	c3                   	ret
401c3e:	55                   	push   %ebp
401c3f:	8b ec                	mov    %esp,%ebp
401c41:	8b 41 20             	mov    0x20(%ecx),%eax
401c44:	33 d2                	xor    %edx,%edx
401c46:	39 10                	cmp    %edx,(%eax)
401c48:	74 05                	je     0x401c4f
401c4a:	8b 41 30             	mov    0x30(%ecx),%eax
401c4d:	8b 10                	mov    (%eax),%edx
401c4f:	85 d2                	test   %edx,%edx
401c51:	7e 19                	jle    0x401c6c
401c53:	8b 41 30             	mov    0x30(%ecx),%eax
401c56:	ff 08                	decl   (%eax)
401c58:	8b 49 20             	mov    0x20(%ecx),%ecx
401c5b:	8b 11                	mov    (%ecx),%edx
401c5d:	8d 42 01             	lea    0x1(%edx),%eax
401c60:	89 01                	mov    %eax,(%ecx)
401c62:	8a 45 08             	mov    0x8(%ebp),%al
401c65:	88 02                	mov    %al,(%edx)
401c67:	0f b6 c0             	movzbl %al,%eax
401c6a:	eb 0a                	jmp    0x401c76
401c6c:	0f b6 45 08          	movzbl 0x8(%ebp),%eax
401c70:	8b 11                	mov    (%ecx),%edx
401c72:	50                   	push   %eax
401c73:	ff 52 0c             	call   *0xc(%edx)
401c76:	5d                   	pop    %ebp
401c77:	c2 04 00             	ret    $0x4
401c7a:	6a 04                	push   $0x4
401c7c:	b8 ab 7c 41 00       	mov    $0x417cab,%eax