421ccc:	66 39 31             	cmp    %si,(%ecx)
421ccf:	74 0a                	je     0x421cdb
421cd1:	83 c1 02             	add    $0x2,%ecx
421cd4:	83 ef 01             	sub    $0x1,%edi
421cd7:	75 f3                	jne    0x421ccc
421cd9:	eb d2                	jmp    0x421cad
421cdb:	2b d9                	sub    %ecx,%ebx
421cdd:	0f b7 04 0b          	movzwl (%ebx,%ecx,1),%eax
421ce1:	66 89 01             	mov    %ax,(%ecx)
421ce4:	8d 49 02             	lea    0x2(%ecx),%ecx
421ce7:	66 85 c0             	test   %ax,%ax
421cea:	74 d5                	je     0x421cc1
421cec:	83 ef 01             	sub    $0x1,%edi
421cef:	75 ec                	jne    0x421cdd
421cf1:	33 c0                	xor    %eax,%eax
421cf3:	66 89 02             	mov    %ax,(%edx)
421cf6:	e8 76 a9 ff ff       	call   0x41c671
421cfb:	6a 22                	push   $0x22
421cfd:	eb ba                	jmp    0x421cb9
421cff:	8b ff                	mov    %edi,%edi
421d01:	55                   	push   %ebp
421d02:	8b ec                	mov    %esp,%ebp
421d04:	51                   	push   %ecx
421d05:	8b 4d 08             	mov    0x8(%ebp),%ecx
421d08:	53                   	push   %ebx
421d09:	8b 5d 10             	mov    0x10(%ebp),%ebx
421d0c:	56                   	push   %esi
421d0d:	8b 75 14             	mov    0x14(%ebp),%esi
421d10:	57                   	push   %edi
421d11:	85 f6                	test   %esi,%esi
421d13:	75 1f                	jne    0x421d34
421d15:	85 c9                	test   %ecx,%ecx
421d17:	75 1f                	jne    0x421d38
421d19:	39 75 0c             	cmp    %esi,0xc(%ebp)
421d1c:	74 2a                	je     0x421d48
421d1e:	e8 4e a9 ff ff       	call   0x41c671
421d23:	6a 16                	push   $0x16
421d25:	5e                   	pop    %esi
421d26:	89 30                	mov    %esi,(%eax)
421d28:	e8 c1 b6 fe ff       	call   0x40d3ee
421d2d:	8b c6                	mov    %esi,%eax
421d2f:	5f                   	pop    %edi
421d30:	5e                   	pop    %esi
421d31:	5b                   	pop    %ebx
421d32:	c9                   	leave
421d33:	c3                   	ret
421d34:	85 c9                	test   %ecx,%ecx
421d36:	74 e6                	je     0x421d1e
421d38:	8b 45 0c             	mov    0xc(%ebp),%eax
421d3b:	85 c0                	test   %eax,%eax
421d3d:	74 df                	je     0x421d1e
421d3f:	85 f6                	test   %esi,%esi
421d41:	75 09                	jne    0x421d4c
421d43:	33 c0                	xor    %eax,%eax
421d45:	66 89 01             	mov    %ax,(%ecx)
421d48:	33 c0                	xor    %eax,%eax
421d4a:	eb e3                	jmp    0x421d2f
421d4c:	85 db                	test   %ebx,%ebx
421d4e:	75 07                	jne    0x421d57
421d50:	33 c0                	xor    %eax,%eax
421d52:	66 89 01             	mov    %ax,(%ecx)
421d55:	eb c7                	jmp    0x421d1e
421d57:	2b d9                	sub    %ecx,%ebx
421d59:	89 75 fc             	mov    %esi,-0x4(%ebp)
421d5c:	8b d1                	mov    %ecx,%edx
421d5e:	8b f8                	mov    %eax,%edi
421d60:	83 fe ff             	cmp    $0xffffffff,%esi
421d63:	75 16                	jne    0x421d7b
421d65:	0f b7 04 13          	movzwl (%ebx,%edx,1),%eax
421d69:	66 89 02             	mov    %ax,(%edx)
421d6c:	8d 52 02             	lea    0x2(%edx),%edx
421d6f:	66 85 c0             	test   %ax,%ax
421d72:	74 d4                	je     0x421d48
421d74:	83 ef 01             	sub    $0x1,%edi
421d77:	75 ec                	jne    0x421d65
421d79:	eb 26                	jmp    0x421da1
421d7b:	0f b7 04 13          	movzwl (%ebx,%edx,1),%eax
421d7f:	66 89 02             	mov    %ax,(%edx)
421d82:	8d 52 02             	lea    0x2(%edx),%edx
421d85:	66 85 c0             	test   %ax,%ax
421d88:	74 be                	je     0x421d48
421d8a:	8b 45 fc             	mov    -0x4(%ebp),%eax
421d8d:	83 ef 01             	sub    $0x1,%edi
421d90:	74 08                	je     0x421d9a
421d92:	83 e8 01             	sub    $0x1,%eax
421d95:	89 45 fc             	mov    %eax,-0x4(%ebp)
421d98:	75 e1                	jne    0x421d7b
421d9a:	85 c0                	test   %eax,%eax
421d9c:	75 03                	jne    0x421da1
421d9e:	66 89 02             	mov    %ax,(%edx)
421da1:	85 ff                	test   %edi,%edi
421da3:	75 a3                	jne    0x421d48
421da5:	83 fe ff             	cmp    $0xffffffff,%esi
421da8:	75 12                	jne    0x421dbc
421daa:	8b 45 0c             	mov    0xc(%ebp),%eax
421dad:	33 d2                	xor    %edx,%edx
421daf:	6a 50                	push   $0x50
421db1:	66 89 54 41 fe       	mov    %dx,-0x2(%ecx,%eax,2)
421db6:	58                   	pop    %eax
421db7:	e9 73 ff ff ff       	jmp    0x421d2f
421dbc:	33 c0                	xor    %eax,%eax
421dbe:	66 89 01             	mov    %ax,(%ecx)
421dc1:	e8 ab a8 ff ff       	call   0x41c671
421dc6:	6a 22                	push   $0x22
421dc8:	e9 58 ff ff ff       	jmp    0x421d25
421dcd:	8b ff                	mov    %edi,%edi
421dcf:	55                   	push   %ebp
421dd0:	8b ec                	mov    %esp,%ebp
421dd2:	5d                   	pop    %ebp
421dd3:	e9 27 ff ff ff       	jmp    0x421cff
421dd8:	8b ff                	mov    %edi,%edi
421dda:	55                   	push   %ebp
421ddb:	8b ec                	mov    %esp,%ebp
421ddd:	8b 45 0c             	mov    0xc(%ebp),%eax
421de0:	3b 45 08             	cmp    0x8(%ebp),%eax
421de3:	76 05                	jbe    0x421dea
421de5:	83 c8 ff             	or     $0xffffffff,%eax
421de8:	5d                   	pop    %ebp
421de9:	c3                   	ret
421dea:	1b c0                	sbb    %eax,%eax
421dec:	f7 d8                	neg    %eax
421dee:	5d                   	pop    %ebp
421def:	c3                   	ret
421df0:	8b ff                	mov    %edi,%edi
421df2:	55                   	push   %ebp
421df3:	8b ec                	mov    %esp,%ebp
421df5:	53                   	push   %ebx
421df6:	56                   	push   %esi
421df7:	8b 75 08             	mov    0x8(%ebp),%esi
421dfa:	85 f6                	test   %esi,%esi
421dfc:	75 1c                	jne    0x421e1a
421dfe:	8b 75 0c             	mov    0xc(%ebp),%esi
421e01:	8b ce                	mov    %esi,%ecx
421e03:	e8 ff 67 ff ff       	call   0x418607
421e08:	33 db                	xor    %ebx,%ebx
421e0a:	89 5e 08             	mov    %ebx,0x8(%esi)
421e0d:	89 5e 0c             	mov    %ebx,0xc(%esi)
421e10:	89 5e 10             	mov    %ebx,0x10(%esi)
421e13:	33 c0                	xor    %eax,%eax
421e15:	e9 98 00 00 00       	jmp    0x421eb2
421e1a:	33 db                	xor    %ebx,%ebx
421e1c:	66 39 1e             	cmp    %bx,(%esi)
421e1f:	75 1c                	jne    0x421e3d
421e21:	8b 75 0c             	mov    0xc(%ebp),%esi
421e24:	39 5e 0c             	cmp    %ebx,0xc(%esi)
421e27:	75 0d                	jne    0x421e36
421e29:	6a 01                	push   $0x1
421e2b:	8b ce                	mov    %esi,%ecx
421e2d:	e8 5c 05 00 00       	call   0x42238e
421e32:	85 c0                	test   %eax,%eax
421e34:	75 7c                	jne    0x421eb2
421e36:	8b 46 08             	mov    0x8(%esi),%eax
421e39:	88 18                	mov    %bl,(%eax)
421e3b:	eb d3                	jmp    0x421e10
421e3d:	53                   	push   %ebx
421e3e:	53                   	push   %ebx
421e3f:	53                   	push   %ebx
421e40:	53                   	push   %ebx
421e41:	6a ff                	push   $0xffffffff
421e43:	56                   	push   %esi
421e44:	53                   	push   %ebx
421e45:	ff 75 14             	push   0x14(%ebp)
421e48:	e8 9d 0f 00 00       	call   0x422dea
421e4d:	83 c4 20             	add    $0x20,%esp
421e50:	85 c0                	test   %eax,%eax
421e52:	75 16                	jne    0x421e6a
421e54:	ff 15 08 11 43 00    	call   *0x431108
421e5a:	50                   	push   %eax
421e5b:	e8 b7 a7 ff ff       	call   0x41c617
421e60:	59                   	pop    %ecx
421e61:	e8 0b a8 ff ff       	call   0x41c671
421e66:	8b 00                	mov    (%eax),%eax
421e68:	eb 48                	jmp    0x421eb2
421e6a:	57                   	push   %edi
421e6b:	8b 7d 0c             	mov    0xc(%ebp),%edi
421e6e:	3b 47 0c             	cmp    0xc(%edi),%eax
421e71:	76 0c                	jbe    0x421e7f
421e73:	50                   	push   %eax
421e74:	8b cf                	mov    %edi,%ecx
421e76:	e8 13 05 00 00       	call   0x42238e
421e7b:	85 c0                	test   %eax,%eax
421e7d:	75 32                	jne    0x421eb1
421e7f:	ff 77 0c             	push   0xc(%edi)
421e82:	8b 4d 10             	mov    0x10(%ebp),%ecx
421e85:	ff 77 08             	push   0x8(%edi)
421e88:	56                   	push   %esi
421e89:	ff 75 14             	push   0x14(%ebp)
421e8c:	e8 d2 e7 ff ff       	call   0x420663
421e91:	85 c0                	test   %eax,%eax
421e93:	75 16                	jne    0x421eab
421e95:	ff 15 08 11 43 00    	call   *0x431108
421e9b:	50                   	push   %eax
421e9c:	e8 76 a7 ff ff       	call   0x41c617
421ea1:	59                   	pop    %ecx
421ea2:	e8 ca a7 ff ff       	call   0x41c671
421ea7:	8b 00                	mov    (%eax),%eax
421ea9:	eb 06                	jmp    0x421eb1
421eab:	48                   	dec    %eax
421eac:	89 47 10             	mov    %eax,0x10(%edi)
421eaf:	33 c0                	xor    %eax,%eax
421eb1:	5f                   	pop    %edi
421eb2:	5e                   	pop    %esi
421eb3:	5b                   	pop    %ebx
421eb4:	5d                   	pop    %ebp
421eb5:	c3                   	ret
421eb6:	8b ff                	mov    %edi,%edi
421eb8:	55                   	push   %ebp
421eb9:	8b ec                	mov    %esp,%ebp
421ebb:	8b 45 0c             	mov    0xc(%ebp),%eax
421ebe:	83 ec 20             	sub    $0x20,%esp
421ec1:	56                   	push   %esi
421ec2:	85 c0                	test   %eax,%eax
421ec4:	75 16                	jne    0x421edc
421ec6:	e8 a6 a7 ff ff       	call   0x41c671
421ecb:	6a 16                	push   $0x16
421ecd:	5e                   	pop    %esi
421ece:	89 30                	mov    %esi,(%eax)
421ed0:	e8 19 b5 fe ff       	call   0x40d3ee
421ed5:	8b c6                	mov    %esi,%eax
421ed7:	e9 47 01 00 00       	jmp    0x422023
421edc:	83 20 00             	andl   $0x0,(%eax)
421edf:	33 c9                	xor    %ecx,%ecx
421ee1:	21 4d e8             	and    %ecx,-0x18(%ebp)
421ee4:	53                   	push   %ebx
421ee5:	8b 5d 08             	mov    0x8(%ebp),%ebx
421ee8:	57                   	push   %edi
421ee9:	33 ff                	xor    %edi,%edi
421eeb:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
421eee:	89 7d e0             	mov    %edi,-0x20(%ebp)
421ef1:	8b 03                	mov    (%ebx),%eax
421ef3:	85 c0                	test   %eax,%eax
421ef5:	74 56                	je     0x421f4d
421ef7:	8d 4d fc             	lea    -0x4(%ebp),%ecx
421efa:	66 c7 45 fc 2a 3f    	movw   $0x3f2a,-0x4(%ebp)
421f00:	51                   	push   %ecx
421f01:	50                   	push   %eax
421f02:	c6 45 fe 00          	movb   $0x0,-0x2(%ebp)
421f06:	e8 75 88 00 00       	call   0x42a780
421f0b:	59                   	pop    %ecx
421f0c:	59                   	pop    %ecx
421f0d:	85 c0                	test   %eax,%eax
421f0f:	75 1a                	jne    0x421f2b
421f11:	8d 45 e0             	lea    -0x20(%ebp),%eax
421f14:	50                   	push   %eax
421f15:	33 c0                	xor    %eax,%eax
421f17:	50                   	push   %eax
421f18:	50                   	push   %eax
421f19:	ff 33                	push   (%ebx)
421f1b:	e8 13 01 00 00       	call   0x422033
421f20:	8b f0                	mov    %eax,%esi
421f22:	83 c4 10             	add    $0x10,%esp
421f25:	85 f6                	test   %esi,%esi
421f27:	75 74                	jne    0x421f9d
421f29:	eb 13                	jmp    0x421f3e
421f2b:	8d 4d e0             	lea    -0x20(%ebp),%ecx
421f2e:	51                   	push   %ecx
421f2f:	50                   	push   %eax
421f30:	ff 33                	push   (%ebx)
421f32:	e8 ad 01 00 00       	call   0x4220e4
421f37:	83 c4 0c             	add    $0xc,%esp
421f3a:	85 c0                	test   %eax,%eax
421f3c:	75 1d                	jne    0x421f5b
421f3e:	83 c3 04             	add    $0x4,%ebx
421f41:	8b 03                	mov    (%ebx),%eax
421f43:	85 c0                	test   %eax,%eax
421f45:	75 b0                	jne    0x421ef7
421f47:	8b 7d e0             	mov    -0x20(%ebp),%edi
421f4a:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
421f4d:	8b d9                	mov    %ecx,%ebx
421f4f:	8b f7                	mov    %edi,%esi
421f51:	2b df                	sub    %edi,%ebx
421f53:	c1 fb 02             	sar    $0x2,%ebx
421f56:	43                   	inc    %ebx
421f57:	33 c0                	xor    %eax,%eax
421f59:	eb 1f                	jmp    0x421f7a
421f5b:	8b f0                	mov    %eax,%esi
421f5d:	eb 3e                	jmp    0x421f9d
421f5f:	8b 16                	mov    (%esi),%edx
421f61:	8d 42 01             	lea    0x1(%edx),%eax
421f64:	89 45 f4             	mov    %eax,-0xc(%ebp)
421f67:	8a 02                	mov    (%edx),%al
421f69:	42                   	inc    %edx
421f6a:	84 c0                	test   %al,%al
421f6c:	75 f9                	jne    0x421f67
421f6e:	8b 45 f8             	mov    -0x8(%ebp),%eax
421f71:	2b 55 f4             	sub    -0xc(%ebp),%edx
421f74:	40                   	inc    %eax
421f75:	03 c2                	add    %edx,%eax
421f77:	83 c6 04             	add    $0x4,%esi
421f7a:	89 45 f8             	mov    %eax,-0x8(%ebp)
421f7d:	3b f1                	cmp    %ecx,%esi
421f7f:	75 de                	jne    0x421f5f
421f81:	6a 01                	push   $0x1
421f83:	50                   	push   %eax
421f84:	53                   	push   %ebx
421f85:	e8 04 79 ff ff       	call   0x41988e
421f8a:	8b f0                	mov    %eax,%esi
421f8c:	83 c4 0c             	add    $0xc,%esp
421f8f:	85 f6                	test   %esi,%esi
421f91:	75 16                	jne    0x421fa9
421f93:	50                   	push   %eax
421f94:	e8 77 4c fe ff       	call   0x406c10
421f99:	59                   	pop    %ecx
421f9a:	83 ce ff             	or     $0xffffffff,%esi
421f9d:	8d 4d e0             	lea    -0x20(%ebp),%ecx
421fa0:	e8 c4 03 00 00       	call   0x422369
421fa5:	8b c6                	mov    %esi,%eax
421fa7:	eb 78                	jmp    0x422021
421fa9:	8d 04 9e             	lea    (%esi,%ebx,4),%eax
421fac:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
421faf:	89 45 f0             	mov    %eax,-0x10(%ebp)
421fb2:	8b d0                	mov    %eax,%edx
421fb4:	89 55 fc             	mov    %edx,-0x4(%ebp)
421fb7:	3b fb                	cmp    %ebx,%edi
421fb9:	74 4e                	je     0x422009
421fbb:	8b c6                	mov    %esi,%eax
421fbd:	2b c7                	sub    %edi,%eax
421fbf:	89 45 ec             	mov    %eax,-0x14(%ebp)
421fc2:	8b 0f                	mov    (%edi),%ecx
421fc4:	8d 41 01             	lea    0x1(%ecx),%eax
421fc7:	89 45 f4             	mov    %eax,-0xc(%ebp)
421fca:	8a 01                	mov    (%ecx),%al
421fcc:	41                   	inc    %ecx
421fcd:	84 c0                	test   %al,%al
421fcf:	75 f9                	jne    0x421fca
421fd1:	2b 4d f4             	sub    -0xc(%ebp),%ecx
421fd4:	8d 41 01             	lea    0x1(%ecx),%eax
421fd7:	50                   	push   %eax
421fd8:	ff 37                	push   (%edi)
421fda:	89 45 f4             	mov    %eax,-0xc(%ebp)
421fdd:	8b 45 f0             	mov    -0x10(%ebp),%eax
421fe0:	2b c2                	sub    %edx,%eax
421fe2:	03 45 f8             	add    -0x8(%ebp),%eax
421fe5:	50                   	push   %eax
421fe6:	52                   	push   %edx
421fe7:	e8 89 87 00 00       	call   0x42a775
421fec:	83 c4 10             	add    $0x10,%esp
421fef:	85 c0                	test   %eax,%eax
421ff1:	75 33                	jne    0x422026
421ff3:	8b 45 ec             	mov    -0x14(%ebp),%eax
421ff6:	8b 55 fc             	mov    -0x4(%ebp),%edx
421ff9:	89 14 38             	mov    %edx,(%eax,%edi,1)
421ffc:	83 c7 04             	add    $0x4,%edi
421fff:	03 55 f4             	add    -0xc(%ebp),%edx
422002:	89 55 fc             	mov    %edx,-0x4(%ebp)
422005:	3b fb                	cmp    %ebx,%edi
422007:	75 b9                	jne    0x421fc2
422009:	8b 45 0c             	mov    0xc(%ebp),%eax
42200c:	89 30                	mov    %esi,(%eax)
42200e:	33 c0                	xor    %eax,%eax