af9f59:	83 7b 3c ff          	cmpl   $0xffffffff,0x3c(%ebx)
af9f5d:	74 05                	je     0xaf9f64
af9f5f:	39 43 3c             	cmp    %eax,0x3c(%ebx)
af9f62:	7f 03                	jg     0xaf9f67
af9f64:	f0 ff 01             	lock incl (%ecx)
af9f67:	46                   	inc    %esi
af9f68:	8d 83 8c 00 00 00    	lea    0x8c(%ebx),%eax
af9f6e:	3b f7                	cmp    %edi,%esi
af9f70:	7c d5                	jl     0xaf9f47
af9f72:	5f                   	pop    %edi
af9f73:	5e                   	pop    %esi
af9f74:	5b                   	pop    %ebx
af9f75:	5d                   	pop    %ebp
af9f76:	c2 04 00             	ret    $0x4
af9f79:	cc                   	int3
af9f7a:	cc                   	int3
af9f7b:	cc                   	int3
af9f7c:	cc                   	int3
af9f7d:	cc                   	int3
af9f7e:	cc                   	int3
af9f7f:	cc                   	int3
af9f80:	cc                   	int3
af9f81:	cc                   	int3
af9f82:	cc                   	int3
af9f83:	cc                   	int3
af9f84:	cc                   	int3
af9f85:	cc                   	int3
af9f86:	cc                   	int3
af9f87:	cc                   	int3
af9f88:	cc                   	int3
af9f89:	cc                   	int3
af9f8a:	cc                   	int3
af9f8b:	83 c1 04             	add    $0x4,%ecx
af9f8e:	e9 6d 83 91 ff       	jmp    0x412300
af9f93:	cc                   	int3
af9f94:	cc                   	int3
af9f95:	55                   	push   %ebp
af9f96:	8b ec                	mov    %esp,%ebp
af9f98:	6a 0c                	push   $0xc
af9f9a:	ff 75 08             	push   0x8(%ebp)
af9f9d:	e8 fa 7e 90 ff       	call   0x401e9c
af9fa2:	59                   	pop    %ecx
af9fa3:	59                   	pop    %ecx
af9fa4:	5d                   	pop    %ebp
af9fa5:	c3                   	ret
af9fa6:	cc                   	int3
af9fa7:	cc                   	int3
af9fa8:	cc                   	int3
af9fa9:	cc                   	int3
af9faa:	8d 41 0c             	lea    0xc(%ecx),%eax
af9fad:	c3                   	ret
af9fae:	83 79 10 00          	cmpl   $0x0,0x10(%ecx)
af9fb2:	76 04                	jbe    0xaf9fb8
af9fb4:	6a 02                	push   $0x2
af9fb6:	58                   	pop    %eax
af9fb7:	c3                   	ret
af9fb8:	33 c0                	xor    %eax,%eax
af9fba:	3b 41 0c             	cmp    0xc(%ecx),%eax
af9fbd:	1b c0                	sbb    %eax,%eax
af9fbf:	f7 d8                	neg    %eax
af9fc1:	c3                   	ret
af9fc2:	cc                   	int3
af9fc3:	cc                   	int3
af9fc4:	cc                   	int3
af9fc5:	cc                   	int3
af9fc6:	cc                   	int3
af9fc7:	8b 81 00 01 00 00    	mov    0x100(%ecx),%eax
af9fcd:	c3                   	ret
af9fce:	8b 41 08             	mov    0x8(%ecx),%eax
af9fd1:	c3                   	ret
af9fd2:	8b 41 7c             	mov    0x7c(%ecx),%eax
af9fd5:	c3                   	ret
af9fd6:	8b 41 30             	mov    0x30(%ecx),%eax
af9fd9:	c3                   	ret
af9fda:	8b 41 18             	mov    0x18(%ecx),%eax
af9fdd:	85 c0                	test   %eax,%eax
af9fdf:	74 07                	je     0xaf9fe8
af9fe1:	8b 80 00 01 00 00    	mov    0x100(%eax),%eax
af9fe7:	c3                   	ret
af9fe8:	33 c0                	xor    %eax,%eax
af9fea:	c3                   	ret
af9feb:	cc                   	int3
af9fec:	cc                   	int3
af9fed:	cc                   	int3
af9fee:	cc                   	int3
af9fef:	57                   	push   %edi
af9ff0:	8b 79 18             	mov    0x18(%ecx),%edi
af9ff3:	85 ff                	test   %edi,%edi
af9ff5:	74 1a                	je     0xafa011
af9ff7:	8b bf 00 01 00 00    	mov    0x100(%edi),%edi
af9ffd:	56                   	push   %esi
af9ffe:	8b 07                	mov    (%edi),%eax
afa000:	8b 70 04             	mov    0x4(%eax),%esi
afa003:	8b ce                	mov    %esi,%ecx
afa005:	e8 5b 26 93 ff       	call   0x42c665
afa00a:	8b cf                	mov    %edi,%ecx
afa00c:	ff d6                	call   *%esi
afa00e:	5e                   	pop    %esi
afa00f:	5f                   	pop    %edi
afa010:	c3                   	ret
afa011:	83 c8 ff             	or     $0xffffffff,%eax
afa014:	5f                   	pop    %edi
afa015:	c3                   	ret
afa016:	cc                   	int3
afa017:	cc                   	int3
afa018:	cc                   	int3
afa019:	cc                   	int3
afa01a:	cc                   	int3
afa01b:	cc                   	int3
afa01c:	cc                   	int3
afa01d:	cc                   	int3
afa01e:	cc                   	int3
afa01f:	8b 41 18             	mov    0x18(%ecx),%eax
afa022:	c3                   	ret
afa023:	8b 41 1c             	mov    0x1c(%ecx),%eax
afa026:	c3                   	ret
afa027:	56                   	push   %esi
afa028:	8b f1                	mov    %ecx,%esi
afa02a:	83 7e 20 00          	cmpl   $0x0,0x20(%esi)
afa02e:	75 05                	jne    0xafa035
afa030:	e8 ce 50 93 ff       	call   0x42f103
afa035:	8b 46 20             	mov    0x20(%esi),%eax
afa038:	5e                   	pop    %esi
afa039:	c3                   	ret
afa03a:	cc                   	int3
afa03b:	cc                   	int3
afa03c:	cc                   	int3
afa03d:	cc                   	int3
afa03e:	56                   	push   %esi
afa03f:	8b f1                	mov    %ecx,%esi
afa041:	83 7e 20 00          	cmpl   $0x0,0x20(%esi)
afa045:	75 05                	jne    0xafa04c
afa047:	e8 e9 36 94 ff       	call   0x43d735
afa04c:	8b 46 20             	mov    0x20(%esi),%eax
afa04f:	5e                   	pop    %esi
afa050:	c3                   	ret
afa051:	cc                   	int3
afa052:	cc                   	int3
afa053:	cc                   	int3
afa054:	cc                   	int3
afa055:	6a 08                	push   $0x8
afa057:	b8 cd ec bb 00       	mov    $0xbbeccd,%eax
afa05c:	e8 2a 02 91 ff       	call   0x40a28b
afa061:	8b d9                	mov    %ecx,%ebx
afa063:	8b 73 04             	mov    0x4(%ebx),%esi
afa066:	33 ff                	xor    %edi,%edi
afa068:	c1 fe 04             	sar    $0x4,%esi
afa06b:	89 7d f0             	mov    %edi,-0x10(%ebp)
afa06e:	83 fe 04             	cmp    $0x4,%esi
afa071:	7d 31                	jge    0xafa0a4
afa073:	85 f6                	test   %esi,%esi
afa075:	7e 0a                	jle    0xafa081
afa077:	8b 43 08             	mov    0x8(%ebx),%eax
afa07a:	8b 44 b0 fc          	mov    -0x4(%eax,%esi,4),%eax
afa07e:	89 45 f0             	mov    %eax,-0x10(%ebp)
afa081:	6a 08                	push   $0x8
afa083:	e8 f5 08 93 ff       	call   0x42a97d
afa088:	59                   	pop    %ecx
afa089:	89 45 ec             	mov    %eax,-0x14(%ebp)
afa08c:	89 7d fc             	mov    %edi,-0x4(%ebp)
afa08f:	85 c0                	test   %eax,%eax
afa091:	74 09                	je     0xafa09c
afa093:	8b c8                	mov    %eax,%ecx
afa095:	e8 dc 9d 91 ff       	call   0x413e76
afa09a:	8b f8                	mov    %eax,%edi
afa09c:	8b 43 08             	mov    0x8(%ebx),%eax
afa09f:	89 3c b0             	mov    %edi,(%eax,%esi,4)
afa0a2:	eb 3a                	jmp    0xafa0de
afa0a4:	8b 43 08             	mov    0x8(%ebx),%eax
afa0a7:	8b 40 0c             	mov    0xc(%eax),%eax
afa0aa:	8b c8                	mov    %eax,%ecx
afa0ac:	89 45 f0             	mov    %eax,-0x10(%ebp)
afa0af:	83 ee 03             	sub    $0x3,%esi
afa0b2:	74 0b                	je     0xafa0bf
afa0b4:	89 4d f0             	mov    %ecx,-0x10(%ebp)
afa0b7:	8b 49 04             	mov    0x4(%ecx),%ecx
afa0ba:	83 ee 01             	sub    $0x1,%esi
afa0bd:	75 f5                	jne    0xafa0b4
afa0bf:	6a 08                	push   $0x8
afa0c1:	e8 b7 08 93 ff       	call   0x42a97d
afa0c6:	59                   	pop    %ecx
afa0c7:	89 45 ec             	mov    %eax,-0x14(%ebp)
afa0ca:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
afa0d1:	85 c0                	test   %eax,%eax
afa0d3:	74 09                	je     0xafa0de
afa0d5:	8b c8                	mov    %eax,%ecx
afa0d7:	e8 9a 9d 91 ff       	call   0x413e76
afa0dc:	8b f8                	mov    %eax,%edi
afa0de:	8b 45 f0             	mov    -0x10(%ebp),%eax
afa0e1:	85 c0                	test   %eax,%eax
afa0e3:	74 03                	je     0xafa0e8
afa0e5:	89 78 04             	mov    %edi,0x4(%eax)
afa0e8:	83 43 04 10          	addl   $0x10,0x4(%ebx)
afa0ec:	e8 26 43 91 ff       	call   0x40e417
afa0f1:	c3                   	ret
afa0f2:	cc                   	int3
afa0f3:	cc                   	int3
afa0f4:	cc                   	int3
afa0f5:	cc                   	int3
afa0f6:	cc                   	int3
afa0f7:	cc                   	int3
afa0f8:	cc                   	int3
afa0f9:	cc                   	int3
afa0fa:	cc                   	int3
afa0fb:	cc                   	int3
afa0fc:	cc                   	int3
afa0fd:	cc                   	int3
afa0fe:	cc                   	int3
afa0ff:	cc                   	int3
afa100:	cc                   	int3
afa101:	cc                   	int3
afa102:	cc                   	int3
afa103:	cc                   	int3
afa104:	cc                   	int3
afa105:	cc                   	int3
afa106:	cc                   	int3
afa107:	cc                   	int3
afa108:	cc                   	int3
afa109:	cc                   	int3
afa10a:	cc                   	int3
afa10b:	cc                   	int3
afa10c:	cc                   	int3
afa10d:	cc                   	int3
afa10e:	cc                   	int3
afa10f:	cc                   	int3
afa110:	cc                   	int3
afa111:	cc                   	int3
afa112:	cc                   	int3
afa113:	cc                   	int3
afa114:	cc                   	int3
afa115:	cc                   	int3
afa116:	cc                   	int3
afa117:	cc                   	int3
afa118:	cc                   	int3
afa119:	6a 24                	push   $0x24
afa11b:	b8 18 ed bb 00       	mov    $0xbbed18,%eax
afa120:	e8 66 01 91 ff       	call   0x40a28b
afa125:	8b f9                	mov    %ecx,%edi
afa127:	89 7d dc             	mov    %edi,-0x24(%ebp)
afa12a:	8b 47 08             	mov    0x8(%edi),%eax
afa12d:	33 c9                	xor    %ecx,%ecx
afa12f:	6a 04                	push   $0x4
afa131:	5a                   	pop    %edx
afa132:	8d 1c 45 02 00 00 00 	lea    0x2(,%eax,2),%ebx
afa139:	8b c3                	mov    %ebx,%eax
afa13b:	89 5d e0             	mov    %ebx,-0x20(%ebp)
afa13e:	f7 e2                	mul    %edx
afa140:	0f 90 c1             	seto   %cl
afa143:	f7 d9                	neg    %ecx
afa145:	0b c8                	or     %eax,%ecx
afa147:	51                   	push   %ecx
afa148:	e8 4a b6 93 ff       	call   0x435797
afa14d:	89 45 e8             	mov    %eax,-0x18(%ebp)
afa150:	33 c9                	xor    %ecx,%ecx
afa152:	8b 47 0c             	mov    0xc(%edi),%eax
afa155:	89 45 d4             	mov    %eax,-0x2c(%ebp)
afa158:	8b c3                	mov    %ebx,%eax
afa15a:	6a 08                	push   $0x8
afa15c:	5e                   	pop    %esi
afa15d:	f7 e6                	mul    %esi
afa15f:	89 5d d0             	mov    %ebx,-0x30(%ebp)
afa162:	0f 90 c1             	seto   %cl
afa165:	f7 d9                	neg    %ecx
afa167:	0b c8                	or     %eax,%ecx
afa169:	51                   	push   %ecx
afa16a:	e8 28 b6 93 ff       	call   0x435797
afa16f:	59                   	pop    %ecx
afa170:	59                   	pop    %ecx
afa171:	89 45 e4             	mov    %eax,-0x1c(%ebp)
afa174:	89 45 d8             	mov    %eax,-0x28(%ebp)
afa177:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
afa17b:	85 c0                	test   %eax,%eax
afa17d:	74 0f                	je     0xafa18e
afa17f:	68 bf 6c 42 00       	push   $0x426cbf
afa184:	53                   	push   %ebx
afa185:	56                   	push   %esi
afa186:	50                   	push   %eax
afa187:	e8 83 b1 93 ff       	call   0x43530f
afa18c:	eb 04                	jmp    0xafa192
afa18e:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
afa192:	8b 77 14             	mov    0x14(%edi),%esi
afa195:	8b ce                	mov    %esi,%ecx
afa197:	8b 47 10             	mov    0x10(%edi),%eax
afa19a:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
afa19e:	89 45 d0             	mov    %eax,-0x30(%ebp)
afa1a1:	89 75 d8             	mov    %esi,-0x28(%ebp)
afa1a4:	e8 1a 9e 93 ff       	call   0x433fc3
afa1a9:	8b 47 04             	mov    0x4(%edi),%eax
afa1ac:	33 d2                	xor    %edx,%edx
afa1ae:	8b 07                	mov    (%edi),%eax
afa1b0:	8b 5f 04             	mov    0x4(%edi),%ebx
afa1b3:	2b 1f                	sub    (%edi),%ebx
afa1b5:	89 45 ec             	mov    %eax,-0x14(%ebp)
afa1b8:	89 55 f0             	mov    %edx,-0x10(%ebp)
afa1bb:	85 db                	test   %ebx,%ebx
afa1bd:	7e 45                	jle    0xafa204
afa1bf:	8b 75 e4             	mov    -0x1c(%ebp),%esi
afa1c2:	8b c8                	mov    %eax,%ecx
afa1c4:	8b 47 0c             	mov    0xc(%edi),%eax
afa1c7:	23 4f 08             	and    0x8(%edi),%ecx
afa1ca:	8b 04 88             	mov    (%eax,%ecx,4),%eax
afa1cd:	8b 4d e8             	mov    -0x18(%ebp),%ecx
afa1d0:	89 04 91             	mov    %eax,(%ecx,%edx,4)
afa1d3:	8b 4f 10             	mov    0x10(%edi),%ecx
afa1d6:	8b 55 ec             	mov    -0x14(%ebp),%edx
afa1d9:	23 57 08             	and    0x8(%edi),%edx
afa1dc:	8b 7d f0             	mov    -0x10(%ebp),%edi
afa1df:	8b 04 d1             	mov    (%ecx,%edx,8),%eax
afa1e2:	89 04 fe             	mov    %eax,(%esi,%edi,8)
afa1e5:	8b 44 d1 04          	mov    0x4(%ecx,%edx,8),%eax
afa1e9:	8b d7                	mov    %edi,%edx
afa1eb:	8b 7d dc             	mov    -0x24(%ebp),%edi
afa1ee:	89 44 d6 04          	mov    %eax,0x4(%esi,%edx,8)
afa1f2:	42                   	inc    %edx
afa1f3:	8b 45 ec             	mov    -0x14(%ebp),%eax
afa1f6:	40                   	inc    %eax
afa1f7:	89 55 f0             	mov    %edx,-0x10(%ebp)
afa1fa:	89 45 ec             	mov    %eax,-0x14(%ebp)
afa1fd:	3b d3                	cmp    %ebx,%edx
afa1ff:	7c c1                	jl     0xafa1c2
afa201:	8b 75 d8             	mov    -0x28(%ebp),%esi
afa204:	8b 45 e0             	mov    -0x20(%ebp),%eax
afa207:	2b c3                	sub    %ebx,%eax
afa209:	c1 e0 02             	shl    $0x2,%eax
afa20c:	50                   	push   %eax
afa20d:	8b 45 e8             	mov    -0x18(%ebp),%eax
afa210:	6a 00                	push   $0x0
afa212:	8d 04 98             	lea    (%eax,%ebx,4),%eax
afa215:	50                   	push   %eax
afa216:	e8 9d a5 91 ff       	call   0x4147b8
afa21b:	8b 45 e8             	mov    -0x18(%ebp),%eax
afa21e:	83 c4 0c             	add    $0xc,%esp
afa221:	8b 55 e0             	mov    -0x20(%ebp),%edx
afa224:	89 47 0c             	mov    %eax,0xc(%edi)
afa227:	4a                   	dec    %edx
afa228:	8b 45 e4             	mov    -0x1c(%ebp),%eax
afa22b:	89 47 10             	mov    %eax,0x10(%edi)
afa22e:	8b 45 0c             	mov    0xc(%ebp),%eax
afa231:	c7 07 00 00 00 00    	movl   $0x0,(%edi)
afa237:	89 57 08             	mov    %edx,0x8(%edi)
afa23a:	85 c0                	test   %eax,%eax
afa23c:	74 17                	je     0xafa255
afa23e:	8b 4f 10             	mov    0x10(%edi),%ecx
afa241:	23 d3                	and    %ebx,%edx
afa243:	89 04 d1             	mov    %eax,(%ecx,%edx,8)
afa246:	8b 45 10             	mov    0x10(%ebp),%eax
afa249:	89 44 d1 04          	mov    %eax,0x4(%ecx,%edx,8)
afa24d:	8b 55 08             	mov    0x8(%ebp),%edx
afa250:	83 ca 01             	or     $0x1,%edx
afa253:	eb 03                	jmp    0xafa258