427dd3:	51                   	push   %ecx
427dd4:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
427dd8:	53                   	push   %ebx
427dd9:	56                   	push   %esi
427dda:	57                   	push   %edi
427ddb:	8b 7d 0c             	mov    0xc(%ebp),%edi
427dde:	8b 3f                	mov    (%edi),%edi
427de0:	0f 84 a4 00 00 00    	je     0x427e8a
427de6:	8b 5d 10             	mov    0x10(%ebp),%ebx
427de9:	8b 75 08             	mov    0x8(%ebp),%esi
427dec:	85 db                	test   %ebx,%ebx
427dee:	74 6b                	je     0x427e5b
427df0:	57                   	push   %edi
427df1:	8d 4d ff             	lea    -0x1(%ebp),%ecx
427df4:	e8 65 ff ff ff       	call   0x427d5e
427df9:	ff 75 18             	push   0x18(%ebp)
427dfc:	ff 75 14             	push   0x14(%ebp)
427dff:	50                   	push   %eax
427e00:	8d 45 f8             	lea    -0x8(%ebp),%eax
427e03:	57                   	push   %edi
427e04:	50                   	push   %eax
427e05:	e8 69 32 00 00       	call   0x42b073
427e0a:	8b d0                	mov    %eax,%edx
427e0c:	83 c4 14             	add    $0x14,%esp
427e0f:	83 fa ff             	cmp    $0xffffffff,%edx
427e12:	74 5e                	je     0x427e72
427e14:	85 d2                	test   %edx,%edx
427e16:	74 51                	je     0x427e69
427e18:	8b 4d f8             	mov    -0x8(%ebp),%ecx
427e1b:	81 f9 ff ff 00 00    	cmp    $0xffff,%ecx
427e21:	76 2b                	jbe    0x427e4e
427e23:	83 fb 01             	cmp    $0x1,%ebx
427e26:	76 33                	jbe    0x427e5b
427e28:	81 e9 00 00 01 00    	sub    $0x10000,%ecx
427e2e:	4b                   	dec    %ebx
427e2f:	8b c1                	mov    %ecx,%eax
427e31:	89 4d f8             	mov    %ecx,-0x8(%ebp)
427e34:	c1 e8 0a             	shr    $0xa,%eax
427e37:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
427e3d:	0d 00 d8 00 00       	or     $0xd800,%eax
427e42:	66 89 06             	mov    %ax,(%esi)
427e45:	83 c6 02             	add    $0x2,%esi
427e48:	81 c9 00 dc 00 00    	or     $0xdc00,%ecx
427e4e:	66 89 0e             	mov    %cx,(%esi)
427e51:	03 fa                	add    %edx,%edi
427e53:	83 c6 02             	add    $0x2,%esi
427e56:	83 eb 01             	sub    $0x1,%ebx
427e59:	75 95                	jne    0x427df0
427e5b:	8b 5d 0c             	mov    0xc(%ebp),%ebx
427e5e:	2b 75 08             	sub    0x8(%ebp),%esi
427e61:	d1 fe                	sar    $1,%esi
427e63:	89 3b                	mov    %edi,(%ebx)
427e65:	8b c6                	mov    %esi,%eax
427e67:	eb 67                	jmp    0x427ed0
427e69:	33 ff                	xor    %edi,%edi
427e6b:	33 c0                	xor    %eax,%eax
427e6d:	66 89 06             	mov    %ax,(%esi)
427e70:	eb e9                	jmp    0x427e5b
427e72:	8b 45 0c             	mov    0xc(%ebp),%eax
427e75:	89 38                	mov    %edi,(%eax)
427e77:	8b 45 18             	mov    0x18(%ebp),%eax
427e7a:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
427e7e:	c7 40 18 2a 00 00 00 	movl   $0x2a,0x18(%eax)
427e85:	83 c8 ff             	or     $0xffffffff,%eax
427e88:	eb 46                	jmp    0x427ed0
427e8a:	57                   	push   %edi
427e8b:	8d 4d ff             	lea    -0x1(%ebp),%ecx
427e8e:	33 f6                	xor    %esi,%esi
427e90:	e8 c9 fe ff ff       	call   0x427d5e
427e95:	8b 5d 18             	mov    0x18(%ebp),%ebx
427e98:	eb 16                	jmp    0x427eb0
427e9a:	85 c0                	test   %eax,%eax
427e9c:	74 c7                	je     0x427e65
427e9e:	83 f8 04             	cmp    $0x4,%eax
427ea1:	75 01                	jne    0x427ea4
427ea3:	46                   	inc    %esi
427ea4:	03 f8                	add    %eax,%edi
427ea6:	8d 4d ff             	lea    -0x1(%ebp),%ecx
427ea9:	57                   	push   %edi
427eaa:	46                   	inc    %esi
427eab:	e8 ae fe ff ff       	call   0x427d5e
427eb0:	53                   	push   %ebx
427eb1:	ff 75 14             	push   0x14(%ebp)
427eb4:	50                   	push   %eax
427eb5:	57                   	push   %edi
427eb6:	6a 00                	push   $0x0
427eb8:	e8 b6 31 00 00       	call   0x42b073
427ebd:	83 c4 14             	add    $0x14,%esp
427ec0:	83 f8 ff             	cmp    $0xffffffff,%eax
427ec3:	75 d5                	jne    0x427e9a
427ec5:	c6 43 1c 01          	movb   $0x1,0x1c(%ebx)
427ec9:	c7 43 18 2a 00 00 00 	movl   $0x2a,0x18(%ebx)
427ed0:	5f                   	pop    %edi
427ed1:	5e                   	pop    %esi
427ed2:	5b                   	pop    %ebx
427ed3:	c9                   	leave
427ed4:	c3                   	ret
427ed5:	6a 10                	push   $0x10
427ed7:	68 e0 b0 43 00       	push   $0x43b0e0
427edc:	e8 ef 25 fe ff       	call   0x40a4d0
427ee1:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
427ee5:	6a 08                	push   $0x8
427ee7:	e8 96 b4 ff ff       	call   0x423382
427eec:	59                   	pop    %ecx
427eed:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
427ef1:	6a 03                	push   $0x3
427ef3:	5e                   	pop    %esi
427ef4:	89 75 e0             	mov    %esi,-0x20(%ebp)
427ef7:	3b 35 e8 f7 43 00    	cmp    0x43f7e8,%esi
427efd:	74 59                	je     0x427f58
427eff:	a1 ec f7 43 00       	mov    0x43f7ec,%eax
427f04:	8b 04 b0             	mov    (%eax,%esi,4),%eax
427f07:	85 c0                	test   %eax,%eax
427f09:	74 4a                	je     0x427f55
427f0b:	8b 40 0c             	mov    0xc(%eax),%eax
427f0e:	90                   	nop
427f0f:	c1 e8 0d             	shr    $0xd,%eax
427f12:	a8 01                	test   $0x1,%al
427f14:	74 16                	je     0x427f2c
427f16:	a1 ec f7 43 00       	mov    0x43f7ec,%eax
427f1b:	ff 34 b0             	push   (%eax,%esi,4)
427f1e:	e8 70 b7 fe ff       	call   0x413693
427f23:	59                   	pop    %ecx
427f24:	83 f8 ff             	cmp    $0xffffffff,%eax
427f27:	74 03                	je     0x427f2c
427f29:	ff 45 e4             	incl   -0x1c(%ebp)
427f2c:	a1 ec f7 43 00       	mov    0x43f7ec,%eax
427f31:	8b 04 b0             	mov    (%eax,%esi,4),%eax
427f34:	83 c0 20             	add    $0x20,%eax
427f37:	50                   	push   %eax
427f38:	ff 15 1c 11 43 00    	call   *0x43111c
427f3e:	a1 ec f7 43 00       	mov    0x43f7ec,%eax
427f43:	ff 34 b0             	push   (%eax,%esi,4)
427f46:	e8 c5 ec fd ff       	call   0x406c10
427f4b:	59                   	pop    %ecx
427f4c:	a1 ec f7 43 00       	mov    0x43f7ec,%eax
427f51:	83 24 b0 00          	andl   $0x0,(%eax,%esi,4)
427f55:	46                   	inc    %esi
427f56:	eb 9c                	jmp    0x427ef4
427f58:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
427f5f:	e8 13 00 00 00       	call   0x427f77
427f64:	8b 45 e4             	mov    -0x1c(%ebp),%eax
427f67:	8b 4d f0             	mov    -0x10(%ebp),%ecx
427f6a:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
427f71:	59                   	pop    %ecx
427f72:	5f                   	pop    %edi
427f73:	5e                   	pop    %esi
427f74:	5b                   	pop    %ebx
427f75:	c9                   	leave
427f76:	c3                   	ret
427f77:	6a 08                	push   $0x8
427f79:	e8 4c b4 ff ff       	call   0x4233ca
427f7e:	59                   	pop    %ecx
427f7f:	c3                   	ret
427f80:	8b ff                	mov    %edi,%edi
427f82:	55                   	push   %ebp
427f83:	8b ec                	mov    %esp,%ebp
427f85:	ff 75 0c             	push   0xc(%ebp)
427f88:	e8 b3 58 ff ff       	call   0x41d840
427f8d:	8b 45 0c             	mov    0xc(%ebp),%eax
427f90:	59                   	pop    %ecx
427f91:	8b 40 0c             	mov    0xc(%eax),%eax
427f94:	90                   	nop
427f95:	a8 06                	test   $0x6,%al
427f97:	75 1f                	jne    0x427fb8
427f99:	8b 45 10             	mov    0x10(%ebp),%eax
427f9c:	c7 40 18 09 00 00 00 	movl   $0x9,0x18(%eax)
427fa3:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
427fa7:	8b 45 0c             	mov    0xc(%ebp),%eax
427faa:	6a 10                	push   $0x10
427fac:	59                   	pop    %ecx
427fad:	83 c0 0c             	add    $0xc,%eax
427fb0:	f0 09 08             	lock or %ecx,(%eax)
427fb3:	83 c8 ff             	or     $0xffffffff,%eax
427fb6:	5d                   	pop    %ebp
427fb7:	c3                   	ret
427fb8:	8b 45 0c             	mov    0xc(%ebp),%eax
427fbb:	8b 40 0c             	mov    0xc(%eax),%eax
427fbe:	90                   	nop
427fbf:	c1 e8 0c             	shr    $0xc,%eax
427fc2:	a8 01                	test   $0x1,%al
427fc4:	74 0c                	je     0x427fd2
427fc6:	8b 45 10             	mov    0x10(%ebp),%eax
427fc9:	c7 40 18 22 00 00 00 	movl   $0x22,0x18(%eax)
427fd0:	eb d1                	jmp    0x427fa3
427fd2:	8b 45 0c             	mov    0xc(%ebp),%eax
427fd5:	8b 40 0c             	mov    0xc(%eax),%eax
427fd8:	90                   	nop
427fd9:	a8 01                	test   $0x1,%al
427fdb:	74 28                	je     0x428005
427fdd:	ff 75 0c             	push   0xc(%ebp)
427fe0:	e8 63 01 00 00       	call   0x428148
427fe5:	59                   	pop    %ecx
427fe6:	8b 4d 0c             	mov    0xc(%ebp),%ecx
427fe9:	83 61 08 00          	andl   $0x0,0x8(%ecx)
427fed:	84 c0                	test   %al,%al
427fef:	8b 45 0c             	mov    0xc(%ebp),%eax
427ff2:	74 b6                	je     0x427faa
427ff4:	8b 48 04             	mov    0x4(%eax),%ecx
427ff7:	89 08                	mov    %ecx,(%eax)
427ff9:	8b 45 0c             	mov    0xc(%ebp),%eax
427ffc:	6a fe                	push   $0xfffffffe
427ffe:	59                   	pop    %ecx
427fff:	83 c0 0c             	add    $0xc,%eax
428002:	f0 21 08             	lock and %ecx,(%eax)
428005:	8b 45 0c             	mov    0xc(%ebp),%eax
428008:	6a 02                	push   $0x2
42800a:	59                   	pop    %ecx
42800b:	83 c0 0c             	add    $0xc,%eax
42800e:	f0 09 08             	lock or %ecx,(%eax)
428011:	8b 45 0c             	mov    0xc(%ebp),%eax
428014:	6a f7                	push   $0xfffffff7
428016:	59                   	pop    %ecx
428017:	83 c0 0c             	add    $0xc,%eax
42801a:	f0 21 08             	lock and %ecx,(%eax)
42801d:	8b 45 0c             	mov    0xc(%ebp),%eax
428020:	83 60 08 00          	andl   $0x0,0x8(%eax)
428024:	8b 45 0c             	mov    0xc(%ebp),%eax
428027:	8b 40 0c             	mov    0xc(%eax),%eax
42802a:	90                   	nop
42802b:	a9 c0 04 00 00       	test   $0x4c0,%eax
428030:	75 16                	jne    0x428048
428032:	ff 75 0c             	push   0xc(%ebp)
428035:	e8 69 5b ff ff       	call   0x41dba3
42803a:	59                   	pop    %ecx
42803b:	84 c0                	test   %al,%al
42803d:	75 09                	jne    0x428048
42803f:	ff 75 0c             	push   0xc(%ebp)
428042:	e8 82 1b 00 00       	call   0x429bc9
428047:	59                   	pop    %ecx
428048:	53                   	push   %ebx
428049:	ff 75 10             	push   0x10(%ebp)
42804c:	8b 5d 08             	mov    0x8(%ebp),%ebx
42804f:	ff 75 0c             	push   0xc(%ebp)
428052:	53                   	push   %ebx
428053:	e8 1e 00 00 00       	call   0x428076
428058:	83 c4 0c             	add    $0xc,%esp
42805b:	84 c0                	test   %al,%al
42805d:	75 11                	jne    0x428070
42805f:	8b 45 0c             	mov    0xc(%ebp),%eax
428062:	6a 10                	push   $0x10
428064:	59                   	pop    %ecx
428065:	83 c0 0c             	add    $0xc,%eax
428068:	f0 09 08             	lock or %ecx,(%eax)
42806b:	83 c8 ff             	or     $0xffffffff,%eax
42806e:	eb 03                	jmp    0x428073
428070:	0f b6 c3             	movzbl %bl,%eax
428073:	5b                   	pop    %ebx
428074:	5d                   	pop    %ebp
428075:	c3                   	ret
428076:	8b ff                	mov    %edi,%edi
428078:	55                   	push   %ebp
428079:	8b ec                	mov    %esp,%ebp
42807b:	56                   	push   %esi
42807c:	57                   	push   %edi
42807d:	ff 75 0c             	push   0xc(%ebp)
428080:	e8 bb 57 ff ff       	call   0x41d840
428085:	59                   	pop    %ecx
428086:	8b 4d 0c             	mov    0xc(%ebp),%ecx
428089:	8b d0                	mov    %eax,%edx
42808b:	8b 49 0c             	mov    0xc(%ecx),%ecx
42808e:	90                   	nop
42808f:	f6 c1 c0             	test   $0xc0,%cl
428092:	0f 84 93 00 00 00    	je     0x42812b
428098:	8b 4d 0c             	mov    0xc(%ebp),%ecx
42809b:	33 ff                	xor    %edi,%edi
42809d:	8b 41 04             	mov    0x4(%ecx),%eax
4280a0:	8b 31                	mov    (%ecx),%esi
4280a2:	2b f0                	sub    %eax,%esi
4280a4:	40                   	inc    %eax
4280a5:	89 01                	mov    %eax,(%ecx)
4280a7:	8b 45 0c             	mov    0xc(%ebp),%eax
4280aa:	8b 48 18             	mov    0x18(%eax),%ecx
4280ad:	49                   	dec    %ecx
4280ae:	89 48 08             	mov    %ecx,0x8(%eax)
4280b1:	85 f6                	test   %esi,%esi
4280b3:	7e 27                	jle    0x4280dc
4280b5:	ff 75 10             	push   0x10(%ebp)
4280b8:	8b 45 0c             	mov    0xc(%ebp),%eax
4280bb:	56                   	push   %esi
4280bc:	ff 70 04             	push   0x4(%eax)
4280bf:	52                   	push   %edx
4280c0:	e8 d7 17 00 00       	call   0x42989c
4280c5:	83 c4 10             	add    $0x10,%esp
4280c8:	8b f8                	mov    %eax,%edi
4280ca:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4280cd:	3b fe                	cmp    %esi,%edi
4280cf:	8a 45 08             	mov    0x8(%ebp),%al
4280d2:	8b 49 04             	mov    0x4(%ecx),%ecx
4280d5:	88 01                	mov    %al,(%ecx)
4280d7:	0f 94 c0             	sete   %al
4280da:	eb 68                	jmp    0x428144
4280dc:	83 fa ff             	cmp    $0xffffffff,%edx
4280df:	74 1b                	je     0x4280fc
4280e1:	83 fa fe             	cmp    $0xfffffffe,%edx
4280e4:	74 16                	je     0x4280fc
4280e6:	8b c2                	mov    %edx,%eax
4280e8:	8b ca                	mov    %edx,%ecx
4280ea:	83 e0 3f             	and    $0x3f,%eax
4280ed:	c1 f9 06             	sar    $0x6,%ecx
4280f0:	6b c0 38             	imul   $0x38,%eax,%eax
4280f3:	03 04 8d 00 f8 43 00 	add    0x43f800(,%ecx,4),%eax
4280fa:	eb 05                	jmp    0x428101
4280fc:	b8 d0 d2 43 00       	mov    $0x43d2d0,%eax
428101:	f6 40 28 20          	testb  $0x20,0x28(%eax)
428105:	74 c3                	je     0x4280ca
428107:	6a 02                	push   $0x2
428109:	57                   	push   %edi
42810a:	57                   	push   %edi
42810b:	52                   	push   %edx
42810c:	e8 8b 98 ff ff       	call   0x42199c
428111:	23 c2                	and    %edx,%eax
428113:	83 c4 10             	add    $0x10,%esp
428116:	83 f8 ff             	cmp    $0xffffffff,%eax
428119:	75 af                	jne    0x4280ca
42811b:	8b 45 0c             	mov    0xc(%ebp),%eax
42811e:	6a 10                	push   $0x10
428120:	59                   	pop    %ecx
428121:	83 c0 0c             	add    $0xc,%eax
428124:	f0 09 08             	lock or %ecx,(%eax)
428127:	b0 01                	mov    $0x1,%al
428129:	eb 19                	jmp    0x428144
42812b:	ff 75 10             	push   0x10(%ebp)
42812e:	8d 45 08             	lea    0x8(%ebp),%eax
428131:	6a 01                	push   $0x1
428133:	50                   	push   %eax
428134:	52                   	push   %edx
428135:	e8 62 17 00 00       	call   0x42989c
42813a:	83 c4 10             	add    $0x10,%esp
42813d:	48                   	dec    %eax
42813e:	f7 d8                	neg    %eax
428140:	1a c0                	sbb    %al,%al
428142:	fe c0                	inc    %al
428144:	5f                   	pop    %edi
428145:	5e                   	pop    %esi
428146:	5d                   	pop    %ebp
428147:	c3                   	ret
428148:	8b ff                	mov    %edi,%edi
42814a:	55                   	push   %ebp
42814b:	8b ec                	mov    %esp,%ebp
42814d:	8b 45 08             	mov    0x8(%ebp),%eax
428150:	83 ec 10             	sub    $0x10,%esp
428153:	8b 40 0c             	mov    0xc(%eax),%eax
428156:	90                   	nop
428157:	c1 e8 03             	shr    $0x3,%eax
42815a:	a8 01                	test   $0x1,%al
42815c:	74 04                	je     0x428162
42815e:	b0 01                	mov    $0x1,%al
428160:	c9                   	leave
428161:	c3                   	ret