417ce9:	56                   	push   %esi
417cea:	e8 61 78 ff ff       	call   0x40f550
417cef:	83 c4 04             	add    $0x4,%esp
417cf2:	8b c7                	mov    %edi,%eax
417cf4:	5f                   	pop    %edi
417cf5:	5e                   	pop    %esi
417cf6:	c3                   	ret
417cf7:	90                   	nop
417cf8:	90                   	nop
417cf9:	90                   	nop
417cfa:	90                   	nop
417cfb:	90                   	nop
417cfc:	90                   	nop
417cfd:	90                   	nop
417cfe:	90                   	nop
417cff:	90                   	nop
417d00:	51                   	push   %ecx
417d01:	53                   	push   %ebx
417d02:	55                   	push   %ebp
417d03:	8b 6c 24 18          	mov    0x18(%esp),%ebp
417d07:	56                   	push   %esi
417d08:	0f af 6c 24 18       	imul   0x18(%esp),%ebp
417d0d:	8b 74 24 14          	mov    0x14(%esp),%esi
417d11:	57                   	push   %edi
417d12:	85 ed                	test   %ebp,%ebp
417d14:	89 74 24 18          	mov    %esi,0x18(%esp)
417d18:	89 6c 24 10          	mov    %ebp,0x10(%esp)
417d1c:	75 08                	jne    0x417d26
417d1e:	33 c0                	xor    %eax,%eax
417d20:	5f                   	pop    %edi
417d21:	5e                   	pop    %esi
417d22:	5d                   	pop    %ebp
417d23:	5b                   	pop    %ebx
417d24:	59                   	pop    %ecx
417d25:	c3                   	ret
417d26:	8b 5c 24 24          	mov    0x24(%esp),%ebx
417d2a:	f7 43 0c 0c 01 00 00 	testl  $0x10c,0xc(%ebx)
417d31:	74 09                	je     0x417d3c
417d33:	8b 7b 18             	mov    0x18(%ebx),%edi
417d36:	89 7c 24 24          	mov    %edi,0x24(%esp)
417d3a:	eb 0c                	jmp    0x417d48
417d3c:	c7 44 24 24 00 10 00 	movl   $0x1000,0x24(%esp)
417d43:	00
417d44:	8b 7c 24 24          	mov    0x24(%esp),%edi
417d48:	8b 4b 0c             	mov    0xc(%ebx),%ecx
417d4b:	81 e1 08 01 00 00    	and    $0x108,%ecx
417d51:	74 3d                	je     0x417d90
417d53:	8b 43 04             	mov    0x4(%ebx),%eax
417d56:	85 c0                	test   %eax,%eax
417d58:	74 36                	je     0x417d90
417d5a:	3b e8                	cmp    %eax,%ebp
417d5c:	73 02                	jae    0x417d60
417d5e:	8b c5                	mov    %ebp,%eax
417d60:	8b 3b                	mov    (%ebx),%edi
417d62:	8b c8                	mov    %eax,%ecx
417d64:	8b d1                	mov    %ecx,%edx
417d66:	2b e8                	sub    %eax,%ebp
417d68:	c1 e9 02             	shr    $0x2,%ecx
417d6b:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
417d6d:	8b ca                	mov    %edx,%ecx
417d6f:	83 e1 03             	and    $0x3,%ecx
417d72:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
417d74:	8b 73 04             	mov    0x4(%ebx),%esi
417d77:	8b 13                	mov    (%ebx),%edx
417d79:	8b 4c 24 18          	mov    0x18(%esp),%ecx
417d7d:	2b f0                	sub    %eax,%esi
417d7f:	03 d0                	add    %eax,%edx
417d81:	03 c8                	add    %eax,%ecx
417d83:	89 73 04             	mov    %esi,0x4(%ebx)
417d86:	89 13                	mov    %edx,(%ebx)
417d88:	89 4c 24 18          	mov    %ecx,0x18(%esp)
417d8c:	8b f1                	mov    %ecx,%esi
417d8e:	eb 77                	jmp    0x417e07
417d90:	3b ef                	cmp    %edi,%ebp
417d92:	72 48                	jb     0x417ddc
417d94:	85 c9                	test   %ecx,%ecx
417d96:	74 11                	je     0x417da9
417d98:	53                   	push   %ebx
417d99:	e8 52 a9 ff ff       	call   0x4126f0
417d9e:	83 c4 04             	add    $0x4,%esp
417da1:	85 c0                	test   %eax,%eax
417da3:	0f 85 8b 00 00 00    	jne    0x417e34
417da9:	85 ff                	test   %edi,%edi
417dab:	74 0c                	je     0x417db9
417dad:	8b c5                	mov    %ebp,%eax
417daf:	33 d2                	xor    %edx,%edx
417db1:	f7 f7                	div    %edi
417db3:	8b fd                	mov    %ebp,%edi
417db5:	2b fa                	sub    %edx,%edi
417db7:	eb 02                	jmp    0x417dbb
417db9:	8b fd                	mov    %ebp,%edi
417dbb:	8b 43 10             	mov    0x10(%ebx),%eax
417dbe:	57                   	push   %edi
417dbf:	56                   	push   %esi
417dc0:	50                   	push   %eax
417dc1:	e8 ba a0 ff ff       	call   0x411e80
417dc6:	83 c4 0c             	add    $0xc,%esp
417dc9:	83 f8 ff             	cmp    $0xffffffff,%eax
417dcc:	74 4b                	je     0x417e19
417dce:	2b e8                	sub    %eax,%ebp
417dd0:	03 f0                	add    %eax,%esi
417dd2:	3b c7                	cmp    %edi,%eax
417dd4:	89 74 24 18          	mov    %esi,0x18(%esp)
417dd8:	72 3f                	jb     0x417e19
417dda:	eb 2b                	jmp    0x417e07
417ddc:	0f be 0e             	movsbl (%esi),%ecx
417ddf:	53                   	push   %ebx
417de0:	51                   	push   %ecx
417de1:	e8 4a 88 ff ff       	call   0x410630
417de6:	83 c4 08             	add    $0x8,%esp
417de9:	83 f8 ff             	cmp    $0xffffffff,%eax
417dec:	74 46                	je     0x417e34
417dee:	8b 43 18             	mov    0x18(%ebx),%eax
417df1:	46                   	inc    %esi
417df2:	4d                   	dec    %ebp
417df3:	89 74 24 18          	mov    %esi,0x18(%esp)
417df7:	85 c0                	test   %eax,%eax
417df9:	89 44 24 24          	mov    %eax,0x24(%esp)
417dfd:	7f 08                	jg     0x417e07
417dff:	c7 44 24 24 01 00 00 	movl   $0x1,0x24(%esp)
417e06:	00
417e07:	85 ed                	test   %ebp,%ebp
417e09:	0f 85 35 ff ff ff    	jne    0x417d44
417e0f:	8b 44 24 20          	mov    0x20(%esp),%eax
417e13:	5f                   	pop    %edi
417e14:	5e                   	pop    %esi
417e15:	5d                   	pop    %ebp
417e16:	5b                   	pop    %ebx
417e17:	59                   	pop    %ecx
417e18:	c3                   	ret
417e19:	8b 53 0c             	mov    0xc(%ebx),%edx
417e1c:	8b 44 24 10          	mov    0x10(%esp),%eax
417e20:	83 ca 20             	or     $0x20,%edx
417e23:	2b c5                	sub    %ebp,%eax
417e25:	89 53 0c             	mov    %edx,0xc(%ebx)
417e28:	33 d2                	xor    %edx,%edx
417e2a:	f7 74 24 1c          	divl   0x1c(%esp)
417e2e:	5f                   	pop    %edi
417e2f:	5e                   	pop    %esi
417e30:	5d                   	pop    %ebp
417e31:	5b                   	pop    %ebx
417e32:	59                   	pop    %ecx
417e33:	c3                   	ret
417e34:	8b 44 24 10          	mov    0x10(%esp),%eax
417e38:	33 d2                	xor    %edx,%edx
417e3a:	2b c5                	sub    %ebp,%eax
417e3c:	f7 74 24 1c          	divl   0x1c(%esp)
417e40:	5f                   	pop    %edi
417e41:	5e                   	pop    %esi
417e42:	5d                   	pop    %ebp
417e43:	5b                   	pop    %ebx
417e44:	59                   	pop    %ecx
417e45:	c3                   	ret
417e46:	90                   	nop
417e47:	90                   	nop
417e48:	90                   	nop
417e49:	90                   	nop
417e4a:	90                   	nop
417e4b:	90                   	nop
417e4c:	90                   	nop
417e4d:	90                   	nop
417e4e:	90                   	nop
417e4f:	90                   	nop
417e50:	56                   	push   %esi
417e51:	8b 74 24 0c          	mov    0xc(%esp),%esi
417e55:	57                   	push   %edi
417e56:	56                   	push   %esi
417e57:	e8 84 76 ff ff       	call   0x40f4e0
417e5c:	8b 46 04             	mov    0x4(%esi),%eax
417e5f:	83 c4 04             	add    $0x4,%esp
417e62:	48                   	dec    %eax
417e63:	89 46 04             	mov    %eax,0x4(%esi)
417e66:	78 22                	js     0x417e8a
417e68:	8b 0e                	mov    (%esi),%ecx
417e6a:	8b 44 24 0c          	mov    0xc(%esp),%eax
417e6e:	56                   	push   %esi
417e6f:	88 01                	mov    %al,(%ecx)
417e71:	25 ff 00 00 00       	and    $0xff,%eax
417e76:	8b f8                	mov    %eax,%edi
417e78:	8b 06                	mov    (%esi),%eax
417e7a:	40                   	inc    %eax
417e7b:	89 06                	mov    %eax,(%esi)
417e7d:	e8 ce 76 ff ff       	call   0x40f550
417e82:	83 c4 04             	add    $0x4,%esp
417e85:	8b c7                	mov    %edi,%eax
417e87:	5f                   	pop    %edi
417e88:	5e                   	pop    %esi
417e89:	c3                   	ret
417e8a:	8b 54 24 0c          	mov    0xc(%esp),%edx
417e8e:	56                   	push   %esi
417e8f:	52                   	push   %edx
417e90:	e8 9b 87 ff ff       	call   0x410630
417e95:	83 c4 08             	add    $0x8,%esp
417e98:	8b f8                	mov    %eax,%edi
417e9a:	56                   	push   %esi
417e9b:	e8 b0 76 ff ff       	call   0x40f550
417ea0:	83 c4 04             	add    $0x4,%esp
417ea3:	8b c7                	mov    %edi,%eax
417ea5:	5f                   	pop    %edi
417ea6:	5e                   	pop    %esi
417ea7:	c3                   	ret
417ea8:	90                   	nop
417ea9:	90                   	nop
417eaa:	90                   	nop
417eab:	90                   	nop
417eac:	90                   	nop
417ead:	90                   	nop
417eae:	90                   	nop
417eaf:	90                   	nop
417eb0:	56                   	push   %esi
417eb1:	8b 74 24 08          	mov    0x8(%esp),%esi
417eb5:	57                   	push   %edi
417eb6:	56                   	push   %esi
417eb7:	e8 24 76 ff ff       	call   0x40f4e0
417ebc:	8b 46 04             	mov    0x4(%esi),%eax
417ebf:	83 c4 04             	add    $0x4,%esp
417ec2:	48                   	dec    %eax
417ec3:	89 46 04             	mov    %eax,0x4(%esi)
417ec6:	78 19                	js     0x417ee1
417ec8:	8b 06                	mov    (%esi),%eax
417eca:	33 c9                	xor    %ecx,%ecx
417ecc:	56                   	push   %esi
417ecd:	8a 08                	mov    (%eax),%cl
417ecf:	40                   	inc    %eax
417ed0:	8b f9                	mov    %ecx,%edi
417ed2:	89 06                	mov    %eax,(%esi)
417ed4:	e8 77 76 ff ff       	call   0x40f550
417ed9:	83 c4 04             	add    $0x4,%esp
417edc:	8b c7                	mov    %edi,%eax
417ede:	5f                   	pop    %edi
417edf:	5e                   	pop    %esi
417ee0:	c3                   	ret
417ee1:	56                   	push   %esi
417ee2:	e8 49 08 00 00       	call   0x418730
417ee7:	83 c4 04             	add    $0x4,%esp
417eea:	8b f8                	mov    %eax,%edi
417eec:	56                   	push   %esi
417eed:	e8 5e 76 ff ff       	call   0x40f550
417ef2:	83 c4 04             	add    $0x4,%esp
417ef5:	8b c7                	mov    %edi,%eax
417ef7:	5f                   	pop    %edi
417ef8:	5e                   	pop    %esi
417ef9:	c3                   	ret
417efa:	90                   	nop
417efb:	90                   	nop
417efc:	90                   	nop
417efd:	90                   	nop
417efe:	90                   	nop
417eff:	90                   	nop
417f00:	56                   	push   %esi
417f01:	8b 74 24 0c          	mov    0xc(%esp),%esi
417f05:	57                   	push   %edi
417f06:	56                   	push   %esi
417f07:	e8 d4 75 ff ff       	call   0x40f4e0
417f0c:	8b 44 24 10          	mov    0x10(%esp),%eax
417f10:	83 c4 04             	add    $0x4,%esp
417f13:	56                   	push   %esi
417f14:	50                   	push   %eax
417f15:	e8 16 00 00 00       	call   0x417f30
417f1a:	83 c4 08             	add    $0x8,%esp
417f1d:	8b f8                	mov    %eax,%edi
417f1f:	56                   	push   %esi
417f20:	e8 2b 76 ff ff       	call   0x40f550
417f25:	83 c4 04             	add    $0x4,%esp
417f28:	8b c7                	mov    %edi,%eax
417f2a:	5f                   	pop    %edi
417f2b:	5e                   	pop    %esi
417f2c:	c3                   	ret
417f2d:	90                   	nop
417f2e:	90                   	nop
417f2f:	90                   	nop
417f30:	53                   	push   %ebx
417f31:	8b 5c 24 08          	mov    0x8(%esp),%ebx
417f35:	83 fb ff             	cmp    $0xffffffff,%ebx
417f38:	56                   	push   %esi
417f39:	74 72                	je     0x417fad
417f3b:	8b 74 24 10          	mov    0x10(%esp),%esi
417f3f:	8b 46 0c             	mov    0xc(%esi),%eax
417f42:	a8 01                	test   $0x1,%al
417f44:	75 08                	jne    0x417f4e
417f46:	a8 80                	test   $0x80,%al
417f48:	74 63                	je     0x417fad
417f4a:	a8 02                	test   $0x2,%al
417f4c:	75 5f                	jne    0x417fad
417f4e:	8b 46 08             	mov    0x8(%esi),%eax
417f51:	85 c0                	test   %eax,%eax
417f53:	75 09                	jne    0x417f5e
417f55:	56                   	push   %esi
417f56:	e8 b5 a1 ff ff       	call   0x412110
417f5b:	83 c4 04             	add    $0x4,%esp
417f5e:	8b 06                	mov    (%esi),%eax
417f60:	8b 4e 08             	mov    0x8(%esi),%ecx
417f63:	3b c1                	cmp    %ecx,%eax
417f65:	75 0a                	jne    0x417f71
417f67:	8b 4e 04             	mov    0x4(%esi),%ecx
417f6a:	85 c9                	test   %ecx,%ecx
417f6c:	75 3f                	jne    0x417fad
417f6e:	40                   	inc    %eax
417f6f:	89 06                	mov    %eax,(%esi)
417f71:	f6 46 0c 40          	testb  $0x40,0xc(%esi)
417f75:	74 14                	je     0x417f8b
417f77:	8b 16                	mov    (%esi),%edx
417f79:	4a                   	dec    %edx
417f7a:	8b c2                	mov    %edx,%eax
417f7c:	89 16                	mov    %edx,(%esi)
417f7e:	38 18                	cmp    %bl,(%eax)
417f80:	74 10                	je     0x417f92
417f82:	40                   	inc    %eax
417f83:	89 06                	mov    %eax,(%esi)
417f85:	83 c8 ff             	or     $0xffffffff,%eax
417f88:	5e                   	pop    %esi
417f89:	5b                   	pop    %ebx
417f8a:	c3                   	ret
417f8b:	8b 06                	mov    (%esi),%eax
417f8d:	48                   	dec    %eax
417f8e:	89 06                	mov    %eax,(%esi)
417f90:	88 18                	mov    %bl,(%eax)
417f92:	8b 46 0c             	mov    0xc(%esi),%eax
417f95:	8b 56 04             	mov    0x4(%esi),%edx
417f98:	24 ef                	and    $0xef,%al
417f9a:	42                   	inc    %edx
417f9b:	0c 01                	or     $0x1,%al
417f9d:	89 56 04             	mov    %edx,0x4(%esi)
417fa0:	89 46 0c             	mov    %eax,0xc(%esi)
417fa3:	8b c3                	mov    %ebx,%eax
417fa5:	25 ff 00 00 00       	and    $0xff,%eax
417faa:	5e                   	pop    %esi
417fab:	5b                   	pop    %ebx
417fac:	c3                   	ret
417fad:	5e                   	pop    %esi
417fae:	83 c8 ff             	or     $0xffffffff,%eax
417fb1:	5b                   	pop    %ebx
417fb2:	c3                   	ret
417fb3:	90                   	nop
417fb4:	90                   	nop
417fb5:	90                   	nop
417fb6:	90                   	nop
417fb7:	90                   	nop
417fb8:	90                   	nop
417fb9:	90                   	nop
417fba:	90                   	nop
417fbb:	90                   	nop
417fbc:	90                   	nop
417fbd:	90                   	nop
417fbe:	90                   	nop
417fbf:	90                   	nop
417fc0:	8b 44 24 04          	mov    0x4(%esp),%eax
417fc4:	50                   	push   %eax
417fc5:	e8 56 08 00 00       	call   0x418820
417fca:	8b 4c 24 0c          	mov    0xc(%esp),%ecx