421db0:	83 cf 40             	or     $0x40,%edi
421db3:	89 7e 1c             	mov    %edi,0x1c(%esi)
421db6:	83 7e 24 00          	cmpl   $0x0,0x24(%esi)
421dba:	89 55 f8             	mov    %edx,-0x8(%ebp)
421dbd:	89 4d fc             	mov    %ecx,-0x4(%ebp)
421dc0:	7d 09                	jge    0x421dcb
421dc2:	c7 46 24 01 00 00 00 	movl   $0x1,0x24(%esi)
421dc9:	eb 1a                	jmp    0x421de5
421dcb:	ff 76 08             	push   0x8(%esi)
421dce:	83 e7 f7             	and    $0xfffffff7,%edi
421dd1:	8d 4e 3c             	lea    0x3c(%esi),%ecx
421dd4:	ff 76 24             	push   0x24(%esi)
421dd7:	89 7e 1c             	mov    %edi,0x1c(%esi)
421dda:	e8 f1 f3 ff ff       	call   0x4211d0
421ddf:	8b 4d fc             	mov    -0x4(%ebp),%ecx
421de2:	8b 55 f8             	mov    -0x8(%ebp),%edx
421de5:	8b c1                	mov    %ecx,%eax
421de7:	0b c2                	or     %edx,%eax
421de9:	75 04                	jne    0x421def
421deb:	83 66 1c df          	andl   $0xffffffdf,0x1c(%esi)
421def:	83 7d f4 08          	cmpl   $0x8,-0xc(%ebp)
421df3:	ff 75 08             	push   0x8(%ebp)
421df6:	c6 46 38 01          	movb   $0x1,0x38(%esi)
421dfa:	75 0b                	jne    0x421e07
421dfc:	52                   	push   %edx
421dfd:	51                   	push   %ecx
421dfe:	8b ce                	mov    %esi,%ecx
421e00:	e8 f0 09 00 00       	call   0x4227f5
421e05:	eb 08                	jmp    0x421e0f
421e07:	51                   	push   %ecx
421e08:	8b ce                	mov    %esi,%ecx
421e0a:	e8 d1 06 00 00       	call   0x4224e0
421e0f:	8b 46 1c             	mov    0x1c(%esi),%eax
421e12:	c1 e8 07             	shr    $0x7,%eax
421e15:	a8 01                	test   $0x1,%al
421e17:	74 1d                	je     0x421e36
421e19:	6a 30                	push   $0x30
421e1b:	5a                   	pop    %edx
421e1c:	39 5e 34             	cmp    %ebx,0x34(%esi)
421e1f:	74 08                	je     0x421e29
421e21:	8b 46 30             	mov    0x30(%esi),%eax
421e24:	66 39 10             	cmp    %dx,(%eax)
421e27:	74 0d                	je     0x421e36
421e29:	83 46 30 fe          	addl   $0xfffffffe,0x30(%esi)
421e2d:	8b 4e 30             	mov    0x30(%esi),%ecx
421e30:	66 89 11             	mov    %dx,(%ecx)
421e33:	ff 46 34             	incl   0x34(%esi)
421e36:	b0 01                	mov    $0x1,%al
421e38:	5f                   	pop    %edi
421e39:	5e                   	pop    %esi
421e3a:	5b                   	pop    %ebx
421e3b:	c9                   	leave
421e3c:	c2 04 00             	ret    $0x4
421e3f:	8b ff                	mov    %edi,%edi
421e41:	55                   	push   %ebp
421e42:	8b ec                	mov    %esp,%ebp
421e44:	83 ec 0c             	sub    $0xc,%esp
421e47:	53                   	push   %ebx
421e48:	56                   	push   %esi
421e49:	8b f1                	mov    %ecx,%esi
421e4b:	57                   	push   %edi
421e4c:	ff 76 28             	push   0x28(%esi)
421e4f:	e8 3e 1f 00 00       	call   0x423d92
421e54:	59                   	pop    %ecx
421e55:	8b c8                	mov    %eax,%ecx
421e57:	89 45 f4             	mov    %eax,-0xc(%ebp)
421e5a:	6a 00                	push   $0x0
421e5c:	5b                   	pop    %ebx
421e5d:	83 e9 01             	sub    $0x1,%ecx
421e60:	0f 84 99 00 00 00    	je     0x421eff
421e66:	83 e9 01             	sub    $0x1,%ecx
421e69:	74 75                	je     0x421ee0
421e6b:	49                   	dec    %ecx
421e6c:	83 e9 01             	sub    $0x1,%ecx
421e6f:	74 46                	je     0x421eb7
421e71:	83 e9 04             	sub    $0x4,%ecx
421e74:	74 27                	je     0x421e9d
421e76:	8b 46 08             	mov    0x8(%esi),%eax
421e79:	83 c0 18             	add    $0x18,%eax
421e7c:	c6 40 04 01          	movb   $0x1,0x4(%eax)
421e80:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
421e86:	ff 76 08             	push   0x8(%esi)
421e89:	53                   	push   %ebx
421e8a:	53                   	push   %ebx
421e8b:	53                   	push   %ebx
421e8c:	53                   	push   %ebx
421e8d:	53                   	push   %ebx
421e8e:	e8 5f eb ff ff       	call   0x4209f2
421e93:	83 c4 18             	add    $0x18,%esp
421e96:	32 c0                	xor    %al,%al
421e98:	e9 28 01 00 00       	jmp    0x421fc5
421e9d:	8b 4e 10             	mov    0x10(%esi),%ecx
421ea0:	8b 7e 1c             	mov    0x1c(%esi),%edi
421ea3:	8b c7                	mov    %edi,%eax
421ea5:	c1 e8 04             	shr    $0x4,%eax
421ea8:	a8 01                	test   $0x1,%al
421eaa:	8d 41 08             	lea    0x8(%ecx),%eax
421ead:	89 46 10             	mov    %eax,0x10(%esi)
421eb0:	8b 01                	mov    (%ecx),%eax
421eb2:	8b 51 04             	mov    0x4(%ecx),%edx
421eb5:	eb 66                	jmp    0x421f1d
421eb7:	8b 7e 1c             	mov    0x1c(%esi),%edi
421eba:	8b c7                	mov    %edi,%eax
421ebc:	c1 e8 04             	shr    $0x4,%eax
421ebf:	a8 01                	test   $0x1,%al
421ec1:	74 0d                	je     0x421ed0
421ec3:	8b 46 10             	mov    0x10(%esi),%eax
421ec6:	8d 48 04             	lea    0x4(%eax),%ecx
421ec9:	89 4e 10             	mov    %ecx,0x10(%esi)
421ecc:	8b 00                	mov    (%eax),%eax
421ece:	eb 4c                	jmp    0x421f1c
421ed0:	8b 4e 10             	mov    0x10(%esi),%ecx
421ed3:	89 5d f8             	mov    %ebx,-0x8(%ebp)
421ed6:	8d 41 04             	lea    0x4(%ecx),%eax
421ed9:	89 46 10             	mov    %eax,0x10(%esi)
421edc:	8b 01                	mov    (%ecx),%eax
421ede:	eb 40                	jmp    0x421f20
421ee0:	8b 7e 1c             	mov    0x1c(%esi),%edi
421ee3:	8b c7                	mov    %edi,%eax
421ee5:	8b 4e 10             	mov    0x10(%esi),%ecx
421ee8:	c1 e8 04             	shr    $0x4,%eax
421eeb:	a8 01                	test   $0x1,%al
421eed:	8d 41 04             	lea    0x4(%ecx),%eax
421ef0:	89 46 10             	mov    %eax,0x10(%esi)
421ef3:	74 05                	je     0x421efa
421ef5:	0f bf 01             	movswl (%ecx),%eax
421ef8:	eb 22                	jmp    0x421f1c
421efa:	0f b7 01             	movzwl (%ecx),%eax
421efd:	eb 1d                	jmp    0x421f1c
421eff:	8b 7e 1c             	mov    0x1c(%esi),%edi
421f02:	8b c7                	mov    %edi,%eax
421f04:	8b 4e 10             	mov    0x10(%esi),%ecx
421f07:	c1 e8 04             	shr    $0x4,%eax
421f0a:	a8 01                	test   $0x1,%al
421f0c:	8d 41 04             	lea    0x4(%ecx),%eax
421f0f:	89 46 10             	mov    %eax,0x10(%esi)
421f12:	74 05                	je     0x421f19
421f14:	0f be 01             	movsbl (%ecx),%eax
421f17:	eb 03                	jmp    0x421f1c
421f19:	0f b6 01             	movzbl (%ecx),%eax
421f1c:	99                   	cltd
421f1d:	89 55 f8             	mov    %edx,-0x8(%ebp)
421f20:	8b 55 f8             	mov    -0x8(%ebp),%edx
421f23:	89 45 fc             	mov    %eax,-0x4(%ebp)
421f26:	8b c7                	mov    %edi,%eax
421f28:	8b 4d fc             	mov    -0x4(%ebp),%ecx
421f2b:	c1 e8 04             	shr    $0x4,%eax
421f2e:	a8 01                	test   $0x1,%al
421f30:	74 16                	je     0x421f48
421f32:	3b d3                	cmp    %ebx,%edx
421f34:	7f 12                	jg     0x421f48
421f36:	7c 04                	jl     0x421f3c
421f38:	3b cb                	cmp    %ebx,%ecx
421f3a:	73 0c                	jae    0x421f48
421f3c:	f7 d9                	neg    %ecx
421f3e:	13 d3                	adc    %ebx,%edx
421f40:	f7 da                	neg    %edx
421f42:	83 cf 40             	or     $0x40,%edi
421f45:	89 7e 1c             	mov    %edi,0x1c(%esi)
421f48:	83 7e 24 00          	cmpl   $0x0,0x24(%esi)
421f4c:	89 55 f8             	mov    %edx,-0x8(%ebp)
421f4f:	89 4d fc             	mov    %ecx,-0x4(%ebp)
421f52:	7d 09                	jge    0x421f5d
421f54:	c7 46 24 01 00 00 00 	movl   $0x1,0x24(%esi)
421f5b:	eb 1a                	jmp    0x421f77
421f5d:	ff 76 08             	push   0x8(%esi)
421f60:	83 e7 f7             	and    $0xfffffff7,%edi
421f63:	8d 4e 3c             	lea    0x3c(%esi),%ecx
421f66:	ff 76 24             	push   0x24(%esi)
421f69:	89 7e 1c             	mov    %edi,0x1c(%esi)
421f6c:	e8 de f1 ff ff       	call   0x42114f
421f71:	8b 4d fc             	mov    -0x4(%ebp),%ecx
421f74:	8b 55 f8             	mov    -0x8(%ebp),%edx
421f77:	8b c1                	mov    %ecx,%eax
421f79:	0b c2                	or     %edx,%eax
421f7b:	75 04                	jne    0x421f81
421f7d:	83 66 1c df          	andl   $0xffffffdf,0x1c(%esi)
421f81:	83 7d f4 08          	cmpl   $0x8,-0xc(%ebp)
421f85:	ff 75 08             	push   0x8(%ebp)
421f88:	88 5e 38             	mov    %bl,0x38(%esi)
421f8b:	75 0b                	jne    0x421f98
421f8d:	52                   	push   %edx
421f8e:	51                   	push   %ecx
421f8f:	8b ce                	mov    %esi,%ecx
421f91:	e8 e6 08 00 00       	call   0x42287c
421f96:	eb 08                	jmp    0x421fa0
421f98:	51                   	push   %ecx
421f99:	8b ce                	mov    %esi,%ecx
421f9b:	e8 b3 05 00 00       	call   0x422553
421fa0:	8b 46 1c             	mov    0x1c(%esi),%eax
421fa3:	c1 e8 07             	shr    $0x7,%eax
421fa6:	a8 01                	test   $0x1,%al
421fa8:	74 19                	je     0x421fc3
421faa:	39 5e 34             	cmp    %ebx,0x34(%esi)
421fad:	74 08                	je     0x421fb7
421faf:	8b 46 30             	mov    0x30(%esi),%eax
421fb2:	80 38 30             	cmpb   $0x30,(%eax)
421fb5:	74 0c                	je     0x421fc3
421fb7:	ff 4e 30             	decl   0x30(%esi)
421fba:	8b 4e 30             	mov    0x30(%esi),%ecx
421fbd:	c6 01 30             	movb   $0x30,(%ecx)
421fc0:	ff 46 34             	incl   0x34(%esi)
421fc3:	b0 01                	mov    $0x1,%al
421fc5:	5f                   	pop    %edi
421fc6:	5e                   	pop    %esi
421fc7:	5b                   	pop    %ebx
421fc8:	c9                   	leave
421fc9:	c2 04 00             	ret    $0x4
421fcc:	8b ff                	mov    %edi,%edi
421fce:	55                   	push   %ebp
421fcf:	8b ec                	mov    %esp,%ebp
421fd1:	83 ec 0c             	sub    $0xc,%esp
421fd4:	53                   	push   %ebx
421fd5:	56                   	push   %esi
421fd6:	8b f1                	mov    %ecx,%esi
421fd8:	57                   	push   %edi
421fd9:	ff 76 28             	push   0x28(%esi)
421fdc:	e8 b1 1d 00 00       	call   0x423d92
421fe1:	59                   	pop    %ecx
421fe2:	8b c8                	mov    %eax,%ecx
421fe4:	89 45 f4             	mov    %eax,-0xc(%ebp)
421fe7:	6a 00                	push   $0x0
421fe9:	5b                   	pop    %ebx
421fea:	83 e9 01             	sub    $0x1,%ecx
421fed:	0f 84 99 00 00 00    	je     0x42208c
421ff3:	83 e9 01             	sub    $0x1,%ecx
421ff6:	74 75                	je     0x42206d
421ff8:	49                   	dec    %ecx
421ff9:	83 e9 01             	sub    $0x1,%ecx
421ffc:	74 46                	je     0x422044
421ffe:	83 e9 04             	sub    $0x4,%ecx
422001:	74 27                	je     0x42202a
422003:	8b 46 08             	mov    0x8(%esi),%eax
422006:	83 c0 18             	add    $0x18,%eax
422009:	c6 40 04 01          	movb   $0x1,0x4(%eax)
42200d:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
422013:	ff 76 08             	push   0x8(%esi)
422016:	53                   	push   %ebx
422017:	53                   	push   %ebx
422018:	53                   	push   %ebx
422019:	53                   	push   %ebx
42201a:	53                   	push   %ebx
42201b:	e8 d2 e9 ff ff       	call   0x4209f2
422020:	83 c4 18             	add    $0x18,%esp
422023:	32 c0                	xor    %al,%al
422025:	e9 2d 01 00 00       	jmp    0x422157
42202a:	8b 4e 10             	mov    0x10(%esi),%ecx
42202d:	8b 7e 1c             	mov    0x1c(%esi),%edi
422030:	8b c7                	mov    %edi,%eax
422032:	c1 e8 04             	shr    $0x4,%eax
422035:	a8 01                	test   $0x1,%al
422037:	8d 41 08             	lea    0x8(%ecx),%eax
42203a:	89 46 10             	mov    %eax,0x10(%esi)
42203d:	8b 01                	mov    (%ecx),%eax
42203f:	8b 51 04             	mov    0x4(%ecx),%edx
422042:	eb 66                	jmp    0x4220aa
422044:	8b 7e 1c             	mov    0x1c(%esi),%edi
422047:	8b c7                	mov    %edi,%eax
422049:	c1 e8 04             	shr    $0x4,%eax
42204c:	a8 01                	test   $0x1,%al
42204e:	74 0d                	je     0x42205d
422050:	8b 46 10             	mov    0x10(%esi),%eax
422053:	8d 48 04             	lea    0x4(%eax),%ecx
422056:	89 4e 10             	mov    %ecx,0x10(%esi)
422059:	8b 00                	mov    (%eax),%eax
42205b:	eb 4c                	jmp    0x4220a9
42205d:	8b 4e 10             	mov    0x10(%esi),%ecx
422060:	89 5d f8             	mov    %ebx,-0x8(%ebp)
422063:	8d 41 04             	lea    0x4(%ecx),%eax
422066:	89 46 10             	mov    %eax,0x10(%esi)
422069:	8b 01                	mov    (%ecx),%eax
42206b:	eb 40                	jmp    0x4220ad
42206d:	8b 7e 1c             	mov    0x1c(%esi),%edi
422070:	8b c7                	mov    %edi,%eax
422072:	8b 4e 10             	mov    0x10(%esi),%ecx
422075:	c1 e8 04             	shr    $0x4,%eax
422078:	a8 01                	test   $0x1,%al
42207a:	8d 41 04             	lea    0x4(%ecx),%eax
42207d:	89 46 10             	mov    %eax,0x10(%esi)
422080:	74 05                	je     0x422087
422082:	0f bf 01             	movswl (%ecx),%eax
422085:	eb 22                	jmp    0x4220a9
422087:	0f b7 01             	movzwl (%ecx),%eax
42208a:	eb 1d                	jmp    0x4220a9
42208c:	8b 7e 1c             	mov    0x1c(%esi),%edi
42208f:	8b c7                	mov    %edi,%eax
422091:	8b 4e 10             	mov    0x10(%esi),%ecx
422094:	c1 e8 04             	shr    $0x4,%eax
422097:	a8 01                	test   $0x1,%al
422099:	8d 41 04             	lea    0x4(%ecx),%eax
42209c:	89 46 10             	mov    %eax,0x10(%esi)
42209f:	74 05                	je     0x4220a6
4220a1:	0f be 01             	movsbl (%ecx),%eax
4220a4:	eb 03                	jmp    0x4220a9
4220a6:	0f b6 01             	movzbl (%ecx),%eax
4220a9:	99                   	cltd
4220aa:	89 55 f8             	mov    %edx,-0x8(%ebp)
4220ad:	8b 55 f8             	mov    -0x8(%ebp),%edx
4220b0:	89 45 fc             	mov    %eax,-0x4(%ebp)
4220b3:	8b c7                	mov    %edi,%eax
4220b5:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4220b8:	c1 e8 04             	shr    $0x4,%eax
4220bb:	a8 01                	test   $0x1,%al
4220bd:	74 16                	je     0x4220d5
4220bf:	3b d3                	cmp    %ebx,%edx
4220c1:	7f 12                	jg     0x4220d5
4220c3:	7c 04                	jl     0x4220c9
4220c5:	3b cb                	cmp    %ebx,%ecx
4220c7:	73 0c                	jae    0x4220d5
4220c9:	f7 d9                	neg    %ecx
4220cb:	13 d3                	adc    %ebx,%edx
4220cd:	f7 da                	neg    %edx
4220cf:	83 cf 40             	or     $0x40,%edi
4220d2:	89 7e 1c             	mov    %edi,0x1c(%esi)
4220d5:	83 7e 24 00          	cmpl   $0x0,0x24(%esi)
4220d9:	89 55 f8             	mov    %edx,-0x8(%ebp)
4220dc:	89 4d fc             	mov    %ecx,-0x4(%ebp)
4220df:	7d 09                	jge    0x4220ea
4220e1:	c7 46 24 01 00 00 00 	movl   $0x1,0x24(%esi)
4220e8:	eb 1a                	jmp    0x422104
4220ea:	ff 76 08             	push   0x8(%esi)
4220ed:	83 e7 f7             	and    $0xfffffff7,%edi
4220f0:	8d 4e 3c             	lea    0x3c(%esi),%ecx
4220f3:	ff 76 24             	push   0x24(%esi)
4220f6:	89 7e 1c             	mov    %edi,0x1c(%esi)
4220f9:	e8 d2 f0 ff ff       	call   0x4211d0
4220fe:	8b 4d fc             	mov    -0x4(%ebp),%ecx
422101:	8b 55 f8             	mov    -0x8(%ebp),%edx
422104:	8b c1                	mov    %ecx,%eax
422106:	0b c2                	or     %edx,%eax
422108:	75 04                	jne    0x42210e
42210a:	83 66 1c df          	andl   $0xffffffdf,0x1c(%esi)
42210e:	83 7d f4 08          	cmpl   $0x8,-0xc(%ebp)
422112:	ff 75 08             	push   0x8(%ebp)
422115:	c6 46 38 01          	movb   $0x1,0x38(%esi)
422119:	75 0b                	jne    0x422126
42211b:	52                   	push   %edx
42211c:	51                   	push   %ecx
42211d:	8b ce                	mov    %esi,%ecx
42211f:	e8 ff 07 00 00       	call   0x422923
422124:	eb 08                	jmp    0x42212e
422126:	51                   	push   %ecx
422127:	8b ce                	mov    %esi,%ecx
422129:	e8 ac 04 00 00       	call   0x4225da
42212e:	8b 46 1c             	mov    0x1c(%esi),%eax
422131:	c1 e8 07             	shr    $0x7,%eax
422134:	a8 01                	test   $0x1,%al
422136:	74 1d                	je     0x422155
422138:	6a 30                	push   $0x30
42213a:	5a                   	pop    %edx