41d9a2:	e8 47 fa fe ff       	call   0x40d3ee
41d9a7:	6a 16                	push   $0x16
41d9a9:	58                   	pop    %eax
41d9aa:	5d                   	pop    %ebp
41d9ab:	c3                   	ret
41d9ac:	8b 55 0c             	mov    0xc(%ebp),%edx
41d9af:	85 d2                	test   %edx,%edx
41d9b1:	74 05                	je     0x41d9b8
41d9b3:	8d 41 04             	lea    0x4(%ecx),%eax
41d9b6:	89 02                	mov    %eax,(%edx)
41d9b8:	8b 45 10             	mov    0x10(%ebp),%eax
41d9bb:	85 c0                	test   %eax,%eax
41d9bd:	74 02                	je     0x41d9c1
41d9bf:	89 08                	mov    %ecx,(%eax)
41d9c1:	8b 55 14             	mov    0x14(%ebp),%edx
41d9c4:	85 d2                	test   %edx,%edx
41d9c6:	74 05                	je     0x41d9cd
41d9c8:	8d 41 08             	lea    0x8(%ecx),%eax
41d9cb:	89 02                	mov    %eax,(%edx)
41d9cd:	33 c0                	xor    %eax,%eax
41d9cf:	5d                   	pop    %ebp
41d9d0:	c3                   	ret
41d9d1:	8b ff                	mov    %edi,%edi
41d9d3:	55                   	push   %ebp
41d9d4:	8b ec                	mov    %esp,%ebp
41d9d6:	8b 45 08             	mov    0x8(%ebp),%eax
41d9d9:	83 c0 20             	add    $0x20,%eax
41d9dc:	50                   	push   %eax
41d9dd:	ff 15 14 10 43 00    	call   *0x431014
41d9e3:	5d                   	pop    %ebp
41d9e4:	c3                   	ret
41d9e5:	8b ff                	mov    %edi,%edi
41d9e7:	55                   	push   %ebp
41d9e8:	8b ec                	mov    %esp,%ebp
41d9ea:	8b 45 08             	mov    0x8(%ebp),%eax
41d9ed:	83 c0 20             	add    $0x20,%eax
41d9f0:	50                   	push   %eax
41d9f1:	ff 15 18 10 43 00    	call   *0x431018
41d9f7:	5d                   	pop    %ebp
41d9f8:	c3                   	ret
41d9f9:	8b 0d c0 d0 43 00    	mov    0x43d0c0,%ecx
41d9ff:	33 c0                	xor    %eax,%eax
41da01:	83 c9 01             	or     $0x1,%ecx
41da04:	39 0d f4 f7 43 00    	cmp    %ecx,0x43f7f4
41da0a:	0f 94 c0             	sete   %al
41da0d:	c3                   	ret
41da0e:	6a 10                	push   $0x10
41da10:	68 20 ae 43 00       	push   $0x43ae20
41da15:	e8 b6 ca fe ff       	call   0x40a4d0
41da1a:	8b 7d 0c             	mov    0xc(%ebp),%edi
41da1d:	33 f6                	xor    %esi,%esi
41da1f:	85 ff                	test   %edi,%edi
41da21:	75 24                	jne    0x41da47
41da23:	8b 45 10             	mov    0x10(%ebp),%eax
41da26:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
41da2a:	c7 40 18 16 00 00 00 	movl   $0x16,0x18(%eax)
41da31:	50                   	push   %eax
41da32:	56                   	push   %esi
41da33:	56                   	push   %esi
41da34:	56                   	push   %esi
41da35:	56                   	push   %esi
41da36:	56                   	push   %esi
41da37:	e8 35 f9 fe ff       	call   0x40d371
41da3c:	83 c4 18             	add    $0x18,%esp
41da3f:	83 c8 ff             	or     $0xffffffff,%eax
41da42:	e9 dd 00 00 00       	jmp    0x41db24
41da47:	89 75 e0             	mov    %esi,-0x20(%ebp)
41da4a:	57                   	push   %edi
41da4b:	e8 81 ff ff ff       	call   0x41d9d1
41da50:	59                   	pop    %ecx
41da51:	89 75 fc             	mov    %esi,-0x4(%ebp)
41da54:	8b 47 0c             	mov    0xc(%edi),%eax
41da57:	90                   	nop
41da58:	c1 e8 0c             	shr    $0xc,%eax
41da5b:	a8 01                	test   $0x1,%al
41da5d:	75 6b                	jne    0x41daca
41da5f:	57                   	push   %edi
41da60:	e8 db fd ff ff       	call   0x41d840
41da65:	59                   	pop    %ecx
41da66:	83 f8 ff             	cmp    $0xffffffff,%eax
41da69:	74 23                	je     0x41da8e
41da6b:	83 f8 fe             	cmp    $0xfffffffe,%eax
41da6e:	74 1e                	je     0x41da8e
41da70:	8b d0                	mov    %eax,%edx
41da72:	c1 fa 06             	sar    $0x6,%edx
41da75:	8b d8                	mov    %eax,%ebx
41da77:	83 e3 3f             	and    $0x3f,%ebx
41da7a:	6b cb 38             	imul   $0x38,%ebx,%ecx
41da7d:	03 0c 95 00 f8 43 00 	add    0x43f800(,%edx,4),%ecx
41da84:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
41da87:	b9 d0 d2 43 00       	mov    $0x43d2d0,%ecx
41da8c:	eb 12                	jmp    0x41daa0
41da8e:	b9 d0 d2 43 00       	mov    $0x43d2d0,%ecx
41da93:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
41da96:	8b d0                	mov    %eax,%edx
41da98:	c1 fa 06             	sar    $0x6,%edx
41da9b:	8b d8                	mov    %eax,%ebx
41da9d:	83 e3 3f             	and    $0x3f,%ebx
41daa0:	8b 7d e4             	mov    -0x1c(%ebp),%edi
41daa3:	80 7f 29 00          	cmpb   $0x0,0x29(%edi)
41daa7:	8b 7d 0c             	mov    0xc(%ebp),%edi
41daaa:	75 1a                	jne    0x41dac6
41daac:	83 f8 ff             	cmp    $0xffffffff,%eax
41daaf:	74 0f                	je     0x41dac0
41dab1:	83 f8 fe             	cmp    $0xfffffffe,%eax
41dab4:	74 0a                	je     0x41dac0
41dab6:	6b cb 38             	imul   $0x38,%ebx,%ecx
41dab9:	03 0c 95 00 f8 43 00 	add    0x43f800(,%edx,4),%ecx
41dac0:	f6 41 2d 01          	testb  $0x1,0x2d(%ecx)
41dac4:	74 04                	je     0x41daca
41dac6:	8b c6                	mov    %esi,%eax
41dac8:	eb 03                	jmp    0x41dacd
41daca:	33 c0                	xor    %eax,%eax
41dacc:	40                   	inc    %eax
41dacd:	85 c0                	test   %eax,%eax
41dacf:	75 31                	jne    0x41db02
41dad1:	8b 45 10             	mov    0x10(%ebp),%eax
41dad4:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
41dad8:	c7 40 18 16 00 00 00 	movl   $0x16,0x18(%eax)
41dadf:	50                   	push   %eax
41dae0:	56                   	push   %esi
41dae1:	56                   	push   %esi
41dae2:	56                   	push   %esi
41dae3:	56                   	push   %esi
41dae4:	56                   	push   %esi
41dae5:	e8 87 f8 fe ff       	call   0x40d371
41daea:	6a fe                	push   $0xfffffffe
41daec:	8d 45 f0             	lea    -0x10(%ebp),%eax
41daef:	50                   	push   %eax
41daf0:	68 c0 d0 43 00       	push   $0x43d0c0
41daf5:	e8 56 f1 fe ff       	call   0x40cc50
41dafa:	83 c4 24             	add    $0x24,%esp
41dafd:	e9 3d ff ff ff       	jmp    0x41da3f
41db02:	ff 75 10             	push   0x10(%ebp)
41db05:	57                   	push   %edi
41db06:	ff 75 08             	push   0x8(%ebp)
41db09:	e8 34 00 00 00       	call   0x41db42
41db0e:	83 c4 0c             	add    $0xc,%esp
41db11:	8b f0                	mov    %eax,%esi
41db13:	89 75 e0             	mov    %esi,-0x20(%ebp)
41db16:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
41db1d:	e8 18 00 00 00       	call   0x41db3a
41db22:	8b c6                	mov    %esi,%eax
41db24:	8b 4d f0             	mov    -0x10(%ebp),%ecx
41db27:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
41db2e:	59                   	pop    %ecx
41db2f:	5f                   	pop    %edi
41db30:	5e                   	pop    %esi
41db31:	5b                   	pop    %ebx
41db32:	c9                   	leave
41db33:	c3                   	ret
41db34:	8b 7d 0c             	mov    0xc(%ebp),%edi
41db37:	8b 75 e0             	mov    -0x20(%ebp),%esi
41db3a:	57                   	push   %edi
41db3b:	e8 a5 fe ff ff       	call   0x41d9e5
41db40:	59                   	pop    %ecx
41db41:	c3                   	ret
41db42:	8b ff                	mov    %edi,%edi
41db44:	55                   	push   %ebp
41db45:	8b ec                	mov    %esp,%ebp
41db47:	8b 55 0c             	mov    0xc(%ebp),%edx
41db4a:	83 6a 08 01          	subl   $0x1,0x8(%edx)
41db4e:	79 11                	jns    0x41db61
41db50:	ff 75 10             	push   0x10(%ebp)
41db53:	52                   	push   %edx
41db54:	ff 75 08             	push   0x8(%ebp)
41db57:	e8 71 a6 00 00       	call   0x4281cd
41db5c:	83 c4 0c             	add    $0xc,%esp
41db5f:	5d                   	pop    %ebp
41db60:	c3                   	ret
41db61:	8b 02                	mov    (%edx),%eax
41db63:	8a 4d 08             	mov    0x8(%ebp),%cl
41db66:	88 08                	mov    %cl,(%eax)
41db68:	ff 02                	incl   (%edx)
41db6a:	0f b6 c1             	movzbl %cl,%eax
41db6d:	5d                   	pop    %ebp
41db6e:	c3                   	ret
41db6f:	8b ff                	mov    %edi,%edi
41db71:	55                   	push   %ebp
41db72:	8b ec                	mov    %esp,%ebp
41db74:	83 ec 28             	sub    $0x28,%esp
41db77:	8d 4d d8             	lea    -0x28(%ebp),%ecx
41db7a:	56                   	push   %esi
41db7b:	6a 00                	push   $0x0
41db7d:	e8 60 f5 fe ff       	call   0x40d0e2
41db82:	8d 45 d8             	lea    -0x28(%ebp),%eax
41db85:	50                   	push   %eax
41db86:	ff 75 0c             	push   0xc(%ebp)
41db89:	ff 75 08             	push   0x8(%ebp)
41db8c:	e8 7d fe ff ff       	call   0x41da0e
41db91:	83 c4 0c             	add    $0xc,%esp
41db94:	8d 4d d8             	lea    -0x28(%ebp),%ecx
41db97:	8b f0                	mov    %eax,%esi
41db99:	e8 8c f5 fe ff       	call   0x40d12a
41db9e:	8b c6                	mov    %esi,%eax
41dba0:	5e                   	pop    %esi
41dba1:	c9                   	leave
41dba2:	c3                   	ret
41dba3:	8b ff                	mov    %edi,%edi
41dba5:	55                   	push   %ebp
41dba6:	8b ec                	mov    %esp,%ebp
41dba8:	6a 02                	push   $0x2
41dbaa:	e8 80 fd ff ff       	call   0x41d92f
41dbaf:	59                   	pop    %ecx
41dbb0:	39 45 08             	cmp    %eax,0x8(%ebp)
41dbb3:	74 28                	je     0x41dbdd
41dbb5:	6a 01                	push   $0x1
41dbb7:	e8 73 fd ff ff       	call   0x41d92f
41dbbc:	59                   	pop    %ecx
41dbbd:	39 45 08             	cmp    %eax,0x8(%ebp)
41dbc0:	75 17                	jne    0x41dbd9
41dbc2:	ff 75 08             	push   0x8(%ebp)
41dbc5:	e8 76 fc ff ff       	call   0x41d840
41dbca:	50                   	push   %eax
41dbcb:	e8 08 a6 00 00       	call   0x4281d8
41dbd0:	85 c0                	test   %eax,%eax
41dbd2:	59                   	pop    %ecx
41dbd3:	59                   	pop    %ecx
41dbd4:	0f 95 c0             	setne  %al
41dbd7:	5d                   	pop    %ebp
41dbd8:	c3                   	ret
41dbd9:	32 c0                	xor    %al,%al
41dbdb:	5d                   	pop    %ebp
41dbdc:	c3                   	ret
41dbdd:	b0 01                	mov    $0x1,%al
41dbdf:	5d                   	pop    %ebp
41dbe0:	c3                   	ret
41dbe1:	8b ff                	mov    %edi,%edi
41dbe3:	55                   	push   %ebp
41dbe4:	8b ec                	mov    %esp,%ebp
41dbe6:	53                   	push   %ebx
41dbe7:	56                   	push   %esi
41dbe8:	8b 75 08             	mov    0x8(%ebp),%esi
41dbeb:	57                   	push   %edi
41dbec:	56                   	push   %esi
41dbed:	e8 b1 ff ff ff       	call   0x41dba3
41dbf2:	59                   	pop    %ecx
41dbf3:	84 c0                	test   %al,%al
41dbf5:	0f 84 8a 00 00 00    	je     0x41dc85
41dbfb:	6a 01                	push   $0x1
41dbfd:	e8 2d fd ff ff       	call   0x41d92f
41dc02:	59                   	pop    %ecx
41dc03:	6a 02                	push   $0x2
41dc05:	5b                   	pop    %ebx
41dc06:	3b f0                	cmp    %eax,%esi
41dc08:	75 07                	jne    0x41dc11
41dc0a:	bf f8 f7 43 00       	mov    $0x43f7f8,%edi
41dc0f:	eb 10                	jmp    0x41dc21
41dc11:	53                   	push   %ebx
41dc12:	e8 18 fd ff ff       	call   0x41d92f
41dc17:	59                   	pop    %ecx
41dc18:	3b f0                	cmp    %eax,%esi
41dc1a:	75 69                	jne    0x41dc85
41dc1c:	bf fc f7 43 00       	mov    $0x43f7fc,%edi
41dc21:	ff 05 f0 f7 43 00    	incl   0x43f7f0
41dc27:	8d 4e 0c             	lea    0xc(%esi),%ecx
41dc2a:	8b 01                	mov    (%ecx),%eax
41dc2c:	90                   	nop
41dc2d:	a9 c0 04 00 00       	test   $0x4c0,%eax
41dc32:	75 51                	jne    0x41dc85
41dc34:	b8 82 02 00 00       	mov    $0x282,%eax
41dc39:	f0 09 01             	lock or %eax,(%ecx)
41dc3c:	83 3f 00             	cmpl   $0x0,(%edi)
41dc3f:	75 15                	jne    0x41dc56
41dc41:	68 00 10 00 00       	push   $0x1000
41dc46:	e8 e5 8f fe ff       	call   0x406c30
41dc4b:	6a 00                	push   $0x0
41dc4d:	89 07                	mov    %eax,(%edi)
41dc4f:	e8 bc 8f fe ff       	call   0x406c10
41dc54:	59                   	pop    %ecx
41dc55:	59                   	pop    %ecx
41dc56:	8b 0f                	mov    (%edi),%ecx
41dc58:	85 c9                	test   %ecx,%ecx
41dc5a:	75 12                	jne    0x41dc6e
41dc5c:	8d 4e 14             	lea    0x14(%esi),%ecx
41dc5f:	89 5e 08             	mov    %ebx,0x8(%esi)
41dc62:	89 4e 04             	mov    %ecx,0x4(%esi)
41dc65:	89 0e                	mov    %ecx,(%esi)
41dc67:	89 5e 18             	mov    %ebx,0x18(%esi)
41dc6a:	b0 01                	mov    $0x1,%al
41dc6c:	eb 19                	jmp    0x41dc87
41dc6e:	89 4e 04             	mov    %ecx,0x4(%esi)
41dc71:	8b 07                	mov    (%edi),%eax
41dc73:	89 06                	mov    %eax,(%esi)
41dc75:	c7 46 08 00 10 00 00 	movl   $0x1000,0x8(%esi)
41dc7c:	c7 46 18 00 10 00 00 	movl   $0x1000,0x18(%esi)
41dc83:	eb e5                	jmp    0x41dc6a
41dc85:	32 c0                	xor    %al,%al
41dc87:	5f                   	pop    %edi
41dc88:	5e                   	pop    %esi
41dc89:	5b                   	pop    %ebx
41dc8a:	5d                   	pop    %ebp
41dc8b:	c3                   	ret
41dc8c:	8b ff                	mov    %edi,%edi
41dc8e:	55                   	push   %ebp
41dc8f:	8b ec                	mov    %esp,%ebp
41dc91:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
41dc95:	74 31                	je     0x41dcc8
41dc97:	56                   	push   %esi
41dc98:	8b 75 0c             	mov    0xc(%ebp),%esi
41dc9b:	57                   	push   %edi
41dc9c:	8d 7e 0c             	lea    0xc(%esi),%edi
41dc9f:	8b 07                	mov    (%edi),%eax
41dca1:	90                   	nop
41dca2:	c1 e8 09             	shr    $0x9,%eax
41dca5:	a8 01                	test   $0x1,%al
41dca7:	74 1d                	je     0x41dcc6
41dca9:	ff 75 10             	push   0x10(%ebp)
41dcac:	56                   	push   %esi
41dcad:	e8 f2 21 00 00       	call   0x41fea4
41dcb2:	59                   	pop    %ecx
41dcb3:	59                   	pop    %ecx
41dcb4:	b8 7f fd ff ff       	mov    $0xfffffd7f,%eax
41dcb9:	f0 21 07             	lock and %eax,(%edi)
41dcbc:	33 c0                	xor    %eax,%eax
41dcbe:	89 46 18             	mov    %eax,0x18(%esi)
41dcc1:	89 46 04             	mov    %eax,0x4(%esi)
41dcc4:	89 06                	mov    %eax,(%esi)
41dcc6:	5f                   	pop    %edi
41dcc7:	5e                   	pop    %esi
41dcc8:	5d                   	pop    %ebp
41dcc9:	c3                   	ret
41dcca:	8b ff                	mov    %edi,%edi
41dccc:	55                   	push   %ebp
41dccd:	8b ec                	mov    %esp,%ebp
41dccf:	83 ec 48             	sub    $0x48,%esp
41dcd2:	8d 45 b8             	lea    -0x48(%ebp),%eax
41dcd5:	50                   	push   %eax
41dcd6:	ff 15 a0 11 43 00    	call   *0x4311a0
41dcdc:	66 83 7d ea 00       	cmpw   $0x0,-0x16(%ebp)
41dce1:	0f 84 97 00 00 00    	je     0x41dd7e
41dce7:	53                   	push   %ebx
41dce8:	8b 5d ec             	mov    -0x14(%ebp),%ebx
41dceb:	85 db                	test   %ebx,%ebx
41dced:	0f 84 8a 00 00 00    	je     0x41dd7d
41dcf3:	56                   	push   %esi
41dcf4:	8b 33                	mov    (%ebx),%esi
41dcf6:	8d 43 04             	lea    0x4(%ebx),%eax
41dcf9:	03 c6                	add    %esi,%eax
41dcfb:	89 45 fc             	mov    %eax,-0x4(%ebp)
41dcfe:	b8 00 20 00 00       	mov    $0x2000,%eax
41dd03:	3b f0                	cmp    %eax,%esi
41dd05:	7c 02                	jl     0x41dd09
41dd07:	8b f0                	mov    %eax,%esi
41dd09:	56                   	push   %esi
41dd0a:	e8 73 2b 00 00       	call   0x420882
41dd0f:	a1 00 fa 43 00       	mov    0x43fa00,%eax
41dd14:	59                   	pop    %ecx
41dd15:	3b f0                	cmp    %eax,%esi
41dd17:	7e 02                	jle    0x41dd1b