445174:	8b 47 0c             	mov    0xc(%edi),%eax
445177:	85 c0                	test   %eax,%eax
445179:	0f 85 8b 00 00 00    	jne    0x44520a
44517f:	8b 43 08             	mov    0x8(%ebx),%eax
445182:	8b 48 08             	mov    0x8(%eax),%ecx
445185:	83 e1 05             	and    $0x5,%ecx
445188:	83 c9 08             	or     $0x8,%ecx
44518b:	33 f6                	xor    %esi,%esi
44518d:	39 70 04             	cmp    %esi,0x4(%eax)
445190:	0f 84 b0 01 00 00    	je     0x445346
445196:	6a 18                	push   $0x18
445198:	51                   	push   %ecx
445199:	ff 70 04             	push   0x4(%eax)
44519c:	ff 15 78 10 45 00    	call   *0x451078
4451a2:	8b c8                	mov    %eax,%ecx
4451a4:	89 4d e8             	mov    %ecx,-0x18(%ebp)
4451a7:	85 c9                	test   %ecx,%ecx
4451a9:	0f 84 20 01 00 00    	je     0x4452cf
4451af:	89 71 04             	mov    %esi,0x4(%ecx)
4451b2:	89 71 08             	mov    %esi,0x8(%ecx)
4451b5:	89 71 14             	mov    %esi,0x14(%ecx)
4451b8:	89 71 10             	mov    %esi,0x10(%ecx)
4451bb:	89 71 0c             	mov    %esi,0xc(%ecx)
4451be:	89 75 fc             	mov    %esi,-0x4(%ebp)
4451c1:	8b 45 0c             	mov    0xc(%ebp),%eax
4451c4:	8b 00                	mov    (%eax),%eax
4451c6:	89 01                	mov    %eax,(%ecx)
4451c8:	8b 55 08             	mov    0x8(%ebp),%edx
4451cb:	8b 02                	mov    (%edx),%eax
4451cd:	89 41 04             	mov    %eax,0x4(%ecx)
4451d0:	8b 42 04             	mov    0x4(%edx),%eax
4451d3:	89 41 08             	mov    %eax,0x8(%ecx)
4451d6:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
4451da:	8b 45 10             	mov    0x10(%ebp),%eax
4451dd:	89 08                	mov    %ecx,(%eax)
4451df:	89 79 14             	mov    %edi,0x14(%ecx)
4451e2:	89 4f 0c             	mov    %ecx,0xc(%edi)
4451e5:	e9 38 01 00 00       	jmp    0x445322
4451ea:	ff 75 e8             	push   -0x18(%ebp)
4451ed:	8b 4d ec             	mov    -0x14(%ebp),%ecx
4451f0:	8b 49 08             	mov    0x8(%ecx),%ecx
4451f3:	e8 32 46 fd ff       	call   0x41982a
4451f8:	b8 fe 51 44 00       	mov    $0x4451fe,%eax
4451fd:	c3                   	ret
4451fe:	e9 38 01 00 00       	jmp    0x44533b
445203:	8b 47 10             	mov    0x10(%edi),%eax
445206:	85 c0                	test   %eax,%eax
445208:	74 07                	je     0x445211
44520a:	8b f8                	mov    %eax,%edi
44520c:	e9 3f ff ff ff       	jmp    0x445150
445211:	8b 43 08             	mov    0x8(%ebx),%eax
445214:	8b 48 08             	mov    0x8(%eax),%ecx
445217:	83 e1 05             	and    $0x5,%ecx
44521a:	83 c9 08             	or     $0x8,%ecx
44521d:	33 f6                	xor    %esi,%esi
44521f:	39 70 04             	cmp    %esi,0x4(%eax)
445222:	0f 84 1e 01 00 00    	je     0x445346
445228:	6a 18                	push   $0x18
44522a:	51                   	push   %ecx
44522b:	ff 70 04             	push   0x4(%eax)
44522e:	ff 15 78 10 45 00    	call   *0x451078
445234:	8b c8                	mov    %eax,%ecx
445236:	89 4d e8             	mov    %ecx,-0x18(%ebp)
445239:	85 c9                	test   %ecx,%ecx
44523b:	0f 84 8e 00 00 00    	je     0x4452cf
445241:	89 71 04             	mov    %esi,0x4(%ecx)
445244:	89 71 08             	mov    %esi,0x8(%ecx)
445247:	89 71 14             	mov    %esi,0x14(%ecx)
44524a:	89 71 10             	mov    %esi,0x10(%ecx)
44524d:	89 71 0c             	mov    %esi,0xc(%ecx)
445250:	c7 45 fc 02 00 00 00 	movl   $0x2,-0x4(%ebp)
445257:	8b 45 0c             	mov    0xc(%ebp),%eax
44525a:	8b 00                	mov    (%eax),%eax
44525c:	89 01                	mov    %eax,(%ecx)
44525e:	8b 55 08             	mov    0x8(%ebp),%edx
445261:	8b 02                	mov    (%edx),%eax
445263:	89 41 04             	mov    %eax,0x4(%ecx)
445266:	8b 42 04             	mov    0x4(%edx),%eax
445269:	89 41 08             	mov    %eax,0x8(%ecx)
44526c:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
445270:	8b 45 10             	mov    0x10(%ebp),%eax
445273:	89 08                	mov    %ecx,(%eax)
445275:	89 79 14             	mov    %edi,0x14(%ecx)
445278:	89 4f 10             	mov    %ecx,0x10(%edi)
44527b:	e9 a2 00 00 00       	jmp    0x445322
445280:	ff 75 e8             	push   -0x18(%ebp)
445283:	8b 4d ec             	mov    -0x14(%ebp),%ecx
445286:	8b 49 08             	mov    0x8(%ecx),%ecx
445289:	e8 9c 45 fd ff       	call   0x41982a
44528e:	b8 94 52 44 00       	mov    $0x445294,%eax
445293:	c3                   	ret
445294:	e9 a2 00 00 00       	jmp    0x44533b
445299:	b8 0a 00 00 80       	mov    $0x8000000a,%eax
44529e:	e9 aa 00 00 00       	jmp    0x44534d
4452a3:	8b 43 08             	mov    0x8(%ebx),%eax
4452a6:	8b 48 08             	mov    0x8(%eax),%ecx
4452a9:	83 e1 05             	and    $0x5,%ecx
4452ac:	83 c9 08             	or     $0x8,%ecx
4452af:	33 f6                	xor    %esi,%esi
4452b1:	39 70 04             	cmp    %esi,0x4(%eax)
4452b4:	0f 84 8c 00 00 00    	je     0x445346
4452ba:	6a 18                	push   $0x18
4452bc:	51                   	push   %ecx
4452bd:	ff 70 04             	push   0x4(%eax)
4452c0:	ff 15 78 10 45 00    	call   *0x451078
4452c6:	8b d0                	mov    %eax,%edx
4452c8:	89 55 e8             	mov    %edx,-0x18(%ebp)
4452cb:	85 d2                	test   %edx,%edx
4452cd:	75 1d                	jne    0x4452ec
4452cf:	ff 15 54 10 45 00    	call   *0x451054
4452d5:	8b f0                	mov    %eax,%esi
4452d7:	81 ee 17 00 00 c0    	sub    $0xc0000017,%esi
4452dd:	f7 de                	neg    %esi
4452df:	1b f6                	sbb    %esi,%esi
4452e1:	83 e6 07             	and    $0x7,%esi
4452e4:	81 c6 00 00 00 80    	add    $0x80000000,%esi
4452ea:	eb 5f                	jmp    0x44534b
4452ec:	89 72 04             	mov    %esi,0x4(%edx)
4452ef:	89 72 08             	mov    %esi,0x8(%edx)
4452f2:	89 72 14             	mov    %esi,0x14(%edx)
4452f5:	89 72 10             	mov    %esi,0x10(%edx)
4452f8:	89 72 0c             	mov    %esi,0xc(%edx)
4452fb:	c7 45 fc 04 00 00 00 	movl   $0x4,-0x4(%ebp)
445302:	8b 45 0c             	mov    0xc(%ebp),%eax
445305:	8b 00                	mov    (%eax),%eax
445307:	89 02                	mov    %eax,(%edx)
445309:	8b 4d 08             	mov    0x8(%ebp),%ecx
44530c:	8b 01                	mov    (%ecx),%eax
44530e:	89 42 04             	mov    %eax,0x4(%edx)
445311:	8b 41 04             	mov    0x4(%ecx),%eax
445314:	89 42 08             	mov    %eax,0x8(%edx)
445317:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
44531b:	8b 45 10             	mov    0x10(%ebp),%eax
44531e:	89 10                	mov    %edx,(%eax)
445320:	89 13                	mov    %edx,(%ebx)
445322:	ff 43 04             	incl   0x4(%ebx)
445325:	eb 24                	jmp    0x44534b
445327:	ff 75 e8             	push   -0x18(%ebp)
44532a:	8b 4d ec             	mov    -0x14(%ebp),%ecx
44532d:	8b 49 08             	mov    0x8(%ecx),%ecx
445330:	e8 f5 44 fd ff       	call   0x41982a
445335:	b8 3b 53 44 00       	mov    $0x44533b,%eax
44533a:	c3                   	ret
44533b:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
44533f:	b8 00 00 00 80       	mov    $0x80000000,%eax
445344:	eb 07                	jmp    0x44534d
445346:	be 02 00 00 80       	mov    $0x80000002,%esi
44534b:	8b c6                	mov    %esi,%eax
44534d:	e8 e9 a2 fd ff       	call   0x41f63b
445352:	c2 0c 00             	ret    $0xc
445355:	cc                   	int3
445356:	cc                   	int3
445357:	cc                   	int3
445358:	cc                   	int3
445359:	cc                   	int3
44535a:	cc                   	int3
44535b:	cc                   	int3
44535c:	cc                   	int3
44535d:	cc                   	int3
44535e:	cc                   	int3
44535f:	cc                   	int3
445360:	8b ff                	mov    %edi,%edi
445362:	55                   	push   %ebp
445363:	8b ec                	mov    %esp,%ebp
445365:	51                   	push   %ecx
445366:	51                   	push   %ecx
445367:	53                   	push   %ebx
445368:	56                   	push   %esi
445369:	57                   	push   %edi
44536a:	8b f9                	mov    %ecx,%edi
44536c:	8b 07                	mov    (%edi),%eax
44536e:	8b 70 18             	mov    0x18(%eax),%esi
445371:	8b ce                	mov    %esi,%ecx
445373:	ff 15 c4 12 45 00    	call   *0x4512c4
445379:	8b cf                	mov    %edi,%ecx
44537b:	ff d6                	call   *%esi
44537d:	8b 75 08             	mov    0x8(%ebp),%esi
445380:	8d 45 f8             	lea    -0x8(%ebp),%eax
445383:	50                   	push   %eax
445384:	8d 45 fc             	lea    -0x4(%ebp),%eax
445387:	89 75 fc             	mov    %esi,-0x4(%ebp)
44538a:	50                   	push   %eax
44538b:	8d 46 24             	lea    0x24(%esi),%eax
44538e:	50                   	push   %eax
44538f:	8d 4f 28             	lea    0x28(%edi),%ecx
445392:	e8 00 cf fe ff       	call   0x432297
445397:	8b d8                	mov    %eax,%ebx
445399:	85 db                	test   %ebx,%ebx
44539b:	75 14                	jne    0x4453b1
44539d:	40                   	inc    %eax
44539e:	8b c8                	mov    %eax,%ecx
4453a0:	f0 0f c1 4e 08       	lock xadd %ecx,0x8(%esi)
4453a5:	41                   	inc    %ecx
4453a6:	3b c8                	cmp    %eax,%ecx
4453a8:	75 04                	jne    0x4453ae
4453aa:	f0 ff 46 0c          	lock incl 0xc(%esi)
4453ae:	89 46 14             	mov    %eax,0x14(%esi)
4453b1:	8b 07                	mov    (%edi),%eax
4453b3:	8b 70 1c             	mov    0x1c(%eax),%esi
4453b6:	8b ce                	mov    %esi,%ecx
4453b8:	ff 15 c4 12 45 00    	call   *0x4512c4
4453be:	8b cf                	mov    %edi,%ecx
4453c0:	ff d6                	call   *%esi
4453c2:	5f                   	pop    %edi
4453c3:	5e                   	pop    %esi
4453c4:	8b c3                	mov    %ebx,%eax
4453c6:	5b                   	pop    %ebx
4453c7:	c9                   	leave
4453c8:	c2 08 00             	ret    $0x8
4453cb:	cc                   	int3
4453cc:	cc                   	int3
4453cd:	cc                   	int3
4453ce:	cc                   	int3
4453cf:	cc                   	int3
4453d0:	8b ff                	mov    %edi,%edi
4453d2:	55                   	push   %ebp
4453d3:	8b ec                	mov    %esp,%ebp
4453d5:	51                   	push   %ecx
4453d6:	51                   	push   %ecx
4453d7:	53                   	push   %ebx
4453d8:	56                   	push   %esi
4453d9:	57                   	push   %edi
4453da:	8b f9                	mov    %ecx,%edi
4453dc:	8b 07                	mov    (%edi),%eax
4453de:	8b 70 18             	mov    0x18(%eax),%esi
4453e1:	8b ce                	mov    %esi,%ecx
4453e3:	ff 15 c4 12 45 00    	call   *0x4512c4
4453e9:	8b cf                	mov    %edi,%ecx
4453eb:	ff d6                	call   *%esi
4453ed:	8b 75 08             	mov    0x8(%ebp),%esi
4453f0:	8d 45 f8             	lea    -0x8(%ebp),%eax
4453f3:	50                   	push   %eax
4453f4:	8d 45 fc             	lea    -0x4(%ebp),%eax
4453f7:	89 75 fc             	mov    %esi,-0x4(%ebp)
4453fa:	50                   	push   %eax
4453fb:	8d 46 24             	lea    0x24(%esi),%eax
4453fe:	50                   	push   %eax
4453ff:	8d 4f 28             	lea    0x28(%edi),%ecx
445402:	e8 33 fa ff ff       	call   0x444e3a
445407:	8b d8                	mov    %eax,%ebx
445409:	85 db                	test   %ebx,%ebx
44540b:	75 14                	jne    0x445421
44540d:	40                   	inc    %eax
44540e:	8b c8                	mov    %eax,%ecx
445410:	f0 0f c1 4e 08       	lock xadd %ecx,0x8(%esi)
445415:	41                   	inc    %ecx
445416:	3b c8                	cmp    %eax,%ecx
445418:	75 04                	jne    0x44541e
44541a:	f0 ff 46 0c          	lock incl 0xc(%esi)
44541e:	89 46 14             	mov    %eax,0x14(%esi)
445421:	8b 07                	mov    (%edi),%eax
445423:	8b 70 1c             	mov    0x1c(%eax),%esi
445426:	8b ce                	mov    %esi,%ecx
445428:	ff 15 c4 12 45 00    	call   *0x4512c4
44542e:	8b cf                	mov    %edi,%ecx
445430:	ff d6                	call   *%esi
445432:	5f                   	pop    %edi
445433:	5e                   	pop    %esi
445434:	8b c3                	mov    %ebx,%eax
445436:	5b                   	pop    %ebx
445437:	c9                   	leave
445438:	c2 08 00             	ret    $0x8
44543b:	8b ff                	mov    %edi,%edi
44543d:	55                   	push   %ebp
44543e:	8b ec                	mov    %esp,%ebp
445440:	51                   	push   %ecx
445441:	53                   	push   %ebx
445442:	57                   	push   %edi
445443:	8b 7d 10             	mov    0x10(%ebp),%edi
445446:	33 db                	xor    %ebx,%ebx
445448:	89 4d fc             	mov    %ecx,-0x4(%ebp)
44544b:	38 1f                	cmp    %bl,(%edi)
44544d:	0f 84 48 01 00 00    	je     0x44559b
445453:	56                   	push   %esi
445454:	8b 75 08             	mov    0x8(%ebp),%esi
445457:	8b 16                	mov    (%esi),%edx
445459:	8b 42 20             	mov    0x20(%edx),%eax
44545c:	2b c3                	sub    %ebx,%eax
44545e:	0f 84 2f 01 00 00    	je     0x445593
445464:	83 e8 01             	sub    $0x1,%eax
445467:	74 0f                	je     0x445478
445469:	83 e8 01             	sub    $0x1,%eax
44546c:	75 29                	jne    0x445497
44546e:	21 5a 20             	and    %ebx,0x20(%edx)
445471:	88 1f                	mov    %bl,(%edi)
445473:	e9 22 01 00 00       	jmp    0x44559a
445478:	8b 55 0c             	mov    0xc(%ebp),%edx
44547b:	88 1f                	mov    %bl,(%edi)
44547d:	8b 42 20             	mov    0x20(%edx),%eax
445480:	83 e8 00             	sub    $0x0,%eax
445483:	0f 84 11 01 00 00    	je     0x44559a
445489:	83 e8 01             	sub    $0x1,%eax
44548c:	0f 84 ba 00 00 00    	je     0x44554c
445492:	83 e8 01             	sub    $0x1,%eax
445495:	74 0a                	je     0x4454a1
445497:	bb 07 00 00 80       	mov    $0x80000007,%ebx
44549c:	e9 f9 00 00 00       	jmp    0x44559a
4454a1:	8b 3e                	mov    (%esi),%edi
4454a3:	8b 47 14             	mov    0x14(%edi),%eax
4454a6:	8b 7f 1c             	mov    0x1c(%edi),%edi
4454a9:	8b 48 18             	mov    0x18(%eax),%ecx
4454ac:	85 ff                	test   %edi,%edi
4454ae:	74 11                	je     0x4454c1
4454b0:	8b 06                	mov    (%esi),%eax
4454b2:	39 47 14             	cmp    %eax,0x14(%edi)
4454b5:	75 05                	jne    0x4454bc
4454b7:	89 4f 14             	mov    %ecx,0x14(%edi)
4454ba:	eb 0a                	jmp    0x4454c6
4454bc:	89 4f 18             	mov    %ecx,0x18(%edi)
4454bf:	eb 05                	jmp    0x4454c6
4454c1:	8b 45 fc             	mov    -0x4(%ebp),%eax
4454c4:	89 08                	mov    %ecx,(%eax)
4454c6:	8b 06                	mov    (%esi),%eax
4454c8:	89 48 1c             	mov    %ecx,0x1c(%eax)
4454cb:	89 4a 1c             	mov    %ecx,0x1c(%edx)
4454ce:	8b 41 14             	mov    0x14(%ecx),%eax
4454d1:	85 c0                	test   %eax,%eax
4454d3:	74 03                	je     0x4454d8
4454d5:	89 50 1c             	mov    %edx,0x1c(%eax)
4454d8:	8b 41 18             	mov    0x18(%ecx),%eax
4454db:	89 45 fc             	mov    %eax,-0x4(%ebp)
4454de:	85 c0                	test   %eax,%eax
4454e0:	74 0e                	je     0x4454f0
4454e2:	8b 55 fc             	mov    -0x4(%ebp),%edx
4454e5:	8b 06                	mov    (%esi),%eax
4454e7:	89 42 1c             	mov    %eax,0x1c(%edx)
4454ea:	8b 41 18             	mov    0x18(%ecx),%eax
4454ed:	89 45 fc             	mov    %eax,-0x4(%ebp)
4454f0:	8b 06                	mov    (%esi),%eax
4454f2:	8b 55 fc             	mov    -0x4(%ebp),%edx
4454f5:	89 50 14             	mov    %edx,0x14(%eax)
4454f8:	8b 55 0c             	mov    0xc(%ebp),%edx
4454fb:	8b 41 14             	mov    0x14(%ecx),%eax
4454fe:	89 42 18             	mov    %eax,0x18(%edx)
445501:	89 51 14             	mov    %edx,0x14(%ecx)
445504:	8b 06                	mov    (%esi),%eax
445506:	89 41 18             	mov    %eax,0x18(%ecx)
445509:	8b 41 20             	mov    0x20(%ecx),%eax
44550c:	89 79 1c             	mov    %edi,0x1c(%ecx)
44550f:	83 e8 00             	sub    $0x0,%eax
445512:	74 28                	je     0x44553c
445514:	83 e8 01             	sub    $0x1,%eax
445517:	74 15                	je     0x44552e
445519:	83 e8 01             	sub    $0x1,%eax
44551c:	74 07                	je     0x445525
44551e:	bb 07 00 00 80       	mov    $0x80000007,%ebx
445523:	eb 1f                	jmp    0x445544
445525:	c7 42 20 01 00 00 00 	movl   $0x1,0x20(%edx)
44552c:	eb 11                	jmp    0x44553f
44552e:	21 5a 20             	and    %ebx,0x20(%edx)