ad5f96:	83 e9 01             	sub    $0x1,%ecx
ad5f99:	75 d1                	jne    0xad5f6c
ad5f9b:	33 c9                	xor    %ecx,%ecx
ad5f9d:	3a e0                	cmp    %al,%ah
ad5f9f:	74 09                	je     0xad5faa
ad5fa1:	b9 ff ff ff ff       	mov    $0xffffffff,%ecx
ad5fa6:	72 02                	jb     0xad5faa
ad5fa8:	f7 d9                	neg    %ecx
ad5faa:	8b c1                	mov    %ecx,%eax
ad5fac:	5b                   	pop    %ebx
ad5fad:	5e                   	pop    %esi
ad5fae:	5f                   	pop    %edi
ad5faf:	c9                   	leave
ad5fb0:	c3                   	ret
ad5fb1:	cc                   	int3
ad5fb2:	cc                   	int3
ad5fb3:	cc                   	int3
ad5fb4:	cc                   	int3
ad5fb5:	cc                   	int3
ad5fb6:	cc                   	int3
ad5fb7:	cc                   	int3
ad5fb8:	cc                   	int3
ad5fb9:	cc                   	int3
ad5fba:	cc                   	int3
ad5fbb:	cc                   	int3
ad5fbc:	cc                   	int3
ad5fbd:	cc                   	int3
ad5fbe:	cc                   	int3
ad5fbf:	cc                   	int3
ad5fc0:	cc                   	int3
ad5fc1:	cc                   	int3
ad5fc2:	cc                   	int3
ad5fc3:	cc                   	int3
ad5fc4:	cc                   	int3
ad5fc5:	cc                   	int3
ad5fc6:	cc                   	int3
ad5fc7:	cc                   	int3
ad5fc8:	cc                   	int3
ad5fc9:	8b ff                	mov    %edi,%edi
ad5fcb:	55                   	push   %ebp
ad5fcc:	8b ec                	mov    %esp,%ebp
ad5fce:	ff 05 28 19 d8 00    	incl   0xd81928
ad5fd4:	53                   	push   %ebx
ad5fd5:	56                   	push   %esi
ad5fd6:	8b 75 08             	mov    0x8(%ebp),%esi
ad5fd9:	bb 00 10 00 00       	mov    $0x1000,%ebx
ad5fde:	53                   	push   %ebx
ad5fdf:	e8 eb 5b 95 ff       	call   0x42bbcf
ad5fe4:	6a 00                	push   $0x0
ad5fe6:	89 46 04             	mov    %eax,0x4(%esi)
ad5fe9:	e8 f8 c1 95 ff       	call   0x4321e6
ad5fee:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
ad5ff2:	8d 46 0c             	lea    0xc(%esi),%eax
ad5ff5:	59                   	pop    %ecx
ad5ff6:	59                   	pop    %ecx
ad5ff7:	74 0b                	je     0xad6004
ad5ff9:	6a 40                	push   $0x40
ad5ffb:	59                   	pop    %ecx
ad5ffc:	f0 09 08             	lock or %ecx,(%eax)
ad5fff:	89 5e 18             	mov    %ebx,0x18(%esi)
ad6002:	eb 15                	jmp    0xad6019
ad6004:	b9 00 04 00 00       	mov    $0x400,%ecx
ad6009:	f0 09 08             	lock or %ecx,(%eax)
ad600c:	8d 46 14             	lea    0x14(%esi),%eax
ad600f:	c7 46 18 02 00 00 00 	movl   $0x2,0x18(%esi)
ad6016:	89 46 04             	mov    %eax,0x4(%esi)
ad6019:	8b 46 04             	mov    0x4(%esi),%eax
ad601c:	83 66 08 00          	andl   $0x0,0x8(%esi)
ad6020:	89 06                	mov    %eax,(%esi)
ad6022:	5e                   	pop    %esi
ad6023:	5b                   	pop    %ebx
ad6024:	5d                   	pop    %ebp
ad6025:	c3                   	ret
ad6026:	cc                   	int3
ad6027:	cc                   	int3
ad6028:	cc                   	int3
ad6029:	cc                   	int3
ad602a:	cc                   	int3
ad602b:	cc                   	int3
ad602c:	cc                   	int3
ad602d:	cc                   	int3
ad602e:	cc                   	int3
ad602f:	cc                   	int3
ad6030:	cc                   	int3
ad6031:	cc                   	int3
ad6032:	cc                   	int3
ad6033:	cc                   	int3
ad6034:	cc                   	int3
ad6035:	cc                   	int3
ad6036:	cc                   	int3
ad6037:	cc                   	int3
ad6038:	cc                   	int3
ad6039:	cc                   	int3
ad603a:	cc                   	int3
ad603b:	cc                   	int3
ad603c:	cc                   	int3
ad603d:	8b ff                	mov    %edi,%edi
ad603f:	55                   	push   %ebp
ad6040:	8b ec                	mov    %esp,%ebp
ad6042:	51                   	push   %ecx
ad6043:	51                   	push   %ecx
ad6044:	a1 24 f6 d5 00       	mov    0xd5f624,%eax
ad6049:	33 c5                	xor    %ebp,%eax
ad604b:	89 45 fc             	mov    %eax,-0x4(%ebp)
ad604e:	53                   	push   %ebx
ad604f:	56                   	push   %esi
ad6050:	8b 75 18             	mov    0x18(%ebp),%esi
ad6053:	57                   	push   %edi
ad6054:	85 f6                	test   %esi,%esi
ad6056:	7e 14                	jle    0xad606c
ad6058:	56                   	push   %esi
ad6059:	ff 75 14             	push   0x14(%ebp)
ad605c:	e8 72 5e 93 ff       	call   0x40bed3
ad6061:	59                   	pop    %ecx
ad6062:	3b c6                	cmp    %esi,%eax
ad6064:	59                   	pop    %ecx
ad6065:	8d 70 01             	lea    0x1(%eax),%esi
ad6068:	7c 02                	jl     0xad606c
ad606a:	8b f0                	mov    %eax,%esi
ad606c:	8b 7d 24             	mov    0x24(%ebp),%edi
ad606f:	85 ff                	test   %edi,%edi
ad6071:	75 0b                	jne    0xad607e
ad6073:	8b 45 08             	mov    0x8(%ebp),%eax
ad6076:	8b 00                	mov    (%eax),%eax
ad6078:	8b 78 08             	mov    0x8(%eax),%edi
ad607b:	89 7d 24             	mov    %edi,0x24(%ebp)
ad607e:	33 c0                	xor    %eax,%eax
ad6080:	39 45 28             	cmp    %eax,0x28(%ebp)
ad6083:	6a 00                	push   $0x0
ad6085:	6a 00                	push   $0x0
ad6087:	56                   	push   %esi
ad6088:	ff 75 14             	push   0x14(%ebp)
ad608b:	0f 95 c0             	setne  %al
ad608e:	8d 04 c5 01 00 00 00 	lea    0x1(,%eax,8),%eax
ad6095:	50                   	push   %eax
ad6096:	57                   	push   %edi
ad6097:	ff 15 c8 36 d8 00    	call   *0xd836c8
ad609d:	89 45 f8             	mov    %eax,-0x8(%ebp)
ad60a0:	85 c0                	test   %eax,%eax
ad60a2:	0f 84 8d 01 00 00    	je     0xad6235
ad60a8:	8d 14 00             	lea    (%eax,%eax,1),%edx
ad60ab:	8d 4a 08             	lea    0x8(%edx),%ecx
ad60ae:	3b d1                	cmp    %ecx,%edx
ad60b0:	1b c0                	sbb    %eax,%eax
ad60b2:	85 c1                	test   %eax,%ecx
ad60b4:	74 52                	je     0xad6108
ad60b6:	8d 4a 08             	lea    0x8(%edx),%ecx
ad60b9:	3b d1                	cmp    %ecx,%edx
ad60bb:	1b c0                	sbb    %eax,%eax
ad60bd:	23 c1                	and    %ecx,%eax
ad60bf:	8d 4a 08             	lea    0x8(%edx),%ecx
ad60c2:	3d 00 04 00 00       	cmp    $0x400,%eax
ad60c7:	77 1d                	ja     0xad60e6
ad60c9:	3b d1                	cmp    %ecx,%edx
ad60cb:	1b c0                	sbb    %eax,%eax
ad60cd:	23 c1                	and    %ecx,%eax
ad60cf:	e8 f6 6a 94 ff       	call   0x41cbca
ad60d4:	8b dc                	mov    %esp,%ebx
ad60d6:	85 db                	test   %ebx,%ebx
ad60d8:	0f 84 4c 01 00 00    	je     0xad622a
ad60de:	c7 03 cc cc 00 00    	movl   $0xcccc,(%ebx)
ad60e4:	eb 1d                	jmp    0xad6103
ad60e6:	3b d1                	cmp    %ecx,%edx
ad60e8:	1b c0                	sbb    %eax,%eax
ad60ea:	23 c1                	and    %ecx,%eax
ad60ec:	50                   	push   %eax
ad60ed:	e8 dd 5a 95 ff       	call   0x42bbcf
ad60f2:	8b d8                	mov    %eax,%ebx
ad60f4:	59                   	pop    %ecx
ad60f5:	85 db                	test   %ebx,%ebx
ad60f7:	0f 84 2d 01 00 00    	je     0xad622a
ad60fd:	c7 03 dd dd 00 00    	movl   $0xdddd,(%ebx)
ad6103:	83 c3 08             	add    $0x8,%ebx
ad6106:	eb 02                	jmp    0xad610a
ad6108:	33 db                	xor    %ebx,%ebx
ad610a:	85 db                	test   %ebx,%ebx
ad610c:	0f 84 18 01 00 00    	je     0xad622a
ad6112:	ff 75 f8             	push   -0x8(%ebp)
ad6115:	53                   	push   %ebx
ad6116:	56                   	push   %esi
ad6117:	ff 75 14             	push   0x14(%ebp)
ad611a:	6a 01                	push   $0x1
ad611c:	57                   	push   %edi
ad611d:	ff 15 c8 36 d8 00    	call   *0xd836c8
ad6123:	85 c0                	test   %eax,%eax
ad6125:	0f 84 ff 00 00 00    	je     0xad622a
ad612b:	8b 7d f8             	mov    -0x8(%ebp),%edi
ad612e:	33 c0                	xor    %eax,%eax
ad6130:	50                   	push   %eax
ad6131:	50                   	push   %eax
ad6132:	50                   	push   %eax
ad6133:	50                   	push   %eax
ad6134:	50                   	push   %eax
ad6135:	57                   	push   %edi
ad6136:	53                   	push   %ebx
ad6137:	ff 75 10             	push   0x10(%ebp)
ad613a:	ff 75 0c             	push   0xc(%ebp)
ad613d:	e8 d1 39 95 ff       	call   0x429b13
ad6142:	8b f0                	mov    %eax,%esi
ad6144:	85 f6                	test   %esi,%esi
ad6146:	0f 84 de 00 00 00    	je     0xad622a
ad614c:	f7 45 10 00 04 00 00 	testl  $0x400,0x10(%ebp)
ad6153:	74 38                	je     0xad618d
ad6155:	8b 45 20             	mov    0x20(%ebp),%eax
ad6158:	85 c0                	test   %eax,%eax
ad615a:	0f 84 cc 00 00 00    	je     0xad622c
ad6160:	3b f0                	cmp    %eax,%esi
ad6162:	0f 8f c2 00 00 00    	jg     0xad622a
ad6168:	33 c9                	xor    %ecx,%ecx
ad616a:	51                   	push   %ecx
ad616b:	51                   	push   %ecx
ad616c:	51                   	push   %ecx
ad616d:	50                   	push   %eax
ad616e:	ff 75 1c             	push   0x1c(%ebp)
ad6171:	57                   	push   %edi
ad6172:	53                   	push   %ebx
ad6173:	ff 75 10             	push   0x10(%ebp)
ad6176:	ff 75 0c             	push   0xc(%ebp)
ad6179:	e8 95 39 95 ff       	call   0x429b13
ad617e:	8b f0                	mov    %eax,%esi
ad6180:	85 f6                	test   %esi,%esi
ad6182:	0f 85 a4 00 00 00    	jne    0xad622c
ad6188:	e9 9d 00 00 00       	jmp    0xad622a
ad618d:	8d 14 36             	lea    (%esi,%esi,1),%edx
ad6190:	8d 4a 08             	lea    0x8(%edx),%ecx
ad6193:	3b d1                	cmp    %ecx,%edx
ad6195:	1b c0                	sbb    %eax,%eax
ad6197:	85 c1                	test   %eax,%ecx
ad6199:	74 4a                	je     0xad61e5
ad619b:	8d 4a 08             	lea    0x8(%edx),%ecx
ad619e:	3b d1                	cmp    %ecx,%edx
ad61a0:	1b c0                	sbb    %eax,%eax
ad61a2:	23 c1                	and    %ecx,%eax
ad61a4:	8d 4a 08             	lea    0x8(%edx),%ecx
ad61a7:	3d 00 04 00 00       	cmp    $0x400,%eax
ad61ac:	77 19                	ja     0xad61c7
ad61ae:	3b d1                	cmp    %ecx,%edx
ad61b0:	1b c0                	sbb    %eax,%eax
ad61b2:	23 c1                	and    %ecx,%eax
ad61b4:	e8 11 6a 94 ff       	call   0x41cbca
ad61b9:	8b fc                	mov    %esp,%edi
ad61bb:	85 ff                	test   %edi,%edi
ad61bd:	74 64                	je     0xad6223
ad61bf:	c7 07 cc cc 00 00    	movl   $0xcccc,(%edi)
ad61c5:	eb 19                	jmp    0xad61e0
ad61c7:	3b d1                	cmp    %ecx,%edx
ad61c9:	1b c0                	sbb    %eax,%eax
ad61cb:	23 c1                	and    %ecx,%eax
ad61cd:	50                   	push   %eax
ad61ce:	e8 fc 59 95 ff       	call   0x42bbcf
ad61d3:	8b f8                	mov    %eax,%edi
ad61d5:	59                   	pop    %ecx
ad61d6:	85 ff                	test   %edi,%edi
ad61d8:	74 49                	je     0xad6223
ad61da:	c7 07 dd dd 00 00    	movl   $0xdddd,(%edi)
ad61e0:	83 c7 08             	add    $0x8,%edi
ad61e3:	eb 02                	jmp    0xad61e7
ad61e5:	33 ff                	xor    %edi,%edi
ad61e7:	85 ff                	test   %edi,%edi
ad61e9:	74 38                	je     0xad6223
ad61eb:	6a 00                	push   $0x0
ad61ed:	6a 00                	push   $0x0
ad61ef:	6a 00                	push   $0x0
ad61f1:	56                   	push   %esi
ad61f2:	57                   	push   %edi
ad61f3:	ff 75 f8             	push   -0x8(%ebp)
ad61f6:	53                   	push   %ebx
ad61f7:	ff 75 10             	push   0x10(%ebp)
ad61fa:	ff 75 0c             	push   0xc(%ebp)
ad61fd:	e8 11 39 95 ff       	call   0x429b13
ad6202:	85 c0                	test   %eax,%eax
ad6204:	74 1d                	je     0xad6223
ad6206:	33 c0                	xor    %eax,%eax
ad6208:	50                   	push   %eax
ad6209:	50                   	push   %eax
ad620a:	39 45 20             	cmp    %eax,0x20(%ebp)
ad620d:	75 3a                	jne    0xad6249
ad620f:	50                   	push   %eax
ad6210:	50                   	push   %eax
ad6211:	56                   	push   %esi
ad6212:	57                   	push   %edi
ad6213:	50                   	push   %eax
ad6214:	ff 75 24             	push   0x24(%ebp)
ad6217:	ff 15 98 36 d8 00    	call   *0xd83698
ad621d:	8b f0                	mov    %eax,%esi
ad621f:	85 f6                	test   %esi,%esi
ad6221:	75 2e                	jne    0xad6251
ad6223:	57                   	push   %edi
ad6224:	e8 e4 c5 95 ff       	call   0x43280d
ad6229:	59                   	pop    %ecx
ad622a:	33 f6                	xor    %esi,%esi
ad622c:	53                   	push   %ebx
ad622d:	e8 db c5 95 ff       	call   0x43280d
ad6232:	59                   	pop    %ecx
ad6233:	8b c6                	mov    %esi,%eax
ad6235:	8d 65 ec             	lea    -0x14(%ebp),%esp
ad6238:	5f                   	pop    %edi
ad6239:	5e                   	pop    %esi
ad623a:	5b                   	pop    %ebx
ad623b:	8b 4d fc             	mov    -0x4(%ebp),%ecx
ad623e:	33 cd                	xor    %ebp,%ecx
ad6240:	e8 71 55 94 ff       	call   0x41b7b6
ad6245:	8b e5                	mov    %ebp,%esp
ad6247:	5d                   	pop    %ebp
ad6248:	c3                   	ret
ad6249:	ff 75 20             	push   0x20(%ebp)
ad624c:	ff 75 1c             	push   0x1c(%ebp)
ad624f:	eb c0                	jmp    0xad6211
ad6251:	57                   	push   %edi
ad6252:	e8 b6 c5 95 ff       	call   0x43280d
ad6257:	59                   	pop    %ecx
ad6258:	eb d2                	jmp    0xad622c
ad625a:	cc                   	int3
ad625b:	cc                   	int3
ad625c:	cc                   	int3
ad625d:	cc                   	int3
ad625e:	cc                   	int3
ad625f:	cc                   	int3
ad6260:	cc                   	int3
ad6261:	cc                   	int3
ad6262:	cc                   	int3
ad6263:	cc                   	int3
ad6264:	cc                   	int3
ad6265:	cc                   	int3
ad6266:	cc                   	int3
ad6267:	cc                   	int3
ad6268:	cc                   	int3
ad6269:	cc                   	int3
ad626a:	cc                   	int3
ad626b:	cc                   	int3
ad626c:	cc                   	int3
ad626d:	cc                   	int3
ad626e:	cc                   	int3
ad626f:	cc                   	int3
ad6270:	cc                   	int3
ad6271:	cc                   	int3
ad6272:	cc                   	int3
ad6273:	cc                   	int3
ad6274:	cc                   	int3
ad6275:	cc                   	int3
ad6276:	cc                   	int3
ad6277:	cc                   	int3
ad6278:	cc                   	int3
ad6279:	cc                   	int3
ad627a:	cc                   	int3
ad627b:	cc                   	int3
ad627c:	cc                   	int3
ad627d:	cc                   	int3
ad627e:	cc                   	int3
ad627f:	cc                   	int3