ab8e98:	89 01                	mov    %eax,(%ecx)
ab8e9a:	8b c1                	mov    %ecx,%eax
ab8e9c:	5d                   	pop    %ebp
ab8e9d:	c2 04 00             	ret    $0x4
ab8ea0:	cc                   	int3
ab8ea1:	cc                   	int3
ab8ea2:	cc                   	int3
ab8ea3:	cc                   	int3
ab8ea4:	8b ff                	mov    %edi,%edi
ab8ea6:	55                   	push   %ebp
ab8ea7:	8b ec                	mov    %esp,%ebp
ab8ea9:	8b 45 08             	mov    0x8(%ebp),%eax
ab8eac:	89 01                	mov    %eax,(%ecx)
ab8eae:	8b 45 0c             	mov    0xc(%ebp),%eax
ab8eb1:	89 41 04             	mov    %eax,0x4(%ecx)
ab8eb4:	8b 45 10             	mov    0x10(%ebp),%eax
ab8eb7:	89 41 08             	mov    %eax,0x8(%ecx)
ab8eba:	8b 45 14             	mov    0x14(%ebp),%eax
ab8ebd:	89 41 0c             	mov    %eax,0xc(%ecx)
ab8ec0:	8b c1                	mov    %ecx,%eax
ab8ec2:	5d                   	pop    %ebp
ab8ec3:	c2 10 00             	ret    $0x10
ab8ec6:	cc                   	int3
ab8ec7:	cc                   	int3
ab8ec8:	cc                   	int3
ab8ec9:	cc                   	int3
ab8eca:	cc                   	int3
ab8ecb:	cc                   	int3
ab8ecc:	cc                   	int3
ab8ecd:	cc                   	int3
ab8ece:	8b ff                	mov    %edi,%edi
ab8ed0:	55                   	push   %ebp
ab8ed1:	8b ec                	mov    %esp,%ebp
ab8ed3:	8b 45 08             	mov    0x8(%ebp),%eax
ab8ed6:	8b 00                	mov    (%eax),%eax
ab8ed8:	89 01                	mov    %eax,(%ecx)
ab8eda:	8b c1                	mov    %ecx,%eax
ab8edc:	5d                   	pop    %ebp
ab8edd:	c2 04 00             	ret    $0x4
ab8ee0:	cc                   	int3
ab8ee1:	cc                   	int3
ab8ee2:	cc                   	int3
ab8ee3:	cc                   	int3
ab8ee4:	ff 31                	push   (%ecx)
ab8ee6:	e8 cd d0 96 ff       	call   0x425fb8
ab8eeb:	59                   	pop    %ecx
ab8eec:	c3                   	ret
ab8eed:	cc                   	int3
ab8eee:	cc                   	int3
ab8eef:	8b ff                	mov    %edi,%edi
ab8ef1:	53                   	push   %ebx
ab8ef2:	56                   	push   %esi
ab8ef3:	57                   	push   %edi
ab8ef4:	8b f9                	mov    %ecx,%edi
ab8ef6:	8b 07                	mov    (%edi),%eax
ab8ef8:	8b 18                	mov    (%eax),%ebx
ab8efa:	8b 47 04             	mov    0x4(%edi),%eax
ab8efd:	83 e3 fe             	and    $0xfffffffe,%ebx
ab8f00:	ff 30                	push   (%eax)
ab8f02:	e8 f0 18 97 ff       	call   0x42a7f7
ab8f07:	8b 47 04             	mov    0x4(%edi),%eax
ab8f0a:	ff 30                	push   (%eax)
ab8f0c:	e8 2f 1d 95 ff       	call   0x40ac40
ab8f11:	8b 47 04             	mov    0x4(%edi),%eax
ab8f14:	59                   	pop    %ecx
ab8f15:	59                   	pop    %ecx
ab8f16:	b9 1f f8 ff ff       	mov    $0xfffff81f,%ecx
ab8f1b:	8b 00                	mov    (%eax),%eax
ab8f1d:	83 c0 0c             	add    $0xc,%eax
ab8f20:	f0 21 08             	lock and %ecx,(%eax)
ab8f23:	8b 47 08             	mov    0x8(%edi),%eax
ab8f26:	f6 00 04             	testb  $0x4,(%eax)
ab8f29:	74 14                	je     0xab8f3f
ab8f2b:	8b 4f 04             	mov    0x4(%edi),%ecx
ab8f2e:	68 00 04 00 00       	push   $0x400
ab8f33:	6a 02                	push   $0x2
ab8f35:	8b 01                	mov    (%ecx),%eax
ab8f37:	83 c0 14             	add    $0x14,%eax
ab8f3a:	50                   	push   %eax
ab8f3b:	ff 31                	push   (%ecx)
ab8f3d:	eb 3e                	jmp    0xab8f7d
ab8f3f:	8b 47 0c             	mov    0xc(%edi),%eax
ab8f42:	8b 00                	mov    (%eax),%eax
ab8f44:	85 c0                	test   %eax,%eax
ab8f46:	75 29                	jne    0xab8f71
ab8f48:	53                   	push   %ebx
ab8f49:	e8 81 2c 97 ff       	call   0x42bbcf
ab8f4e:	6a 00                	push   $0x0
ab8f50:	8b f0                	mov    %eax,%esi
ab8f52:	e8 8f 92 97 ff       	call   0x4321e6
ab8f57:	59                   	pop    %ecx
ab8f58:	59                   	pop    %ecx
ab8f59:	85 f6                	test   %esi,%esi
ab8f5b:	75 0b                	jne    0xab8f68
ab8f5d:	ff 05 28 19 d8 00    	incl   0xd81928
ab8f63:	83 c8 ff             	or     $0xffffffff,%eax
ab8f66:	eb 1d                	jmp    0xab8f85
ab8f68:	68 40 01 00 00       	push   $0x140
ab8f6d:	53                   	push   %ebx
ab8f6e:	56                   	push   %esi
ab8f6f:	eb 07                	jmp    0xab8f78
ab8f71:	68 80 01 00 00       	push   $0x180
ab8f76:	53                   	push   %ebx
ab8f77:	50                   	push   %eax
ab8f78:	8b 47 04             	mov    0x4(%edi),%eax
ab8f7b:	ff 30                	push   (%eax)
ab8f7d:	e8 38 00 00 00       	call   0xab8fba
ab8f82:	83 c4 10             	add    $0x10,%esp
ab8f85:	5f                   	pop    %edi
ab8f86:	5e                   	pop    %esi
ab8f87:	5b                   	pop    %ebx
ab8f88:	c3                   	ret
ab8f89:	cc                   	int3
ab8f8a:	cc                   	int3
ab8f8b:	cc                   	int3
ab8f8c:	cc                   	int3
ab8f8d:	cc                   	int3
ab8f8e:	cc                   	int3
ab8f8f:	cc                   	int3
ab8f90:	cc                   	int3
ab8f91:	cc                   	int3
ab8f92:	cc                   	int3
ab8f93:	cc                   	int3
ab8f94:	cc                   	int3
ab8f95:	cc                   	int3
ab8f96:	cc                   	int3
ab8f97:	cc                   	int3
ab8f98:	cc                   	int3
ab8f99:	cc                   	int3
ab8f9a:	cc                   	int3
ab8f9b:	cc                   	int3
ab8f9c:	cc                   	int3
ab8f9d:	cc                   	int3
ab8f9e:	cc                   	int3
ab8f9f:	cc                   	int3
ab8fa0:	cc                   	int3
ab8fa1:	cc                   	int3
ab8fa2:	cc                   	int3
ab8fa3:	cc                   	int3
ab8fa4:	cc                   	int3
ab8fa5:	cc                   	int3
ab8fa6:	cc                   	int3
ab8fa7:	cc                   	int3
ab8fa8:	cc                   	int3
ab8fa9:	cc                   	int3
ab8faa:	cc                   	int3
ab8fab:	cc                   	int3
ab8fac:	cc                   	int3
ab8fad:	cc                   	int3
ab8fae:	cc                   	int3
ab8faf:	ff 31                	push   (%ecx)
ab8fb1:	e8 1f d2 95 ff       	call   0x4161d5
ab8fb6:	59                   	pop    %ecx
ab8fb7:	c3                   	ret
ab8fb8:	cc                   	int3
ab8fb9:	cc                   	int3
ab8fba:	8b ff                	mov    %edi,%edi
ab8fbc:	55                   	push   %ebp
ab8fbd:	8b ec                	mov    %esp,%ebp
ab8fbf:	8b 45 08             	mov    0x8(%ebp),%eax
ab8fc2:	8b 4d 14             	mov    0x14(%ebp),%ecx
ab8fc5:	83 c0 0c             	add    $0xc,%eax
ab8fc8:	f0 09 08             	lock or %ecx,(%eax)
ab8fcb:	8b 4d 08             	mov    0x8(%ebp),%ecx
ab8fce:	8b 45 10             	mov    0x10(%ebp),%eax
ab8fd1:	89 41 18             	mov    %eax,0x18(%ecx)
ab8fd4:	8b 45 08             	mov    0x8(%ebp),%eax
ab8fd7:	8b 4d 0c             	mov    0xc(%ebp),%ecx
ab8fda:	89 08                	mov    %ecx,(%eax)
ab8fdc:	8b 45 08             	mov    0x8(%ebp),%eax
ab8fdf:	89 48 04             	mov    %ecx,0x4(%eax)
ab8fe2:	8b 45 08             	mov    0x8(%ebp),%eax
ab8fe5:	83 60 08 00          	andl   $0x0,0x8(%eax)
ab8fe9:	33 c0                	xor    %eax,%eax
ab8feb:	5d                   	pop    %ebp
ab8fec:	c3                   	ret
ab8fed:	cc                   	int3
ab8fee:	cc                   	int3
ab8fef:	cc                   	int3
ab8ff0:	cc                   	int3
ab8ff1:	cc                   	int3
ab8ff2:	cc                   	int3
ab8ff3:	cc                   	int3
ab8ff4:	cc                   	int3
ab8ff5:	cc                   	int3
ab8ff6:	cc                   	int3
ab8ff7:	cc                   	int3
ab8ff8:	cc                   	int3
ab8ff9:	8b ff                	mov    %edi,%edi
ab8ffb:	55                   	push   %ebp
ab8ffc:	8b ec                	mov    %esp,%ebp
ab8ffe:	83 ec 14             	sub    $0x14,%esp
ab9001:	8b 4d 08             	mov    0x8(%ebp),%ecx
ab9004:	89 4d fc             	mov    %ecx,-0x4(%ebp)
ab9007:	85 c9                	test   %ecx,%ecx
ab9009:	75 15                	jne    0xab9020
ab900b:	e8 5f 58 98 ff       	call   0x43e86f
ab9010:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
ab9016:	e8 dd 62 96 ff       	call   0x41f2f8
ab901b:	83 c8 ff             	or     $0xffffffff,%eax
ab901e:	eb 4b                	jmp    0xab906b
ab9020:	8b 45 10             	mov    0x10(%ebp),%eax
ab9023:	83 f8 04             	cmp    $0x4,%eax
ab9026:	74 09                	je     0xab9031
ab9028:	85 c0                	test   %eax,%eax
ab902a:	74 0e                	je     0xab903a
ab902c:	83 f8 40             	cmp    $0x40,%eax
ab902f:	75 da                	jne    0xab900b
ab9031:	85 c0                	test   %eax,%eax
ab9033:	74 05                	je     0xab903a
ab9035:	83 f8 40             	cmp    $0x40,%eax
ab9038:	75 0d                	jne    0xab9047
ab903a:	8b 45 14             	mov    0x14(%ebp),%eax
ab903d:	83 c0 fe             	add    $0xfffffffe,%eax
ab9040:	3d fd ff ff 7f       	cmp    $0x7ffffffd,%eax
ab9045:	77 c4                	ja     0xab900b
ab9047:	8d 45 14             	lea    0x14(%ebp),%eax
ab904a:	89 45 ec             	mov    %eax,-0x14(%ebp)
ab904d:	8d 45 fc             	lea    -0x4(%ebp),%eax
ab9050:	89 45 f0             	mov    %eax,-0x10(%ebp)
ab9053:	8d 45 10             	lea    0x10(%ebp),%eax
ab9056:	89 45 f4             	mov    %eax,-0xc(%ebp)
ab9059:	8d 45 0c             	lea    0xc(%ebp),%eax
ab905c:	89 45 f8             	mov    %eax,-0x8(%ebp)
ab905f:	8d 45 ec             	lea    -0x14(%ebp),%eax
ab9062:	50                   	push   %eax
ab9063:	51                   	push   %ecx
ab9064:	e8 d9 b4 95 ff       	call   0x414542
ab9069:	59                   	pop    %ecx
ab906a:	59                   	pop    %ecx
ab906b:	8b e5                	mov    %ebp,%esp
ab906d:	5d                   	pop    %ebp
ab906e:	c3                   	ret
ab906f:	cc                   	int3
ab9070:	cc                   	int3
ab9071:	cc                   	int3
ab9072:	cc                   	int3
ab9073:	cc                   	int3
ab9074:	cc                   	int3
ab9075:	cc                   	int3
ab9076:	cc                   	int3
ab9077:	cc                   	int3
ab9078:	cc                   	int3
ab9079:	cc                   	int3
ab907a:	cc                   	int3
ab907b:	cc                   	int3
ab907c:	cc                   	int3
ab907d:	cc                   	int3
ab907e:	cc                   	int3
ab907f:	cc                   	int3
ab9080:	cc                   	int3
ab9081:	cc                   	int3
ab9082:	cc                   	int3
ab9083:	cc                   	int3
ab9084:	cc                   	int3
ab9085:	cc                   	int3
ab9086:	cc                   	int3
ab9087:	cc                   	int3
ab9088:	cc                   	int3
ab9089:	cc                   	int3
ab908a:	cc                   	int3
ab908b:	cc                   	int3
ab908c:	6a 28                	push   $0x28
ab908e:	68 40 bf d4 00       	push   $0xd4bf40
ab9093:	e8 dc b2 97 ff       	call   0x434374
ab9098:	33 c0                	xor    %eax,%eax
ab909a:	8b 4d 08             	mov    0x8(%ebp),%ecx
ab909d:	85 c9                	test   %ecx,%ecx
ab909f:	0f 95 c0             	setne  %al
ab90a2:	85 c0                	test   %eax,%eax
ab90a4:	75 21                	jne    0xab90c7
ab90a6:	e8 09 5c 95 ff       	call   0x40ecb4
ab90ab:	83 20 00             	andl   $0x0,(%eax)
ab90ae:	e8 bc 57 98 ff       	call   0x43e86f
ab90b3:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
ab90b9:	e8 3a 62 96 ff       	call   0x41f2f8
ab90be:	83 c8 ff             	or     $0xffffffff,%eax
ab90c1:	e8 ef 08 97 ff       	call   0x4299b5
ab90c6:	c3                   	ret
ab90c7:	83 cf ff             	or     $0xffffffff,%edi
ab90ca:	89 79 04             	mov    %edi,0x4(%ecx)
ab90cd:	89 39                	mov    %edi,(%ecx)
ab90cf:	8b 55 10             	mov    0x10(%ebp),%edx
ab90d2:	8b c2                	mov    %edx,%eax
ab90d4:	25 7f 3f ff ff       	and    $0xffff3f7f,%eax
ab90d9:	f7 d8                	neg    %eax
ab90db:	1b c0                	sbb    %eax,%eax
ab90dd:	83 c0 01             	add    $0x1,%eax
ab90e0:	75 1c                	jne    0xab90fe
ab90e2:	e8 cd 5b 95 ff       	call   0x40ecb4
ab90e7:	83 20 00             	andl   $0x0,(%eax)
ab90ea:	e8 80 57 98 ff       	call   0x43e86f
ab90ef:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
ab90f5:	e8 fe 61 96 ff       	call   0x41f2f8
ab90fa:	8b c7                	mov    %edi,%eax
ab90fc:	eb c3                	jmp    0xab90c1
ab90fe:	8b c2                	mov    %edx,%eax
ab9100:	be 00 c0 00 00       	mov    $0xc000,%esi
ab9105:	23 c6                	and    %esi,%eax
ab9107:	33 c9                	xor    %ecx,%ecx
ab9109:	3b c6                	cmp    %esi,%eax
ab910b:	0f 95 c1             	setne  %cl
ab910e:	85 c9                	test   %ecx,%ecx
ab9110:	74 d0                	je     0xab90e2
ab9112:	c7 45 c8 0c 00 00 00 	movl   $0xc,-0x38(%ebp)
ab9119:	33 db                	xor    %ebx,%ebx
ab911b:	89 5d cc             	mov    %ebx,-0x34(%ebp)
ab911e:	8b c2                	mov    %edx,%eax
ab9120:	c1 e8 07             	shr    $0x7,%eax
ab9123:	f7 d0                	not    %eax
ab9125:	83 e0 01             	and    $0x1,%eax
ab9128:	89 45 d0             	mov    %eax,-0x30(%ebp)
ab912b:	ff 75 0c             	push   0xc(%ebp)
ab912e:	8d 45 c8             	lea    -0x38(%ebp),%eax
ab9131:	50                   	push   %eax
ab9132:	8d 45 e0             	lea    -0x20(%ebp),%eax
ab9135:	50                   	push   %eax
ab9136:	8d 45 e4             	lea    -0x1c(%ebp),%eax
ab9139:	50                   	push   %eax
ab913a:	ff 15 cc 35 d8 00    	call   *0xd835cc
ab9140:	85 c0                	test   %eax,%eax
ab9142:	75 0f                	jne    0xab9153
ab9144:	ff 15 d4 36 d8 00    	call   *0xd836d4
ab914a:	50                   	push   %eax
ab914b:	e8 85 67 95 ff       	call   0x40f8d5
ab9150:	59                   	pop    %ecx
ab9151:	eb a7                	jmp    0xab90fa
ab9153:	e8 a8 9c 94 ff       	call   0x402e00
ab9158:	8b f0                	mov    %eax,%esi
ab915a:	89 75 dc             	mov    %esi,-0x24(%ebp)
ab915d:	3b f7                	cmp    %edi,%esi
ab915f:	75 29                	jne    0xab918a
ab9161:	e8 09 57 98 ff       	call   0x43e86f
ab9166:	c7 00 18 00 00 00    	movl   $0x18,(%eax)
ab916c:	e8 43 5b 95 ff       	call   0x40ecb4
ab9171:	89 18                	mov    %ebx,(%eax)
ab9173:	ff 75 e4             	push   -0x1c(%ebp)
ab9176:	ff 15 84 36 d8 00    	call   *0xd83684
ab917c:	ff 75 e0             	push   -0x20(%ebp)
ab917f:	ff 15 84 36 d8 00    	call   *0xd83684
ab9185:	e9 70 ff ff ff       	jmp    0xab90fa
ab918a:	89 5d fc             	mov    %ebx,-0x4(%ebp)
ab918d:	8b d6                	mov    %esi,%edx
ab918f:	c1 fa 06             	sar    $0x6,%edx
ab9192:	8b c6                	mov    %esi,%eax
ab9194:	83 e0 3f             	and    $0x3f,%eax
ab9197:	6b c8 30             	imul   $0x30,%eax,%ecx
ab919a:	8b 04 95 50 26 d8 00 	mov    0xd82650(,%edx,4),%eax
ab91a1:	c6 44 08 28 89       	movb   $0x89,0x28(%eax,%ecx,1)
ab91a6:	8b 04 95 50 26 d8 00 	mov    0xd82650(,%edx,4),%eax