41fdc5:	8b 00                	mov    (%eax),%eax
41fdc7:	ff 30                	push   (%eax)
41fdc9:	e8 3f 01 00 00       	call   0x41ff0d
41fdce:	59                   	pop    %ecx
41fdcf:	8b f0                	mov    %eax,%esi
41fdd1:	89 75 e4             	mov    %esi,-0x1c(%ebp)
41fdd4:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
41fddb:	e8 17 00 00 00       	call   0x41fdf7
41fde0:	8b c6                	mov    %esi,%eax
41fde2:	8b 4d f0             	mov    -0x10(%ebp),%ecx
41fde5:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
41fdec:	59                   	pop    %ecx
41fded:	5f                   	pop    %edi
41fdee:	5e                   	pop    %esi
41fdef:	5b                   	pop    %ebx
41fdf0:	c9                   	leave
41fdf1:	c2 0c 00             	ret    $0xc
41fdf4:	8b 75 e4             	mov    -0x1c(%ebp),%esi
41fdf7:	8b 45 10             	mov    0x10(%ebp),%eax
41fdfa:	ff 30                	push   (%eax)
41fdfc:	e8 e4 db ff ff       	call   0x41d9e5
41fe01:	59                   	pop    %ecx
41fe02:	c3                   	ret
41fe03:	8b ff                	mov    %edi,%edi
41fe05:	55                   	push   %ebp
41fe06:	8b ec                	mov    %esp,%ebp
41fe08:	83 ec 20             	sub    $0x20,%esp
41fe0b:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
41fe0f:	8d 45 f8             	lea    -0x8(%ebp),%eax
41fe12:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
41fe16:	8d 4d ff             	lea    -0x1(%ebp),%ecx
41fe19:	89 45 e0             	mov    %eax,-0x20(%ebp)
41fe1c:	8d 45 08             	lea    0x8(%ebp),%eax
41fe1f:	89 45 e4             	mov    %eax,-0x1c(%ebp)
41fe22:	8d 45 f4             	lea    -0xc(%ebp),%eax
41fe25:	6a 08                	push   $0x8
41fe27:	89 45 e8             	mov    %eax,-0x18(%ebp)
41fe2a:	58                   	pop    %eax
41fe2b:	89 45 f0             	mov    %eax,-0x10(%ebp)
41fe2e:	89 45 ec             	mov    %eax,-0x14(%ebp)
41fe31:	8d 45 f0             	lea    -0x10(%ebp),%eax
41fe34:	50                   	push   %eax
41fe35:	8d 45 e0             	lea    -0x20(%ebp),%eax
41fe38:	50                   	push   %eax
41fe39:	8d 45 ec             	lea    -0x14(%ebp),%eax
41fe3c:	50                   	push   %eax
41fe3d:	e8 b5 fe ff ff       	call   0x41fcf7
41fe42:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
41fe46:	8b 45 f8             	mov    -0x8(%ebp),%eax
41fe49:	75 03                	jne    0x41fe4e
41fe4b:	8b 45 f4             	mov    -0xc(%ebp),%eax
41fe4e:	c9                   	leave
41fe4f:	c3                   	ret
41fe50:	8b ff                	mov    %edi,%edi
41fe52:	55                   	push   %ebp
41fe53:	8b ec                	mov    %esp,%ebp
41fe55:	8b 45 08             	mov    0x8(%ebp),%eax
41fe58:	85 c0                	test   %eax,%eax
41fe5a:	74 1d                	je     0x41fe79
41fe5c:	8b 48 0c             	mov    0xc(%eax),%ecx
41fe5f:	90                   	nop
41fe60:	8b c1                	mov    %ecx,%eax
41fe62:	c1 e8 0d             	shr    $0xd,%eax
41fe65:	a8 01                	test   $0x1,%al
41fe67:	74 10                	je     0x41fe79
41fe69:	51                   	push   %ecx
41fe6a:	e8 12 00 00 00       	call   0x41fe81
41fe6f:	59                   	pop    %ecx
41fe70:	84 c0                	test   %al,%al
41fe72:	75 09                	jne    0x41fe7d
41fe74:	8b 45 0c             	mov    0xc(%ebp),%eax
41fe77:	ff 00                	incl   (%eax)
41fe79:	32 c0                	xor    %al,%al
41fe7b:	5d                   	pop    %ebp
41fe7c:	c3                   	ret
41fe7d:	b0 01                	mov    $0x1,%al
41fe7f:	5d                   	pop    %ebp
41fe80:	c3                   	ret
41fe81:	8b ff                	mov    %edi,%edi
41fe83:	55                   	push   %ebp
41fe84:	8b ec                	mov    %esp,%ebp
41fe86:	8b 4d 08             	mov    0x8(%ebp),%ecx
41fe89:	8b c1                	mov    %ecx,%eax
41fe8b:	24 03                	and    $0x3,%al
41fe8d:	3c 02                	cmp    $0x2,%al
41fe8f:	75 09                	jne    0x41fe9a
41fe91:	f6 c1 c0             	test   $0xc0,%cl
41fe94:	74 04                	je     0x41fe9a
41fe96:	fe c8                	dec    %al
41fe98:	5d                   	pop    %ebp
41fe99:	c3                   	ret
41fe9a:	c1 e9 0b             	shr    $0xb,%ecx
41fe9d:	80 e1 01             	and    $0x1,%cl
41fea0:	8a c1                	mov    %cl,%al
41fea2:	5d                   	pop    %ebp
41fea3:	c3                   	ret
41fea4:	8b ff                	mov    %edi,%edi
41fea6:	55                   	push   %ebp
41fea7:	8b ec                	mov    %esp,%ebp
41fea9:	8b 4d 08             	mov    0x8(%ebp),%ecx
41feac:	53                   	push   %ebx
41fead:	56                   	push   %esi
41feae:	57                   	push   %edi
41feaf:	8d 71 0c             	lea    0xc(%ecx),%esi
41feb2:	8b 16                	mov    (%esi),%edx
41feb4:	90                   	nop
41feb5:	8b c2                	mov    %edx,%eax
41feb7:	24 03                	and    $0x3,%al
41feb9:	3c 02                	cmp    $0x2,%al
41febb:	75 49                	jne    0x41ff06
41febd:	f6 c2 c0             	test   $0xc0,%dl
41fec0:	74 44                	je     0x41ff06
41fec2:	8b 39                	mov    (%ecx),%edi
41fec4:	8b 59 04             	mov    0x4(%ecx),%ebx
41fec7:	2b fb                	sub    %ebx,%edi
41fec9:	89 19                	mov    %ebx,(%ecx)
41fecb:	83 61 08 00          	andl   $0x0,0x8(%ecx)
41fecf:	85 ff                	test   %edi,%edi
41fed1:	7e 33                	jle    0x41ff06
41fed3:	51                   	push   %ecx
41fed4:	e8 67 d9 ff ff       	call   0x41d840
41fed9:	ff 75 0c             	push   0xc(%ebp)
41fedc:	57                   	push   %edi
41fedd:	53                   	push   %ebx
41fede:	50                   	push   %eax
41fedf:	e8 b8 99 00 00       	call   0x42989c
41fee4:	83 c4 14             	add    $0x14,%esp
41fee7:	3b f8                	cmp    %eax,%edi
41fee9:	74 0b                	je     0x41fef6
41feeb:	6a 10                	push   $0x10
41feed:	58                   	pop    %eax
41feee:	f0 09 06             	lock or %eax,(%esi)
41fef1:	83 c8 ff             	or     $0xffffffff,%eax
41fef4:	eb 12                	jmp    0x41ff08
41fef6:	8b 06                	mov    (%esi),%eax
41fef8:	90                   	nop
41fef9:	c1 e8 02             	shr    $0x2,%eax
41fefc:	a8 01                	test   $0x1,%al
41fefe:	74 06                	je     0x41ff06
41ff00:	6a fd                	push   $0xfffffffd
41ff02:	58                   	pop    %eax
41ff03:	f0 21 06             	lock and %eax,(%esi)
41ff06:	33 c0                	xor    %eax,%eax
41ff08:	5f                   	pop    %edi
41ff09:	5e                   	pop    %esi
41ff0a:	5b                   	pop    %ebx
41ff0b:	5d                   	pop    %ebp
41ff0c:	c3                   	ret
41ff0d:	8b ff                	mov    %edi,%edi
41ff0f:	55                   	push   %ebp
41ff10:	8b ec                	mov    %esp,%ebp
41ff12:	83 ec 28             	sub    $0x28,%esp
41ff15:	8d 4d d8             	lea    -0x28(%ebp),%ecx
41ff18:	56                   	push   %esi
41ff19:	57                   	push   %edi
41ff1a:	33 f6                	xor    %esi,%esi
41ff1c:	56                   	push   %esi
41ff1d:	e8 c0 d1 fe ff       	call   0x40d0e2
41ff22:	8b 7d 08             	mov    0x8(%ebp),%edi
41ff25:	85 ff                	test   %edi,%edi
41ff27:	75 0b                	jne    0x41ff34
41ff29:	56                   	push   %esi
41ff2a:	e8 d4 fe ff ff       	call   0x41fe03
41ff2f:	59                   	pop    %ecx
41ff30:	8b f0                	mov    %eax,%esi
41ff32:	eb 30                	jmp    0x41ff64
41ff34:	8d 45 d8             	lea    -0x28(%ebp),%eax
41ff37:	50                   	push   %eax
41ff38:	57                   	push   %edi
41ff39:	e8 66 ff ff ff       	call   0x41fea4
41ff3e:	59                   	pop    %ecx
41ff3f:	59                   	pop    %ecx
41ff40:	85 c0                	test   %eax,%eax
41ff42:	75 1d                	jne    0x41ff61
41ff44:	8b 47 0c             	mov    0xc(%edi),%eax
41ff47:	90                   	nop
41ff48:	c1 e8 0b             	shr    $0xb,%eax
41ff4b:	a8 01                	test   $0x1,%al
41ff4d:	74 15                	je     0x41ff64
41ff4f:	57                   	push   %edi
41ff50:	e8 eb d8 ff ff       	call   0x41d840
41ff55:	50                   	push   %eax
41ff56:	e8 eb 90 00 00       	call   0x429046
41ff5b:	59                   	pop    %ecx
41ff5c:	59                   	pop    %ecx
41ff5d:	85 c0                	test   %eax,%eax
41ff5f:	74 03                	je     0x41ff64
41ff61:	83 ce ff             	or     $0xffffffff,%esi
41ff64:	8d 4d d8             	lea    -0x28(%ebp),%ecx
41ff67:	e8 be d1 fe ff       	call   0x40d12a
41ff6c:	5f                   	pop    %edi
41ff6d:	8b c6                	mov    %esi,%eax
41ff6f:	5e                   	pop    %esi
41ff70:	c9                   	leave
41ff71:	c3                   	ret
41ff72:	6a 01                	push   $0x1
41ff74:	e8 8a fe ff ff       	call   0x41fe03
41ff79:	59                   	pop    %ecx
41ff7a:	c3                   	ret
41ff7b:	8b ff                	mov    %edi,%edi
41ff7d:	55                   	push   %ebp
41ff7e:	8b ec                	mov    %esp,%ebp
41ff80:	83 ec 14             	sub    $0x14,%esp
41ff83:	8b 45 08             	mov    0x8(%ebp),%eax
41ff86:	89 45 f8             	mov    %eax,-0x8(%ebp)
41ff89:	85 c0                	test   %eax,%eax
41ff8b:	75 09                	jne    0x41ff96
41ff8d:	50                   	push   %eax
41ff8e:	e8 70 fe ff ff       	call   0x41fe03
41ff93:	59                   	pop    %ecx
41ff94:	c9                   	leave
41ff95:	c3                   	ret
41ff96:	8b 40 0c             	mov    0xc(%eax),%eax
41ff99:	90                   	nop
41ff9a:	50                   	push   %eax
41ff9b:	e8 e1 fe ff ff       	call   0x41fe81
41ffa0:	59                   	pop    %ecx
41ffa1:	84 c0                	test   %al,%al
41ffa3:	75 04                	jne    0x41ffa9
41ffa5:	33 c0                	xor    %eax,%eax
41ffa7:	c9                   	leave
41ffa8:	c3                   	ret
41ffa9:	8d 45 f8             	lea    -0x8(%ebp),%eax
41ffac:	89 45 f0             	mov    %eax,-0x10(%ebp)
41ffaf:	8d 4d ff             	lea    -0x1(%ebp),%ecx
41ffb2:	8b 45 f8             	mov    -0x8(%ebp),%eax
41ffb5:	89 45 f4             	mov    %eax,-0xc(%ebp)
41ffb8:	89 45 ec             	mov    %eax,-0x14(%ebp)
41ffbb:	8d 45 f4             	lea    -0xc(%ebp),%eax
41ffbe:	50                   	push   %eax
41ffbf:	8d 45 f0             	lea    -0x10(%ebp),%eax
41ffc2:	50                   	push   %eax
41ffc3:	8d 45 ec             	lea    -0x14(%ebp),%eax
41ffc6:	50                   	push   %eax
41ffc7:	e8 d7 fd ff ff       	call   0x41fda3
41ffcc:	c9                   	leave
41ffcd:	c3                   	ret
41ffce:	8b ff                	mov    %edi,%edi
41ffd0:	55                   	push   %ebp
41ffd1:	8b ec                	mov    %esp,%ebp
41ffd3:	8b 55 08             	mov    0x8(%ebp),%edx
41ffd6:	85 d2                	test   %edx,%edx
41ffd8:	75 15                	jne    0x41ffef
41ffda:	e8 92 c6 ff ff       	call   0x41c671
41ffdf:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
41ffe5:	e8 04 d4 fe ff       	call   0x40d3ee
41ffea:	83 c8 ff             	or     $0xffffffff,%eax
41ffed:	5d                   	pop    %ebp
41ffee:	c3                   	ret
41ffef:	83 6a 08 01          	subl   $0x1,0x8(%edx)
41fff3:	79 09                	jns    0x41fffe
41fff5:	52                   	push   %edx
41fff6:	e8 ee 17 00 00       	call   0x4217e9
41fffb:	59                   	pop    %ecx
41fffc:	5d                   	pop    %ebp
41fffd:	c3                   	ret
41fffe:	8b 02                	mov    (%edx),%eax
420000:	8a 08                	mov    (%eax),%cl
420002:	40                   	inc    %eax
420003:	89 02                	mov    %eax,(%edx)
420005:	0f b6 c1             	movzbl %cl,%eax
420008:	5d                   	pop    %ebp
420009:	c3                   	ret
42000a:	8b ff                	mov    %edi,%edi
42000c:	55                   	push   %ebp
42000d:	8b ec                	mov    %esp,%ebp
42000f:	5d                   	pop    %ebp
420010:	e9 b9 ff ff ff       	jmp    0x41ffce
420015:	6a 14                	push   $0x14
420017:	68 60 af 43 00       	push   $0x43af60
42001c:	e8 af a4 fe ff       	call   0x40a4d0
420021:	8b 75 08             	mov    0x8(%ebp),%esi
420024:	89 75 dc             	mov    %esi,-0x24(%ebp)
420027:	85 f6                	test   %esi,%esi
420029:	75 18                	jne    0x420043
42002b:	e8 41 c6 ff ff       	call   0x41c671
420030:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
420036:	e8 b3 d3 fe ff       	call   0x40d3ee
42003b:	83 c8 ff             	or     $0xffffffff,%eax
42003e:	e9 cd 00 00 00       	jmp    0x420110
420043:	33 ff                	xor    %edi,%edi
420045:	89 7d e0             	mov    %edi,-0x20(%ebp)
420048:	56                   	push   %esi
420049:	e8 83 d9 ff ff       	call   0x41d9d1
42004e:	59                   	pop    %ecx
42004f:	89 7d fc             	mov    %edi,-0x4(%ebp)
420052:	89 75 e4             	mov    %esi,-0x1c(%ebp)
420055:	8b 46 0c             	mov    0xc(%esi),%eax
420058:	90                   	nop
420059:	c1 e8 0c             	shr    $0xc,%eax
42005c:	a8 01                	test   $0x1,%al
42005e:	75 67                	jne    0x4200c7
420060:	56                   	push   %esi
420061:	e8 da d7 ff ff       	call   0x41d840
420066:	59                   	pop    %ecx
420067:	83 f8 ff             	cmp    $0xffffffff,%eax
42006a:	74 23                	je     0x42008f
42006c:	83 f8 fe             	cmp    $0xfffffffe,%eax
42006f:	74 1e                	je     0x42008f
420071:	8b d0                	mov    %eax,%edx
420073:	c1 fa 06             	sar    $0x6,%edx
420076:	8b d8                	mov    %eax,%ebx
420078:	83 e3 3f             	and    $0x3f,%ebx
42007b:	6b cb 38             	imul   $0x38,%ebx,%ecx
42007e:	03 0c 95 00 f8 43 00 	add    0x43f800(,%edx,4),%ecx
420085:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
420088:	b9 d0 d2 43 00       	mov    $0x43d2d0,%ecx
42008d:	eb 12                	jmp    0x4200a1
42008f:	b9 d0 d2 43 00       	mov    $0x43d2d0,%ecx
420094:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
420097:	8b d0                	mov    %eax,%edx
420099:	c1 fa 06             	sar    $0x6,%edx
42009c:	8b d8                	mov    %eax,%ebx
42009e:	83 e3 3f             	and    $0x3f,%ebx
4200a1:	8b 75 e4             	mov    -0x1c(%ebp),%esi
4200a4:	80 7e 29 00          	cmpb   $0x0,0x29(%esi)
4200a8:	8b 75 08             	mov    0x8(%ebp),%esi
4200ab:	75 1d                	jne    0x4200ca
4200ad:	83 f8 ff             	cmp    $0xffffffff,%eax
4200b0:	74 0f                	je     0x4200c1
4200b2:	83 f8 fe             	cmp    $0xfffffffe,%eax
4200b5:	74 0a                	je     0x4200c1
4200b7:	6b cb 38             	imul   $0x38,%ebx,%ecx
4200ba:	03 0c 95 00 f8 43 00 	add    0x43f800(,%edx,4),%ecx
4200c1:	f6 41 2d 01          	testb  $0x1,0x2d(%ecx)
4200c5:	75 03                	jne    0x4200ca
4200c7:	33 ff                	xor    %edi,%edi
4200c9:	47                   	inc    %edi
4200ca:	85 ff                	test   %edi,%edi
4200cc:	75 28                	jne    0x4200f6
4200ce:	e8 9e c5 ff ff       	call   0x41c671
4200d3:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4200d9:	e8 10 d3 fe ff       	call   0x40d3ee
4200de:	6a fe                	push   $0xfffffffe
4200e0:	8d 45 f0             	lea    -0x10(%ebp),%eax
4200e3:	50                   	push   %eax
4200e4:	68 c0 d0 43 00       	push   $0x43d0c0
4200e9:	e8 62 cb fe ff       	call   0x40cc50
4200ee:	83 c4 0c             	add    $0xc,%esp
4200f1:	e9 45 ff ff ff       	jmp    0x42003b
4200f6:	56                   	push   %esi
4200f7:	e8 d2 fe ff ff       	call   0x41ffce
4200fc:	59                   	pop    %ecx
4200fd:	8b f8                	mov    %eax,%edi
4200ff:	89 7d e0             	mov    %edi,-0x20(%ebp)
420102:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
420109:	e8 18 00 00 00       	call   0x420126
42010e:	8b c7                	mov    %edi,%eax
420110:	8b 4d f0             	mov    -0x10(%ebp),%ecx
420113:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0