4151e2:	8b 33                	mov    (%ebx),%esi
4151e4:	50                   	push   %eax
4151e5:	6a 00                	push   $0x0
4151e7:	68 d8 6c 40 00       	push   $0x406cd8
4151ec:	8b 76 24             	mov    0x24(%esi),%esi
4151ef:	8b ce                	mov    %esi,%ecx
4151f1:	53                   	push   %ebx
4151f2:	ff 15 c4 12 45 00    	call   *0x4512c4
4151f8:	ff d6                	call   *%esi
4151fa:	8b f0                	mov    %eax,%esi
4151fc:	85 f6                	test   %esi,%esi
4151fe:	78 54                	js     0x415254
415200:	66 83 7d dc 08       	cmpw   $0x8,-0x24(%ebp)
415205:	0f 85 cf 77 01 00    	jne    0x42c9da
41520b:	8b 07                	mov    (%edi),%eax
41520d:	85 c0                	test   %eax,%eax
41520f:	0f 85 cf 77 01 00    	jne    0x42c9e4
415215:	8d 45 f0             	lea    -0x10(%ebp),%eax
415218:	50                   	push   %eax
415219:	57                   	push   %edi
41521a:	6a 40                	push   $0x40
41521c:	ff 15 b4 12 45 00    	call   *0x4512b4
415222:	8b f0                	mov    %eax,%esi
415224:	85 f6                	test   %esi,%esi
415226:	78 2c                	js     0x415254
415228:	8b 55 e4             	mov    -0x1c(%ebp),%edx
41522b:	85 d2                	test   %edx,%edx
41522d:	74 25                	je     0x415254
41522f:	8b c2                	mov    %edx,%eax
415231:	8d 78 02             	lea    0x2(%eax),%edi
415234:	66 8b 08             	mov    (%eax),%cx
415237:	83 c0 02             	add    $0x2,%eax
41523a:	66 85 c9             	test   %cx,%cx
41523d:	75 f5                	jne    0x415234
41523f:	2b c7                	sub    %edi,%eax
415241:	d1 f8                	sar    $1,%eax
415243:	74 0f                	je     0x415254
415245:	8d 45 f0             	lea    -0x10(%ebp),%eax
415248:	50                   	push   %eax
415249:	52                   	push   %edx
41524a:	6a 08                	push   $0x8
41524c:	ff 15 bc 12 45 00    	call   *0x4512bc
415252:	8b f0                	mov    %eax,%esi
415254:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
41525b:	8d 45 dc             	lea    -0x24(%ebp),%eax
41525e:	50                   	push   %eax
41525f:	ff 15 1c 30 45 00    	call   *0x45301c
415265:	85 c0                	test   %eax,%eax
415267:	0f 88 89 77 01 00    	js     0x42c9f6
41526d:	8b c6                	mov    %esi,%eax
41526f:	8b 4d f4             	mov    -0xc(%ebp),%ecx
415272:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
415279:	59                   	pop    %ecx
41527a:	5f                   	pop    %edi
41527b:	5e                   	pop    %esi
41527c:	5b                   	pop    %ebx
41527d:	8b e5                	mov    %ebp,%esp
41527f:	5d                   	pop    %ebp
415280:	c2 04 00             	ret    $0x4
415283:	cc                   	int3
415284:	cc                   	int3
415285:	cc                   	int3
415286:	cc                   	int3
415287:	cc                   	int3
415288:	cc                   	int3
415289:	cc                   	int3
41528a:	cc                   	int3
41528b:	cc                   	int3
41528c:	cc                   	int3
41528d:	cc                   	int3
41528e:	cc                   	int3
41528f:	cc                   	int3
415290:	8b ff                	mov    %edi,%edi
415292:	55                   	push   %ebp
415293:	8b ec                	mov    %esp,%ebp
415295:	8b 45 08             	mov    0x8(%ebp),%eax
415298:	57                   	push   %edi
415299:	33 ff                	xor    %edi,%edi
41529b:	47                   	inc    %edi
41529c:	f0 0f c1 78 08       	lock xadd %edi,0x8(%eax)
4152a1:	47                   	inc    %edi
4152a2:	83 ff 01             	cmp    $0x1,%edi
4152a5:	75 12                	jne    0x4152b9
4152a7:	8b 08                	mov    (%eax),%ecx
4152a9:	56                   	push   %esi
4152aa:	50                   	push   %eax
4152ab:	8b 71 24             	mov    0x24(%ecx),%esi
4152ae:	8b ce                	mov    %esi,%ecx
4152b0:	ff 15 c4 12 45 00    	call   *0x4512c4
4152b6:	ff d6                	call   *%esi
4152b8:	5e                   	pop    %esi
4152b9:	8b c7                	mov    %edi,%eax
4152bb:	5f                   	pop    %edi
4152bc:	5d                   	pop    %ebp
4152bd:	c2 04 00             	ret    $0x4
4152c0:	8b ff                	mov    %edi,%edi
4152c2:	55                   	push   %ebp
4152c3:	8b ec                	mov    %esp,%ebp
4152c5:	8b 45 08             	mov    0x8(%ebp),%eax
4152c8:	8b 80 e8 00 00 00    	mov    0xe8(%eax),%eax
4152ce:	5d                   	pop    %ebp
4152cf:	c2 04 00             	ret    $0x4
4152d2:	cc                   	int3
4152d3:	cc                   	int3
4152d4:	cc                   	int3
4152d5:	cc                   	int3
4152d6:	cc                   	int3
4152d7:	cc                   	int3
4152d8:	cc                   	int3
4152d9:	cc                   	int3
4152da:	cc                   	int3
4152db:	cc                   	int3
4152dc:	cc                   	int3
4152dd:	cc                   	int3
4152de:	cc                   	int3
4152df:	cc                   	int3
4152e0:	8b ff                	mov    %edi,%edi
4152e2:	55                   	push   %ebp
4152e3:	8b ec                	mov    %esp,%ebp
4152e5:	6a ff                	push   $0xffffffff
4152e7:	68 ee 38 42 00       	push   $0x4238ee
4152ec:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
4152f2:	50                   	push   %eax
4152f3:	81 ec c0 00 00 00    	sub    $0xc0,%esp
4152f9:	a1 54 02 45 00       	mov    0x450254,%eax
4152fe:	33 c5                	xor    %ebp,%eax
415300:	89 45 f0             	mov    %eax,-0x10(%ebp)
415303:	53                   	push   %ebx
415304:	56                   	push   %esi
415305:	57                   	push   %edi
415306:	50                   	push   %eax
415307:	8d 45 f4             	lea    -0xc(%ebp),%eax
41530a:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
415310:	8b 45 10             	mov    0x10(%ebp),%eax
415313:	8b 5d 18             	mov    0x18(%ebp),%ebx
415316:	8b 55 20             	mov    0x20(%ebp),%edx
415319:	8b 75 2c             	mov    0x2c(%ebp),%esi
41531c:	8b 7d 08             	mov    0x8(%ebp),%edi
41531f:	8b 4d 28             	mov    0x28(%ebp),%ecx
415322:	89 85 44 ff ff ff    	mov    %eax,-0xbc(%ebp)
415328:	8b 45 14             	mov    0x14(%ebp),%eax
41532b:	89 85 48 ff ff ff    	mov    %eax,-0xb8(%ebp)
415331:	8b 45 1c             	mov    0x1c(%ebp),%eax
415334:	89 85 4c ff ff ff    	mov    %eax,-0xb4(%ebp)
41533a:	8b 45 24             	mov    0x24(%ebp),%eax
41533d:	89 9d 40 ff ff ff    	mov    %ebx,-0xc0(%ebp)
415343:	89 95 3c ff ff ff    	mov    %edx,-0xc4(%ebp)
415349:	89 85 38 ff ff ff    	mov    %eax,-0xc8(%ebp)
41534f:	89 b5 50 ff ff ff    	mov    %esi,-0xb0(%ebp)
415355:	a1 00 f0 44 00       	mov    0x44f000,%eax
41535a:	3d 00 f0 44 00       	cmp    $0x44f000,%eax
41535f:	74 0a                	je     0x41536b
415361:	f6 40 1c 04          	testb  $0x4,0x1c(%eax)
415365:	0f 85 b2 76 01 00    	jne    0x42ca1d
41536b:	80 7f 64 00          	cmpb   $0x0,0x64(%edi)
41536f:	0f 84 e5 76 01 00    	je     0x42ca5a
415375:	8b 87 dc 00 00 00    	mov    0xdc(%edi),%eax
41537b:	33 c9                	xor    %ecx,%ecx
41537d:	ba 04 00 00 00       	mov    $0x4,%edx
415382:	f7 e2                	mul    %edx
415384:	0f 90 c1             	seto   %cl
415387:	f7 d9                	neg    %ecx
415389:	0b c8                	or     %eax,%ecx
41538b:	a1 80 0b 45 00       	mov    0x450b80,%eax
415390:	8b 50 08             	mov    0x8(%eax),%edx
415393:	8b 40 04             	mov    0x4(%eax),%eax
415396:	83 e2 05             	and    $0x5,%edx
415399:	83 ca 08             	or     $0x8,%edx
41539c:	85 c0                	test   %eax,%eax
41539e:	0f 84 c6 76 01 00    	je     0x42ca6a
4153a4:	51                   	push   %ecx
4153a5:	52                   	push   %edx
4153a6:	50                   	push   %eax
4153a7:	ff 15 78 10 45 00    	call   *0x451078
4153ad:	85 c0                	test   %eax,%eax
4153af:	0f 84 af 76 01 00    	je     0x42ca64
4153b5:	89 87 b4 00 00 00    	mov    %eax,0xb4(%edi)
4153bb:	85 c0                	test   %eax,%eax
4153bd:	0f 84 ce 76 01 00    	je     0x42ca91
4153c3:	80 bf d0 00 00 00 00 	cmpb   $0x0,0xd0(%edi)
4153ca:	0f 84 c1 76 01 00    	je     0x42ca91
4153d0:	8b 87 dc 00 00 00    	mov    0xdc(%edi),%eax
4153d6:	33 c9                	xor    %ecx,%ecx
4153d8:	c7 87 e0 00 00 00 01 	movl   $0x1,0xe0(%edi)
4153df:	00 00 00
4153e2:	85 c0                	test   %eax,%eax
4153e4:	74 22                	je     0x415408
4153e6:	eb 08                	jmp    0x4153f0
4153e8:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
4153ef:	90                   	nop
4153f0:	8b 87 b4 00 00 00    	mov    0xb4(%edi),%eax
4153f6:	c7 04 88 00 00 00 00 	movl   $0x0,(%eax,%ecx,4)
4153fd:	41                   	inc    %ecx
4153fe:	8b 87 dc 00 00 00    	mov    0xdc(%edi),%eax
415404:	3b c8                	cmp    %eax,%ecx
415406:	72 e8                	jb     0x4153f0
415408:	33 db                	xor    %ebx,%ebx
41540a:	85 c0                	test   %eax,%eax
41540c:	0f 84 c8 00 00 00    	je     0x4154da
415412:	a1 80 0b 45 00       	mov    0x450b80,%eax
415417:	8b 48 08             	mov    0x8(%eax),%ecx
41541a:	8b 40 04             	mov    0x4(%eax),%eax
41541d:	83 e1 05             	and    $0x5,%ecx
415420:	83 c9 08             	or     $0x8,%ecx
415423:	85 c0                	test   %eax,%eax
415425:	0f 84 4c 76 01 00    	je     0x42ca77
41542b:	6a 10                	push   $0x10
41542d:	51                   	push   %ecx
41542e:	50                   	push   %eax
41542f:	ff 15 78 10 45 00    	call   *0x451078
415435:	8b f0                	mov    %eax,%esi
415437:	85 f6                	test   %esi,%esi
415439:	0f 84 32 76 01 00    	je     0x42ca71
41543f:	89 b5 34 ff ff ff    	mov    %esi,-0xcc(%ebp)
415445:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
41544c:	85 f6                	test   %esi,%esi
41544e:	0f 84 2a 76 01 00    	je     0x42ca7e
415454:	8b 87 b0 00 00 00    	mov    0xb0(%edi),%eax
41545a:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
415460:	c7 46 04 ff ff ff ff 	movl   $0xffffffff,0x4(%esi)
415467:	c7 46 08 00 00 00 00 	movl   $0x0,0x8(%esi)
41546e:	89 46 0c             	mov    %eax,0xc(%esi)
415471:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
415478:	8b 87 b4 00 00 00    	mov    0xb4(%edi),%eax
41547e:	89 34 98             	mov    %esi,(%eax,%ebx,4)
415481:	85 f6                	test   %esi,%esi
415483:	0f 84 02 76 01 00    	je     0x42ca8b
415489:	8b 46 0c             	mov    0xc(%esi),%eax
41548c:	8b 48 08             	mov    0x8(%eax),%ecx
41548f:	8b 40 04             	mov    0x4(%eax),%eax
415492:	83 e1 05             	and    $0x5,%ecx
415495:	83 c9 08             	or     $0x8,%ecx
415498:	85 c0                	test   %eax,%eax
41549a:	0f 84 eb 75 01 00    	je     0x42ca8b
4154a0:	68 84 00 00 00       	push   $0x84
4154a5:	51                   	push   %ecx
4154a6:	50                   	push   %eax
4154a7:	ff 15 78 10 45 00    	call   *0x451078
4154ad:	8b c8                	mov    %eax,%ecx
4154af:	85 c9                	test   %ecx,%ecx
4154b1:	0f 84 ce 75 01 00    	je     0x42ca85
4154b7:	c7 01 00 00 00 00    	movl   $0x0,(%ecx)
4154bd:	43                   	inc    %ebx
4154be:	8b 06                	mov    (%esi),%eax
4154c0:	89 01                	mov    %eax,(%ecx)
4154c2:	83 46 08 20          	addl   $0x20,0x8(%esi)
4154c6:	89 0e                	mov    %ecx,(%esi)
4154c8:	3b 9f dc 00 00 00    	cmp    0xdc(%edi),%ebx
4154ce:	0f 82 3e ff ff ff    	jb     0x415412
4154d4:	8b b5 50 ff ff ff    	mov    -0xb0(%ebp),%esi
4154da:	8b 85 40 ff ff ff    	mov    -0xc0(%ebp),%eax
4154e0:	85 c0                	test   %eax,%eax
4154e2:	0f 85 c4 00 00 00    	jne    0x4155ac
4154e8:	8b 85 4c ff ff ff    	mov    -0xb4(%ebp),%eax
4154ee:	85 c0                	test   %eax,%eax
4154f0:	0f 85 af 75 01 00    	jne    0x42caa5
4154f6:	8b 85 3c ff ff ff    	mov    -0xc4(%ebp),%eax
4154fc:	85 c0                	test   %eax,%eax
4154fe:	74 15                	je     0x415515
415500:	50                   	push   %eax
415501:	ff 15 10 30 45 00    	call   *0x453010
415507:	89 87 00 01 00 00    	mov    %eax,0x100(%edi)
41550d:	85 c0                	test   %eax,%eax
41550f:	0f 84 af 75 01 00    	je     0x42cac4
415515:	8b 85 48 ff ff ff    	mov    -0xb8(%ebp),%eax
41551b:	85 c0                	test   %eax,%eax
41551d:	0f 85 ab 75 01 00    	jne    0x42cace
415523:	33 db                	xor    %ebx,%ebx
415525:	8b 8d 38 ff ff ff    	mov    -0xc8(%ebp),%ecx
41552b:	85 c9                	test   %ecx,%ecx
41552d:	0f 85 c3 75 01 00    	jne    0x42caf6
415533:	85 db                	test   %ebx,%ebx
415535:	78 18                	js     0x41554f
415537:	6a 00                	push   $0x0
415539:	6a 00                	push   $0x0
41553b:	6a 01                	push   $0x1
41553d:	6a 00                	push   $0x0
41553f:	ff 15 34 11 45 00    	call   *0x451134
415545:	89 87 ec 00 00 00    	mov    %eax,0xec(%edi)
41554b:	85 c0                	test   %eax,%eax
41554d:	74 77                	je     0x4155c6
41554f:	8b 06                	mov    (%esi),%eax
415551:	6a 00                	push   $0x0
415553:	53                   	push   %ebx
415554:	ff b5 50 ff ff ff    	push   -0xb0(%ebp)
41555a:	8b 70 0c             	mov    0xc(%eax),%esi
41555d:	81 fe d0 55 41 00    	cmp    $0x4155d0,%esi
415563:	0f 85 c0 75 01 00    	jne    0x42cb29
415569:	e8 62 00 00 00       	call   0x4155d0
41556e:	85 db                	test   %ebx,%ebx
415570:	0f 88 c2 75 01 00    	js     0x42cb38
415576:	a1 00 f0 44 00       	mov    0x44f000,%eax
41557b:	3d 00 f0 44 00       	cmp    $0x44f000,%eax
415580:	74 0a                	je     0x41558c
415582:	f6 40 1c 04          	testb  $0x4,0x1c(%eax)
415586:	0f 85 c0 75 01 00    	jne    0x42cb4c
41558c:	8b c3                	mov    %ebx,%eax
41558e:	8b 4d f4             	mov    -0xc(%ebp),%ecx
415591:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
415598:	59                   	pop    %ecx
415599:	5f                   	pop    %edi
41559a:	5e                   	pop    %esi
41559b:	5b                   	pop    %ebx
41559c:	8b 4d f0             	mov    -0x10(%ebp),%ecx
41559f:	33 cd                	xor    %ebp,%ecx
4155a1:	e8 6a 9d 00 00       	call   0x41f310
4155a6:	8b e5                	mov    %ebp,%esp
4155a8:	5d                   	pop    %ebp
4155a9:	c2 28 00             	ret    $0x28
4155ac:	50                   	push   %eax
4155ad:	ff 15 10 30 45 00    	call   *0x453010
4155b3:	89 87 fc 00 00 00    	mov    %eax,0xfc(%edi)
4155b9:	85 c0                	test   %eax,%eax
4155bb:	0f 85 27 ff ff ff    	jne    0x4154e8
4155c1:	e9 d5 74 01 00       	jmp    0x42ca9b
4155c6:	bb 06 10 04 80       	mov    $0x80041006,%ebx
4155cb:	eb 82                	jmp    0x41554f
4155cd:	cc                   	int3
4155ce:	cc                   	int3
4155cf:	cc                   	int3
4155d0:	8b ff                	mov    %edi,%edi
4155d2:	55                   	push   %ebp
4155d3:	8b ec                	mov    %esp,%ebp
4155d5:	56                   	push   %esi
4155d6:	8b 75 08             	mov    0x8(%ebp),%esi
4155d9:	57                   	push   %edi
4155da:	ff 46 0c             	incl   0xc(%esi)
4155dd:	83 7e 08 01          	cmpl   $0x1,0x8(%esi)
4155e1:	c7 46 10 01 00 00 00 	movl   $0x1,0x10(%esi)
4155e8:	74 4b                	je     0x415635
4155ea:	8b 4e 14             	mov    0x14(%esi),%ecx
4155ed:	ff 75 10             	push   0x10(%ebp)
4155f0:	ff 75 0c             	push   0xc(%ebp)
4155f3:	8b 01                	mov    (%ecx),%eax
4155f5:	51                   	push   %ecx
4155f6:	8b 78 0c             	mov    0xc(%eax),%edi
4155f9:	81 ff 40 56 41 00    	cmp    $0x415640,%edi
4155ff:	0f 85 6c 75 01 00    	jne    0x42cb71
415605:	e8 36 00 00 00       	call   0x415640
41560a:	8b f8                	mov    %eax,%edi
41560c:	ff 4e 0c             	decl   0xc(%esi)
41560f:	85 ff                	test   %edi,%edi
415611:	0f 88 69 75 01 00    	js     0x42cb80
415617:	a1 00 f0 44 00       	mov    0x44f000,%eax
41561c:	3d 00 f0 44 00       	cmp    $0x44f000,%eax
415621:	74 0a                	je     0x41562d
415623:	f6 40 1c 04          	testb  $0x4,0x1c(%eax)
415627:	0f 85 67 75 01 00    	jne    0x42cb94
41562d:	8b c7                	mov    %edi,%eax
41562f:	5f                   	pop    %edi