423f57:	8b d7                	mov    %edi,%edx
423f59:	c1 fa 06             	sar    $0x6,%edx
423f5c:	89 34 b8             	mov    %esi,(%eax,%edi,4)
423f5f:	8b c7                	mov    %edi,%eax
423f61:	83 e0 3f             	and    $0x3f,%eax
423f64:	6b c8 38             	imul   $0x38,%eax,%ecx
423f67:	8b 04 95 c0 6d 45 00 	mov    0x456dc0(,%edx,4),%eax
423f6e:	8b 44 08 18          	mov    0x18(%eax,%ecx,1),%eax
423f72:	83 f8 ff             	cmp    $0xffffffff,%eax
423f75:	74 09                	je     0x423f80
423f77:	83 f8 fe             	cmp    $0xfffffffe,%eax
423f7a:	74 04                	je     0x423f80
423f7c:	85 c0                	test   %eax,%eax
423f7e:	75 07                	jne    0x423f87
423f80:	c7 46 10 fe ff ff ff 	movl   $0xfffffffe,0x10(%esi)
423f87:	83 c6 38             	add    $0x38,%esi
423f8a:	47                   	inc    %edi
423f8b:	81 fe 30 51 45 00    	cmp    $0x455130,%esi
423f91:	75 af                	jne    0x423f42
423f93:	5f                   	pop    %edi
423f94:	33 c0                	xor    %eax,%eax
423f96:	5e                   	pop    %esi
423f97:	c3                   	ret
423f98:	cc                   	int3
423f99:	cc                   	int3
423f9a:	cc                   	int3
423f9b:	cc                   	int3
423f9c:	cc                   	int3
423f9d:	cc                   	int3
423f9e:	cc                   	int3
423f9f:	cc                   	int3
423fa0:	8b ff                	mov    %edi,%edi
423fa2:	56                   	push   %esi
423fa3:	e8 68 fd ff ff       	call   0x423d10
423fa8:	e8 59 9a 00 00       	call   0x42da06
423fad:	33 f6                	xor    %esi,%esi
423faf:	a1 c4 69 45 00       	mov    0x4569c4,%eax
423fb4:	ff 34 06             	push   (%esi,%eax,1)
423fb7:	e8 27 81 00 00       	call   0x42c0e3
423fbc:	a1 c4 69 45 00       	mov    0x4569c4,%eax
423fc1:	59                   	pop    %ecx
423fc2:	8b 04 06             	mov    (%esi,%eax,1),%eax
423fc5:	83 c0 20             	add    $0x20,%eax
423fc8:	50                   	push   %eax
423fc9:	ff 15 e8 e0 43 00    	call   *0x43e0e8
423fcf:	83 c6 04             	add    $0x4,%esi
423fd2:	83 fe 0c             	cmp    $0xc,%esi
423fd5:	75 d8                	jne    0x423faf
423fd7:	ff 35 c4 69 45 00    	push   0x4569c4
423fdd:	e8 d8 68 00 00       	call   0x42a8ba
423fe2:	83 25 c4 69 45 00 00 	andl   $0x0,0x4569c4
423fe9:	59                   	pop    %ecx
423fea:	5e                   	pop    %esi
423feb:	c3                   	ret
423fec:	8b ff                	mov    %edi,%edi
423fee:	55                   	push   %ebp
423fef:	8b ec                	mov    %esp,%ebp
423ff1:	8b 45 08             	mov    0x8(%ebp),%eax
423ff4:	83 c0 20             	add    $0x20,%eax
423ff7:	50                   	push   %eax
423ff8:	ff 15 f8 e0 43 00    	call   *0x43e0f8
423ffe:	5d                   	pop    %ebp
423fff:	c3                   	ret
424000:	8b ff                	mov    %edi,%edi
424002:	55                   	push   %ebp
424003:	8b ec                	mov    %esp,%ebp
424005:	8b 45 08             	mov    0x8(%ebp),%eax
424008:	83 c0 20             	add    $0x20,%eax
42400b:	50                   	push   %eax
42400c:	ff 15 fc e0 43 00    	call   *0x43e0fc
424012:	5d                   	pop    %ebp
424013:	c3                   	ret
424014:	cc                   	int3
424015:	cc                   	int3
424016:	cc                   	int3
424017:	cc                   	int3
424018:	cc                   	int3
424019:	cc                   	int3
42401a:	cc                   	int3
42401b:	cc                   	int3
42401c:	cc                   	int3
42401d:	cc                   	int3
42401e:	cc                   	int3
42401f:	cc                   	int3
424020:	53                   	push   %ebx
424021:	56                   	push   %esi
424022:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
424026:	8b 54 24 10          	mov    0x10(%esp),%edx
42402a:	8b 5c 24 14          	mov    0x14(%esp),%ebx
42402e:	f7 c3 ff ff ff ff    	test   $0xffffffff,%ebx
424034:	74 50                	je     0x424086
424036:	2b ca                	sub    %edx,%ecx
424038:	f7 c2 03 00 00 00    	test   $0x3,%edx
42403e:	74 17                	je     0x424057
424040:	0f b6 04 11          	movzbl (%ecx,%edx,1),%eax
424044:	3a 02                	cmp    (%edx),%al
424046:	75 48                	jne    0x424090
424048:	85 c0                	test   %eax,%eax
42404a:	74 3a                	je     0x424086
42404c:	42                   	inc    %edx
42404d:	83 eb 01             	sub    $0x1,%ebx
424050:	76 34                	jbe    0x424086
424052:	f6 c2 03             	test   $0x3,%dl
424055:	75 e9                	jne    0x424040
424057:	8d 04 11             	lea    (%ecx,%edx,1),%eax
42405a:	25 ff 0f 00 00       	and    $0xfff,%eax
42405f:	3d fc 0f 00 00       	cmp    $0xffc,%eax
424064:	77 da                	ja     0x424040
424066:	8b 04 11             	mov    (%ecx,%edx,1),%eax
424069:	3b 02                	cmp    (%edx),%eax
42406b:	75 d3                	jne    0x424040
42406d:	83 eb 04             	sub    $0x4,%ebx
424070:	76 14                	jbe    0x424086
424072:	8d b0 ff fe fe fe    	lea    -0x1010101(%eax),%esi
424078:	83 c2 04             	add    $0x4,%edx
42407b:	f7 d0                	not    %eax
42407d:	23 c6                	and    %esi,%eax
42407f:	a9 80 80 80 80       	test   $0x80808080,%eax
424084:	74 d1                	je     0x424057
424086:	33 c0                	xor    %eax,%eax
424088:	5e                   	pop    %esi
424089:	5b                   	pop    %ebx
42408a:	c3                   	ret
42408b:	eb 03                	jmp    0x424090
42408d:	cc                   	int3
42408e:	cc                   	int3
42408f:	cc                   	int3
424090:	1b c0                	sbb    %eax,%eax
424092:	83 c8 01             	or     $0x1,%eax
424095:	5e                   	pop    %esi
424096:	5b                   	pop    %ebx
424097:	c3                   	ret
424098:	8b ff                	mov    %edi,%edi
42409a:	55                   	push   %ebp
42409b:	8b ec                	mov    %esp,%ebp
42409d:	83 ec 14             	sub    $0x14,%esp
4240a0:	53                   	push   %ebx
4240a1:	8b 5d 10             	mov    0x10(%ebp),%ebx
4240a4:	56                   	push   %esi
4240a5:	57                   	push   %edi
4240a6:	85 db                	test   %ebx,%ebx
4240a8:	74 1d                	je     0x4240c7
4240aa:	8b 75 14             	mov    0x14(%ebp),%esi
4240ad:	85 f6                	test   %esi,%esi
4240af:	74 16                	je     0x4240c7
4240b1:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
4240b5:	75 17                	jne    0x4240ce
4240b7:	e8 74 f9 ff ff       	call   0x423a30
4240bc:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4240c2:	e8 bc b8 ff ff       	call   0x41f983
4240c7:	33 c0                	xor    %eax,%eax
4240c9:	5f                   	pop    %edi
4240ca:	5e                   	pop    %esi
4240cb:	5b                   	pop    %ebx
4240cc:	c9                   	leave
4240cd:	c3                   	ret
4240ce:	8b 4d 18             	mov    0x18(%ebp),%ecx
4240d1:	8b 7d 0c             	mov    0xc(%ebp),%edi
4240d4:	85 c9                	test   %ecx,%ecx
4240d6:	74 0b                	je     0x4240e3
4240d8:	83 c8 ff             	or     $0xffffffff,%eax
4240db:	33 d2                	xor    %edx,%edx
4240dd:	f7 f3                	div    %ebx
4240df:	3b f0                	cmp    %eax,%esi
4240e1:	76 25                	jbe    0x424108
4240e3:	83 ff ff             	cmp    $0xffffffff,%edi
4240e6:	74 11                	je     0x4240f9
4240e8:	57                   	push   %edi
4240e9:	6a 00                	push   $0x0
4240eb:	ff 75 08             	push   0x8(%ebp)
4240ee:	e8 1d 7b ff ff       	call   0x41bc10
4240f3:	8b 4d 18             	mov    0x18(%ebp),%ecx
4240f6:	83 c4 0c             	add    $0xc,%esp
4240f9:	85 c9                	test   %ecx,%ecx
4240fb:	74 ba                	je     0x4240b7
4240fd:	83 c8 ff             	or     $0xffffffff,%eax
424100:	33 d2                	xor    %edx,%edx
424102:	f7 f3                	div    %ebx
424104:	3b f0                	cmp    %eax,%esi
424106:	77 af                	ja     0x4240b7
424108:	8d 41 0c             	lea    0xc(%ecx),%eax
42410b:	89 45 ec             	mov    %eax,-0x14(%ebp)
42410e:	8b 00                	mov    (%eax),%eax
424110:	90                   	nop
424111:	a9 c0 04 00 00       	test   $0x4c0,%eax
424116:	74 08                	je     0x424120
424118:	8b 41 18             	mov    0x18(%ecx),%eax
42411b:	89 45 f4             	mov    %eax,-0xc(%ebp)
42411e:	eb 07                	jmp    0x424127
424120:	c7 45 f4 00 10 00 00 	movl   $0x1000,-0xc(%ebp)
424127:	8b 45 08             	mov    0x8(%ebp),%eax
42412a:	8b f3                	mov    %ebx,%esi
42412c:	0f af 75 14          	imul   0x14(%ebp),%esi
424130:	8b d7                	mov    %edi,%edx
424132:	89 45 f0             	mov    %eax,-0x10(%ebp)
424135:	8b de                	mov    %esi,%ebx
424137:	85 f6                	test   %esi,%esi
424139:	e9 e4 00 00 00       	jmp    0x424222
42413e:	8b 41 0c             	mov    0xc(%ecx),%eax
424141:	90                   	nop
424142:	a9 c0 04 00 00       	test   $0x4c0,%eax
424147:	74 47                	je     0x424190
424149:	8b 41 08             	mov    0x8(%ecx),%eax
42414c:	89 45 f8             	mov    %eax,-0x8(%ebp)
42414f:	85 c0                	test   %eax,%eax
424151:	74 3d                	je     0x424190
424153:	0f 88 fd 00 00 00    	js     0x424256
424159:	3b d8                	cmp    %eax,%ebx
42415b:	73 05                	jae    0x424162
42415d:	8b c3                	mov    %ebx,%eax
42415f:	89 5d f8             	mov    %ebx,-0x8(%ebp)
424162:	3b c2                	cmp    %edx,%eax
424164:	0f 87 c9 00 00 00    	ja     0x424233
42416a:	50                   	push   %eax
42416b:	ff 31                	push   (%ecx)
42416d:	52                   	push   %edx
42416e:	ff 75 f0             	push   -0x10(%ebp)
424171:	e8 b5 01 00 00       	call   0x42432b
424176:	8b 4d 18             	mov    0x18(%ebp),%ecx
424179:	83 c4 10             	add    $0x10,%esp
42417c:	8b 45 f8             	mov    -0x8(%ebp),%eax
42417f:	2b d8                	sub    %eax,%ebx
424181:	8b 55 fc             	mov    -0x4(%ebp),%edx
424184:	29 41 08             	sub    %eax,0x8(%ecx)
424187:	01 01                	add    %eax,(%ecx)
424189:	2b d0                	sub    %eax,%edx
42418b:	e9 8d 00 00 00       	jmp    0x42421d
424190:	3b 5d f4             	cmp    -0xc(%ebp),%ebx
424193:	72 62                	jb     0x4241f7
424195:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
42419a:	3b d8                	cmp    %eax,%ebx
42419c:	76 05                	jbe    0x4241a3
42419e:	89 45 f8             	mov    %eax,-0x8(%ebp)
4241a1:	eb 05                	jmp    0x4241a8
4241a3:	8b c3                	mov    %ebx,%eax
4241a5:	89 5d f8             	mov    %ebx,-0x8(%ebp)
4241a8:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
4241ac:	74 0d                	je     0x4241bb
4241ae:	33 d2                	xor    %edx,%edx
4241b0:	f7 75 f4             	divl   -0xc(%ebp)
4241b3:	8b 45 f8             	mov    -0x8(%ebp),%eax
4241b6:	2b c2                	sub    %edx,%eax
4241b8:	8b 55 fc             	mov    -0x4(%ebp),%edx
4241bb:	89 45 f8             	mov    %eax,-0x8(%ebp)
4241be:	3b c2                	cmp    %edx,%eax
4241c0:	77 71                	ja     0x424233
4241c2:	ff 75 f8             	push   -0x8(%ebp)
4241c5:	8b 41 04             	mov    0x4(%ecx),%eax
4241c8:	ff 75 f0             	push   -0x10(%ebp)
4241cb:	83 61 08 00          	andl   $0x0,0x8(%ecx)
4241cf:	51                   	push   %ecx
4241d0:	89 01                	mov    %eax,(%ecx)
4241d2:	e8 61 75 00 00       	call   0x42b738
4241d7:	59                   	pop    %ecx
4241d8:	50                   	push   %eax
4241d9:	e8 24 9f 00 00       	call   0x42e102
4241de:	83 c4 0c             	add    $0xc,%esp
4241e1:	85 c0                	test   %eax,%eax
4241e3:	0f 84 84 00 00 00    	je     0x42426d
4241e9:	78 6b                	js     0x424256
4241eb:	8b 55 fc             	mov    -0x4(%ebp),%edx
4241ee:	2b d8                	sub    %eax,%ebx
4241f0:	8b 4d 18             	mov    0x18(%ebp),%ecx
4241f3:	2b d0                	sub    %eax,%edx
4241f5:	eb 26                	jmp    0x42421d
4241f7:	51                   	push   %ecx
4241f8:	e8 12 8f 00 00       	call   0x42d10f
4241fd:	59                   	pop    %ecx
4241fe:	83 f8 ff             	cmp    $0xffffffff,%eax
424201:	74 5c                	je     0x42425f
424203:	8b 55 fc             	mov    -0x4(%ebp),%edx
424206:	85 d2                	test   %edx,%edx
424208:	74 29                	je     0x424233
42420a:	8b 4d f0             	mov    -0x10(%ebp),%ecx
42420d:	4b                   	dec    %ebx
42420e:	4a                   	dec    %edx
42420f:	88 01                	mov    %al,(%ecx)
424211:	8b 4d 18             	mov    0x18(%ebp),%ecx
424214:	8b 41 18             	mov    0x18(%ecx),%eax
424217:	89 45 f4             	mov    %eax,-0xc(%ebp)
42421a:	33 c0                	xor    %eax,%eax
42421c:	40                   	inc    %eax
42421d:	01 45 f0             	add    %eax,-0x10(%ebp)
424220:	85 db                	test   %ebx,%ebx
424222:	89 55 fc             	mov    %edx,-0x4(%ebp)
424225:	0f 85 13 ff ff ff    	jne    0x42413e
42422b:	8b 45 14             	mov    0x14(%ebp),%eax
42422e:	e9 96 fe ff ff       	jmp    0x4240c9
424233:	83 ff ff             	cmp    $0xffffffff,%edi
424236:	74 0e                	je     0x424246
424238:	57                   	push   %edi
424239:	6a 00                	push   $0x0
42423b:	ff 75 08             	push   0x8(%ebp)
42423e:	e8 cd 79 ff ff       	call   0x41bc10
424243:	83 c4 0c             	add    $0xc,%esp
424246:	e8 e5 f7 ff ff       	call   0x423a30
42424b:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
424251:	e9 6c fe ff ff       	jmp    0x4240c2
424256:	6a 10                	push   $0x10
424258:	8b 45 ec             	mov    -0x14(%ebp),%eax
42425b:	59                   	pop    %ecx
42425c:	f0 09 08             	lock or %ecx,(%eax)
42425f:	2b f3                	sub    %ebx,%esi
424261:	33 d2                	xor    %edx,%edx
424263:	8b c6                	mov    %esi,%eax
424265:	f7 75 10             	divl   0x10(%ebp)
424268:	e9 5c fe ff ff       	jmp    0x4240c9
42426d:	6a 08                	push   $0x8
42426f:	eb e7                	jmp    0x424258
424271:	8b ff                	mov    %edi,%edi
424273:	55                   	push   %ebp
424274:	8b ec                	mov    %esp,%ebp
424276:	ff 75 14             	push   0x14(%ebp)
424279:	ff 75 10             	push   0x10(%ebp)
42427c:	ff 75 0c             	push   0xc(%ebp)
42427f:	6a ff                	push   $0xffffffff
424281:	ff 75 08             	push   0x8(%ebp)
424284:	e8 05 00 00 00       	call   0x42428e
424289:	83 c4 14             	add    $0x14,%esp
42428c:	5d                   	pop    %ebp
42428d:	c3                   	ret
42428e:	6a 0c                	push   $0xc
424290:	68 a8 2f 45 00       	push   $0x452fa8
424295:	e8 76 66 ff ff       	call   0x41a910
42429a:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
42429e:	74 32                	je     0x4242d2
4242a0:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
4242a4:	74 2c                	je     0x4242d2
4242a6:	8b 75 18             	mov    0x18(%ebp),%esi
4242a9:	85 f6                	test   %esi,%esi
4242ab:	75 37                	jne    0x4242e4
4242ad:	83 7d 0c ff          	cmpl   $0xffffffff,0xc(%ebp)
4242b1:	74 0f                	je     0x4242c2
4242b3:	ff 75 0c             	push   0xc(%ebp)
4242b6:	56                   	push   %esi
4242b7:	ff 75 08             	push   0x8(%ebp)
4242ba:	e8 51 79 ff ff       	call   0x41bc10
4242bf:	83 c4 0c             	add    $0xc,%esp
4242c2:	e8 69 f7 ff ff       	call   0x423a30
4242c7:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4242cd:	e8 b1 b6 ff ff       	call   0x41f983
4242d2:	33 c0                	xor    %eax,%eax
4242d4:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4242d7:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4242de:	59                   	pop    %ecx
4242df:	5f                   	pop    %edi
4242e0:	5e                   	pop    %esi
4242e1:	5b                   	pop    %ebx
4242e2:	c9                   	leave
4242e3:	c3                   	ret