4401d9:	c2 04 00             	ret    $0x4
4401dc:	8b 54 24 04          	mov    0x4(%esp),%edx
4401e0:	33 c0                	xor    %eax,%eax
4401e2:	eb 09                	jmp    0x4401ed
4401e4:	6b c0 21             	imul   $0x21,%eax,%eax
4401e7:	0f be c9             	movsbl %cl,%ecx
4401ea:	03 c1                	add    %ecx,%eax
4401ec:	42                   	inc    %edx
4401ed:	8a 0a                	mov    (%edx),%cl
4401ef:	84 c9                	test   %cl,%cl
4401f1:	75 f1                	jne    0x4401e4
4401f3:	c2 04 00             	ret    $0x4
4401f6:	b8 9c a8 4a 00       	mov    $0x4aa89c,%eax
4401fb:	c3                   	ret
4401fc:	56                   	push   %esi
4401fd:	8b 74 24 08          	mov    0x8(%esp),%esi
440201:	85 f6                	test   %esi,%esi
440203:	57                   	push   %edi
440204:	8b f9                	mov    %ecx,%edi
440206:	7c 16                	jl     0x44021e
440208:	8d 46 01             	lea    0x1(%esi),%eax
44020b:	0f af 44 24 10       	imul   0x10(%esp),%eax
440210:	83 c0 10             	add    $0x10,%eax
440213:	50                   	push   %eax
440214:	e8 73 61 fd ff       	call   0x41638c
440219:	85 c0                	test   %eax,%eax
44021b:	59                   	pop    %ecx
44021c:	75 04                	jne    0x440222
44021e:	33 c0                	xor    %eax,%eax
440220:	eb 10                	jmp    0x440232
440222:	83 60 04 00          	andl   $0x0,0x4(%eax)
440226:	89 38                	mov    %edi,(%eax)
440228:	c7 40 0c 01 00 00 00 	movl   $0x1,0xc(%eax)
44022f:	89 70 08             	mov    %esi,0x8(%eax)
440232:	5f                   	pop    %edi
440233:	5e                   	pop    %esi
440234:	c2 08 00             	ret    $0x8
440237:	ff 74 24 04          	push   0x4(%esp)
44023b:	e8 5e 61 fd ff       	call   0x41639e
440240:	59                   	pop    %ecx
440241:	c2 04 00             	ret    $0x4
440244:	56                   	push   %esi
440245:	8b 74 24 0c          	mov    0xc(%esp),%esi
440249:	85 f6                	test   %esi,%esi
44024b:	7c 1b                	jl     0x440268
44024d:	8d 46 01             	lea    0x1(%esi),%eax
440250:	0f af 44 24 10       	imul   0x10(%esp),%eax
440255:	83 c0 10             	add    $0x10,%eax
440258:	50                   	push   %eax
440259:	ff 74 24 0c          	push   0xc(%esp)
44025d:	e8 b9 80 fd ff       	call   0x41831b
440262:	85 c0                	test   %eax,%eax
440264:	59                   	pop    %ecx
440265:	59                   	pop    %ecx
440266:	75 04                	jne    0x44026c
440268:	33 c0                	xor    %eax,%eax
44026a:	eb 03                	jmp    0x44026f
44026c:	89 70 08             	mov    %esi,0x8(%eax)
44026f:	5e                   	pop    %esi
440270:	c2 0c 00             	ret    $0xc
440273:	8b c1                	mov    %ecx,%eax
440275:	c3                   	ret
440276:	8b 01                	mov    (%ecx),%eax
440278:	c3                   	ret
440279:	8b 01                	mov    (%ecx),%eax
44027b:	83 e8 10             	sub    $0x10,%eax
44027e:	c3                   	ret
44027f:	83 7c 24 04 00       	cmpl   $0x0,0x4(%esp)
440284:	75 03                	jne    0x440289
440286:	33 c0                	xor    %eax,%eax
440288:	c3                   	ret
440289:	e9 3a 82 fd ff       	jmp    0x4184c8
44028e:	8b 01                	mov    (%ecx),%eax
440290:	c3                   	ret
440291:	8b 44 24 0c          	mov    0xc(%esp),%eax
440295:	03 c0                	add    %eax,%eax
440297:	50                   	push   %eax
440298:	ff 74 24 0c          	push   0xc(%esp)
44029c:	ff 74 24 0c          	push   0xc(%esp)
4402a0:	e8 cb 75 fd ff       	call   0x417870
4402a5:	83 c4 0c             	add    $0xc,%esp
4402a8:	c3                   	ret
4402a9:	8b 44 24 0c          	mov    0xc(%esp),%eax
4402ad:	03 c0                	add    %eax,%eax
4402af:	50                   	push   %eax
4402b0:	ff 74 24 0c          	push   0xc(%esp)
4402b4:	ff 74 24 0c          	push   0xc(%esp)
4402b8:	e8 63 6d fd ff       	call   0x417020
4402bd:	83 c4 0c             	add    $0xc,%esp
4402c0:	c3                   	ret
4402c1:	6a 00                	push   $0x0
4402c3:	ff 74 24 10          	push   0x10(%esp)
4402c7:	ff 74 24 10          	push   0x10(%esp)
4402cb:	ff 74 24 10          	push   0x10(%esp)
4402cf:	e8 e4 60 fc ff       	call   0x4063b8
4402d4:	c2 0c 00             	ret    $0xc
4402d7:	6a 00                	push   $0x0
4402d9:	ff 74 24 10          	push   0x10(%esp)
4402dd:	ff 74 24 10          	push   0x10(%esp)
4402e1:	ff 74 24 10          	push   0x10(%esp)
4402e5:	e8 05 61 fc ff       	call   0x4063ef
4402ea:	c2 0c 00             	ret    $0xc
4402ed:	56                   	push   %esi
4402ee:	8b 74 24 08          	mov    0x8(%esp),%esi
4402f2:	57                   	push   %edi
4402f3:	33 ff                	xor    %edi,%edi
4402f5:	85 f6                	test   %esi,%esi
4402f7:	75 04                	jne    0x4402fd
4402f9:	33 c0                	xor    %eax,%eax
4402fb:	eb 07                	jmp    0x440304
4402fd:	56                   	push   %esi
4402fe:	ff 15 04 05 4b 00    	call   *0x4b0504
440304:	85 c0                	test   %eax,%eax
440306:	8b ce                	mov    %esi,%ecx
440308:	7e 0d                	jle    0x440317
44030a:	0f b7 11             	movzwl (%ecx),%edx
44030d:	6b ff 21             	imul   $0x21,%edi,%edi
440310:	03 fa                	add    %edx,%edi
440312:	41                   	inc    %ecx
440313:	41                   	inc    %ecx
440314:	48                   	dec    %eax
440315:	75 f3                	jne    0x44030a
440317:	56                   	push   %esi
440318:	ff 15 08 05 4b 00    	call   *0x4b0508
44031e:	8b c7                	mov    %edi,%eax
440320:	5f                   	pop    %edi
440321:	5e                   	pop    %esi
440322:	c2 04 00             	ret    $0x4
440325:	8b c1                	mov    %ecx,%eax
440327:	c7 00 34 a2 48 00    	movl   $0x48a234,(%eax)
44032d:	33 c9                	xor    %ecx,%ecx
44032f:	89 48 04             	mov    %ecx,0x4(%eax)
440332:	c7 40 10 02 00 00 00 	movl   $0x2,0x10(%eax)
440339:	89 48 08             	mov    %ecx,0x8(%eax)
44033c:	89 48 0c             	mov    %ecx,0xc(%eax)
44033f:	66 89 48 14          	mov    %cx,0x14(%eax)
440343:	66 89 48 16          	mov    %cx,0x16(%eax)
440347:	89 40 04             	mov    %eax,0x4(%eax)
44034a:	c3                   	ret
44034b:	33 d2                	xor    %edx,%edx
44034d:	8d 41 10             	lea    0x10(%ecx),%eax
440350:	42                   	inc    %edx
440351:	f0 0f c1 10          	lock xadd %edx,(%eax)
440355:	8d 41 04             	lea    0x4(%ecx),%eax
440358:	c3                   	ret
440359:	8b 01                	mov    (%ecx),%eax
44035b:	8b 40 f4             	mov    -0xc(%eax),%eax
44035e:	c3                   	ret
44035f:	8b 44 24 04          	mov    0x4(%esp),%eax
440363:	83 c0 10             	add    $0x10,%eax
440366:	89 01                	mov    %eax,(%ecx)
440368:	c2 04 00             	ret    $0x4
44036b:	8b 44 24 04          	mov    0x4(%esp),%eax
44036f:	85 c0                	test   %eax,%eax
440371:	7c 14                	jl     0x440387
440373:	8b 11                	mov    (%ecx),%edx
440375:	3b 42 f8             	cmp    -0x8(%edx),%eax
440378:	7f 0d                	jg     0x440387
44037a:	89 42 f4             	mov    %eax,-0xc(%edx)
44037d:	8b 09                	mov    (%ecx),%ecx
44037f:	66 83 24 41 00       	andw   $0x0,(%ecx,%eax,2)
440384:	c2 04 00             	ret    $0x4
440387:	68 57 00 07 80       	push   $0x80070057
44038c:	e8 59 0e fc ff       	call   0x4011ea
440391:	cc                   	int3
440392:	68 0e 00 07 80       	push   $0x8007000e
440397:	e8 4e 0e fc ff       	call   0x4011ea
44039c:	cc                   	int3
44039d:	55                   	push   %ebp
44039e:	8b ec                	mov    %esp,%ebp
4403a0:	53                   	push   %ebx
4403a1:	56                   	push   %esi
4403a2:	57                   	push   %edi
4403a3:	8b 7d 10             	mov    0x10(%ebp),%edi
4403a6:	85 ff                	test   %edi,%edi
4403a8:	74 3a                	je     0x4403e4
4403aa:	8b 75 0c             	mov    0xc(%ebp),%esi
4403ad:	85 f6                	test   %esi,%esi
4403af:	74 33                	je     0x4403e4
4403b1:	8b 5d 08             	mov    0x8(%ebp),%ebx
4403b4:	8b 43 18             	mov    0x18(%ebx),%eax
4403b7:	f7 d0                	not    %eax
4403b9:	a8 01                	test   $0x1,%al
4403bb:	74 1a                	je     0x4403d7
4403bd:	51                   	push   %ecx
4403be:	8b cc                	mov    %esp,%ecx
4403c0:	89 65 10             	mov    %esp,0x10(%ebp)
4403c3:	56                   	push   %esi
4403c4:	e8 04 68 fc ff       	call   0x406bcd
4403c9:	53                   	push   %ebx
4403ca:	e8 4d b1 fc ff       	call   0x40b51c
4403cf:	83 c6 04             	add    $0x4,%esi
4403d2:	4f                   	dec    %edi
4403d3:	75 e8                	jne    0x4403bd
4403d5:	eb 0d                	jmp    0x4403e4
4403d7:	56                   	push   %esi
4403d8:	53                   	push   %ebx
4403d9:	e8 9f b1 fc ff       	call   0x40b57d
4403de:	83 c6 04             	add    $0x4,%esi
4403e1:	4f                   	dec    %edi
4403e2:	75 f3                	jne    0x4403d7
4403e4:	5f                   	pop    %edi
4403e5:	5e                   	pop    %esi
4403e6:	5b                   	pop    %ebx
4403e7:	5d                   	pop    %ebp
4403e8:	c2 0c 00             	ret    $0xc
4403eb:	56                   	push   %esi
4403ec:	8b 74 24 0c          	mov    0xc(%esp),%esi
4403f0:	8b 06                	mov    (%esi),%eax
4403f2:	6a 00                	push   $0x0
4403f4:	ff 70 f4             	push   -0xc(%eax)
4403f7:	ff 74 24 10          	push   0x10(%esp)
4403fb:	e8 61 06 01 00       	call   0x450a61
440400:	8b 06                	mov    (%esi),%eax
440402:	ff 70 f4             	push   -0xc(%eax)
440405:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
440409:	50                   	push   %eax
44040a:	e8 1d 08 01 00       	call   0x450c2c
44040f:	8b 44 24 08          	mov    0x8(%esp),%eax
440413:	5e                   	pop    %esi
440414:	c2 08 00             	ret    $0x8
440417:	56                   	push   %esi
440418:	8b 74 24 0c          	mov    0xc(%esp),%esi
44041c:	8b 06                	mov    (%esi),%eax
44041e:	6a 01                	push   $0x1
440420:	ff 70 f4             	push   -0xc(%eax)
440423:	ff 74 24 10          	push   0x10(%esp)
440427:	e8 35 06 01 00       	call   0x450a61
44042c:	8b 06                	mov    (%esi),%eax
44042e:	8b 48 f4             	mov    -0xc(%eax),%ecx
440431:	d1 e1                	shl    $1,%ecx
440433:	51                   	push   %ecx
440434:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
440438:	50                   	push   %eax
440439:	e8 ee 07 01 00       	call   0x450c2c
44043e:	8b 44 24 08          	mov    0x8(%esp),%eax
440442:	5e                   	pop    %esi
440443:	c2 08 00             	ret    $0x8
440446:	56                   	push   %esi
440447:	8b f1                	mov    %ecx,%esi
440449:	8b 06                	mov    (%esi),%eax
44044b:	8d 48 f0             	lea    -0x10(%eax),%ecx
44044e:	33 d2                	xor    %edx,%edx
440450:	39 51 04             	cmp    %edx,0x4(%ecx)
440453:	57                   	push   %edi
440454:	8b 39                	mov    (%ecx),%edi
440456:	74 2f                	je     0x440487
440458:	39 51 0c             	cmp    %edx,0xc(%ecx)
44045b:	7d 19                	jge    0x440476
44045d:	39 50 f8             	cmp    %edx,-0x8(%eax)
440460:	7d 0a                	jge    0x44046c
440462:	68 57 00 07 80       	push   $0x80070057
440467:	e8 7e 0d fc ff       	call   0x4011ea
44046c:	89 50 f4             	mov    %edx,-0xc(%eax)
44046f:	8b 06                	mov    (%esi),%eax
440471:	66 89 10             	mov    %dx,(%eax)
440474:	eb 11                	jmp    0x440487
440476:	e8 d7 0e fc ff       	call   0x401352
44047b:	8b 07                	mov    (%edi),%eax
44047d:	8b cf                	mov    %edi,%ecx
44047f:	ff 50 0c             	call   *0xc(%eax)
440482:	83 c0 10             	add    $0x10,%eax
440485:	89 06                	mov    %eax,(%esi)
440487:	5f                   	pop    %edi
440488:	5e                   	pop    %esi
440489:	c3                   	ret
44048a:	e9 dc fe ff ff       	jmp    0x44036b
44048f:	55                   	push   %ebp
440490:	8b ec                	mov    %esp,%ebp
440492:	51                   	push   %ecx
440493:	51                   	push   %ecx
440494:	53                   	push   %ebx
440495:	56                   	push   %esi
440496:	8b 31                	mov    (%ecx),%esi
440498:	8b 5e f4             	mov    -0xc(%esi),%ebx
44049b:	83 ee 10             	sub    $0x10,%esi
44049e:	89 4d f8             	mov    %ecx,-0x8(%ebp)
4404a1:	8b 0e                	mov    (%esi),%ecx
4404a3:	8b 01                	mov    (%ecx),%eax
4404a5:	57                   	push   %edi
4404a6:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4404a9:	ff 50 10             	call   *0x10(%eax)
4404ac:	8b 10                	mov    (%eax),%edx
4404ae:	6a 02                	push   $0x2
4404b0:	ff 75 08             	push   0x8(%ebp)
4404b3:	8b c8                	mov    %eax,%ecx
4404b5:	ff 12                	call   *(%edx)
4404b7:	8b f8                	mov    %eax,%edi
4404b9:	85 ff                	test   %edi,%edi
4404bb:	75 05                	jne    0x4404c2
4404bd:	e8 d0 fe ff ff       	call   0x440392
4404c2:	8b 45 08             	mov    0x8(%ebp),%eax
4404c5:	3b d8                	cmp    %eax,%ebx
4404c7:	7d 02                	jge    0x4404cb
4404c9:	8b c3                	mov    %ebx,%eax
4404cb:	40                   	inc    %eax
4404cc:	50                   	push   %eax
4404cd:	8d 46 10             	lea    0x10(%esi),%eax
4404d0:	50                   	push   %eax
4404d1:	8d 5f 10             	lea    0x10(%edi),%ebx
4404d4:	53                   	push   %ebx
4404d5:	e8 b7 fd ff ff       	call   0x440291
4404da:	8b 45 fc             	mov    -0x4(%ebp),%eax
4404dd:	83 c4 0c             	add    $0xc,%esp
4404e0:	8b ce                	mov    %esi,%ecx
4404e2:	89 47 04             	mov    %eax,0x4(%edi)
4404e5:	e8 68 0e fc ff       	call   0x401352
4404ea:	8b 45 f8             	mov    -0x8(%ebp),%eax
4404ed:	5f                   	pop    %edi
4404ee:	5e                   	pop    %esi
4404ef:	89 18                	mov    %ebx,(%eax)
4404f1:	5b                   	pop    %ebx
4404f2:	c9                   	leave
4404f3:	c2 04 00             	ret    $0x4
4404f6:	56                   	push   %esi
4404f7:	8b f1                	mov    %ecx,%esi
4404f9:	8b 06                	mov    (%esi),%eax
4404fb:	6a 02                	push   $0x2
4404fd:	ff 74 24 0c          	push   0xc(%esp)
440501:	83 e8 10             	sub    $0x10,%eax
440504:	8b 08                	mov    (%eax),%ecx
440506:	8b 11                	mov    (%ecx),%edx
440508:	50                   	push   %eax
440509:	ff 52 08             	call   *0x8(%edx)
44050c:	85 c0                	test   %eax,%eax
44050e:	75 05                	jne    0x440515
440510:	e8 7d fe ff ff       	call   0x440392
440515:	83 c0 10             	add    $0x10,%eax
440518:	89 06                	mov    %eax,(%esi)
44051a:	5e                   	pop    %esi
44051b:	c2 04 00             	ret    $0x4
44051e:	e9 7a fe ff ff       	jmp    0x44039d
440523:	56                   	push   %esi
440524:	ff 74 24 08          	push   0x8(%esp)
440528:	8b f1                	mov    %ecx,%esi
44052a:	83 26 00             	andl   $0x0,(%esi)
44052d:	e8 7a 0e fc ff       	call   0x4013ac
440532:	8b c6                	mov    %esi,%eax
440534:	5e                   	pop    %esi
440535:	c2 04 00             	ret    $0x4
440538:	8b 44 24 04          	mov    0x4(%esp),%eax
44053c:	56                   	push   %esi
44053d:	03 c0                	add    %eax,%eax
44053f:	8b f1                	mov    %ecx,%esi
440541:	83 26 00             	andl   $0x0,(%esi)
440544:	50                   	push   %eax
440545:	e8 bb 66 fc ff       	call   0x406c05
44054a:	8b c6                	mov    %esi,%eax
44054c:	5e                   	pop    %esi
44054d:	c2 04 00             	ret    $0x4