40c273:	66 83 38 2c          	cmpw   $0x2c,(%eax)
40c277:	0f 85 26 01 00 00    	jne    0x40c3a3
40c27d:	83 c0 02             	add    $0x2,%eax
40c280:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40c283:	6a 00                	push   $0x0
40c285:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
40c288:	51                   	push   %ecx
40c289:	50                   	push   %eax
40c28a:	ff 15 38 a4 44 00    	call   *0x44a438
40c290:	83 c4 0c             	add    $0xc,%esp
40c293:	8b f0                	mov    %eax,%esi
40c295:	89 75 d4             	mov    %esi,-0x2c(%ebp)
40c298:	85 f6                	test   %esi,%esi
40c29a:	0f 88 d7 00 00 00    	js     0x40c377
40c2a0:	89 75 d4             	mov    %esi,-0x2c(%ebp)
40c2a3:	8d 3c 7b             	lea    (%ebx,%edi,2),%edi
40c2a6:	8b cf                	mov    %edi,%ecx
40c2a8:	8d 51 02             	lea    0x2(%ecx),%edx
40c2ab:	eb 03                	jmp    0x40c2b0
40c2ad:	8d 49 00             	lea    0x0(%ecx),%ecx
40c2b0:	66 8b 01             	mov    (%ecx),%ax
40c2b3:	83 c1 02             	add    $0x2,%ecx
40c2b6:	66 85 c0             	test   %ax,%ax
40c2b9:	75 f5                	jne    0x40c2b0
40c2bb:	2b ca                	sub    %edx,%ecx
40c2bd:	d1 f9                	sar    $1,%ecx
40c2bf:	3b f1                	cmp    %ecx,%esi
40c2c1:	0f 8d 86 00 00 00    	jge    0x40c34d
40c2c7:	89 75 d4             	mov    %esi,-0x2c(%ebp)
40c2ca:	8b d3                	mov    %ebx,%edx
40c2cc:	8d 4a 02             	lea    0x2(%edx),%ecx
40c2cf:	90                   	nop
40c2d0:	66 8b 02             	mov    (%edx),%ax
40c2d3:	83 c2 02             	add    $0x2,%edx
40c2d6:	66 85 c0             	test   %ax,%ax
40c2d9:	75 f5                	jne    0x40c2d0
40c2db:	2b d1                	sub    %ecx,%edx
40c2dd:	d1 fa                	sar    $1,%edx
40c2df:	56                   	push   %esi
40c2e0:	57                   	push   %edi
40c2e1:	42                   	inc    %edx
40c2e2:	8b 7d d8             	mov    -0x28(%ebp),%edi
40c2e5:	8b cf                	mov    %edi,%ecx
40c2e7:	e8 ac 5f 00 00       	call   0x412298
40c2ec:	66 83 3c 77 00       	cmpw   $0x0,(%edi,%esi,2)
40c2f1:	0f 85 fb 0c 01 00    	jne    0x41cff2
40c2f7:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40c2fa:	0f b7 08             	movzwl (%eax),%ecx
40c2fd:	8d 50 02             	lea    0x2(%eax),%edx
40c300:	89 55 e4             	mov    %edx,-0x1c(%ebp)
40c303:	8b 45 08             	mov    0x8(%ebp),%eax
40c306:	66 3b 4d 0c          	cmp    0xc(%ebp),%cx
40c30a:	0f 85 ed 0c 01 00    	jne    0x41cffd
40c310:	2b 55 d0             	sub    -0x30(%ebp),%edx
40c313:	d1 fa                	sar    $1,%edx
40c315:	89 10                	mov    %edx,(%eax)
40c317:	e9 c6 fe ff ff       	jmp    0x40c1e2
40c31c:	8b 4d cc             	mov    -0x34(%ebp),%ecx
40c31f:	8d 04 09             	lea    (%ecx,%ecx,1),%eax
40c322:	8d 34 5e             	lea    (%esi,%ebx,2),%esi
40c325:	50                   	push   %eax
40c326:	ff 75 b4             	push   -0x4c(%ebp)
40c329:	83 7d b8 00          	cmpl   $0x0,-0x48(%ebp)
40c32d:	0f 85 0f 0d 01 00    	jne    0x41d042
40c333:	57                   	push   %edi
40c334:	e8 03 b9 00 00       	call   0x417c3c
40c339:	83 c4 0c             	add    $0xc,%esp
40c33c:	8b 4d cc             	mov    -0x34(%ebp),%ecx
40c33f:	8d 3c 4f             	lea    (%edi,%ecx,2),%edi
40c342:	89 7d b0             	mov    %edi,-0x50(%ebp)
40c345:	89 75 ac             	mov    %esi,-0x54(%ebp)
40c348:	e9 65 fe ff ff       	jmp    0x40c1b2
40c34d:	8b f7                	mov    %edi,%esi
40c34f:	8d 4e 02             	lea    0x2(%esi),%ecx
40c352:	66 8b 06             	mov    (%esi),%ax
40c355:	83 c6 02             	add    $0x2,%esi
40c358:	66 85 c0             	test   %ax,%ax
40c35b:	75 f5                	jne    0x40c352
40c35d:	2b f1                	sub    %ecx,%esi
40c35f:	d1 fe                	sar    $1,%esi
40c361:	e9 61 ff ff ff       	jmp    0x40c2c7
40c366:	8b 75 e0             	mov    -0x20(%ebp),%esi
40c369:	8b 45 08             	mov    0x8(%ebp),%eax
40c36c:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
40c372:	e9 5c fd ff ff       	jmp    0x40c0d3
40c377:	8d 0c 7b             	lea    (%ebx,%edi,2),%ecx
40c37a:	8d 51 02             	lea    0x2(%ecx),%edx
40c37d:	8d 49 00             	lea    0x0(%ecx),%ecx
40c380:	66 8b 01             	mov    (%ecx),%ax
40c383:	83 c1 02             	add    $0x2,%ecx
40c386:	66 85 c0             	test   %ax,%ax
40c389:	75 f5                	jne    0x40c380
40c38b:	2b ca                	sub    %edx,%ecx
40c38d:	d1 f9                	sar    $1,%ecx
40c38f:	03 f1                	add    %ecx,%esi
40c391:	89 75 d4             	mov    %esi,-0x2c(%ebp)
40c394:	85 f6                	test   %esi,%esi
40c396:	0f 89 04 ff ff ff    	jns    0x40c2a0
40c39c:	33 f6                	xor    %esi,%esi
40c39e:	e9 fd fe ff ff       	jmp    0x40c2a0
40c3a3:	8d 3c 7b             	lea    (%ebx,%edi,2),%edi
40c3a6:	8b f7                	mov    %edi,%esi
40c3a8:	8d 4e 02             	lea    0x2(%esi),%ecx
40c3ab:	eb 03                	jmp    0x40c3b0
40c3ad:	8d 49 00             	lea    0x0(%ecx),%ecx
40c3b0:	66 8b 06             	mov    (%esi),%ax
40c3b3:	83 c6 02             	add    $0x2,%esi
40c3b6:	66 85 c0             	test   %ax,%ax
40c3b9:	75 f5                	jne    0x40c3b0
40c3bb:	eb a0                	jmp    0x40c35d
40c3bd:	8b cb                	mov    %ebx,%ecx
40c3bf:	8d 51 02             	lea    0x2(%ecx),%edx
40c3c2:	66 8b 01             	mov    (%ecx),%ax
40c3c5:	83 c1 02             	add    $0x2,%ecx
40c3c8:	66 85 c0             	test   %ax,%ax
40c3cb:	75 f5                	jne    0x40c3c2
40c3cd:	2b ca                	sub    %edx,%ecx
40c3cf:	d1 f9                	sar    $1,%ecx
40c3d1:	e9 73 fe ff ff       	jmp    0x40c249
40c3d6:	8b fb                	mov    %ebx,%edi
40c3d8:	8d 4f 02             	lea    0x2(%edi),%ecx
40c3db:	eb 03                	jmp    0x40c3e0
40c3dd:	8d 49 00             	lea    0x0(%ecx),%ecx
40c3e0:	66 8b 07             	mov    (%edi),%ax
40c3e3:	83 c7 02             	add    $0x2,%edi
40c3e6:	66 85 c0             	test   %ax,%ax
40c3e9:	75 f5                	jne    0x40c3e0
40c3eb:	2b f9                	sub    %ecx,%edi
40c3ed:	d1 ff                	sar    $1,%edi
40c3ef:	e9 79 fe ff ff       	jmp    0x40c26d
40c3f4:	8b cf                	mov    %edi,%ecx
40c3f6:	e8 65 18 00 00       	call   0x40dc60
40c3fb:	8b 4d c8             	mov    -0x38(%ebp),%ecx
40c3fe:	e8 5d 18 00 00       	call   0x40dc60
40c403:	c3                   	ret
40c404:	cc                   	int3
40c405:	cc                   	int3
40c406:	cc                   	int3
40c407:	cc                   	int3
40c408:	cc                   	int3
40c409:	cc                   	int3
40c40a:	cc                   	int3
40c40b:	cc                   	int3
40c40c:	cc                   	int3
40c40d:	cc                   	int3
40c40e:	cc                   	int3
40c40f:	cc                   	int3
40c410:	8b ff                	mov    %edi,%edi
40c412:	55                   	push   %ebp
40c413:	8b ec                	mov    %esp,%ebp
40c415:	83 ec 14             	sub    $0x14,%esp
40c418:	53                   	push   %ebx
40c419:	56                   	push   %esi
40c41a:	8d 45 f4             	lea    -0xc(%ebp),%eax
40c41d:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
40c424:	57                   	push   %edi
40c425:	33 c9                	xor    %ecx,%ecx
40c427:	89 45 f8             	mov    %eax,-0x8(%ebp)
40c42a:	e8 61 f7 ff ff       	call   0x40bb90
40c42f:	8b d8                	mov    %eax,%ebx
40c431:	89 5d f0             	mov    %ebx,-0x10(%ebp)
40c434:	8b 0d cc 65 43 00    	mov    0x4365cc,%ecx
40c43a:	66 83 39 00          	cmpw   $0x0,(%ecx)
40c43e:	74 2d                	je     0x40c46d
40c440:	b9 01 00 00 00       	mov    $0x1,%ecx
40c445:	e8 26 08 00 00       	call   0x40cc70
40c44a:	3d 00 40 00 00       	cmp    $0x4000,%eax
40c44f:	74 2b                	je     0x40c47c
40c451:	8b 75 f8             	mov    -0x8(%ebp),%esi
40c454:	8b ce                	mov    %esi,%ecx
40c456:	e8 75 1a 00 00       	call   0x40ded0
40c45b:	85 c0                	test   %eax,%eax
40c45d:	0f 85 e7 00 00 00    	jne    0x40c54a
40c463:	50                   	push   %eax
40c464:	33 d2                	xor    %edx,%edx
40c466:	33 c9                	xor    %ecx,%ecx
40c468:	e8 a3 0a 00 00       	call   0x40cf10
40c46d:	8b 45 f4             	mov    -0xc(%ebp),%eax
40c470:	5f                   	pop    %edi
40c471:	89 43 34             	mov    %eax,0x34(%ebx)
40c474:	8b c3                	mov    %ebx,%eax
40c476:	5e                   	pop    %esi
40c477:	5b                   	pop    %ebx
40c478:	8b e5                	mov    %ebp,%esp
40c47a:	5d                   	pop    %ebp
40c47b:	c3                   	ret
40c47c:	8b 4b 3c             	mov    0x3c(%ebx),%ecx
40c47f:	8b 3d fc 66 43 00    	mov    0x4366fc,%edi
40c485:	85 c9                	test   %ecx,%ecx
40c487:	0f 85 e6 0b 01 00    	jne    0x41d073
40c48d:	8d 0c 3f             	lea    (%edi,%edi,1),%ecx
40c490:	e8 3b 18 00 00       	call   0x40dcd0
40c495:	8b f0                	mov    %eax,%esi
40c497:	89 75 fc             	mov    %esi,-0x4(%ebp)
40c49a:	85 f6                	test   %esi,%esi
40c49c:	0f 84 1b 0c 01 00    	je     0x41d0bd
40c4a2:	8b 4b 3c             	mov    0x3c(%ebx),%ecx
40c4a5:	85 c9                	test   %ecx,%ecx
40c4a7:	0f 85 df 0b 01 00    	jne    0x41d08c
40c4ad:	33 c0                	xor    %eax,%eax
40c4af:	85 ff                	test   %edi,%edi
40c4b1:	0f 84 e4 0b 01 00    	je     0x41d09b
40c4b7:	81 ff ff ff ff 7f    	cmp    $0x7fffffff,%edi
40c4bd:	0f 87 d8 0b 01 00    	ja     0x41d09b
40c4c3:	85 c0                	test   %eax,%eax
40c4c5:	0f 88 eb 0b 01 00    	js     0x41d0b6
40c4cb:	33 c0                	xor    %eax,%eax
40c4cd:	8b cf                	mov    %edi,%ecx
40c4cf:	8b d6                	mov    %esi,%edx
40c4d1:	85 ff                	test   %edi,%edi
40c4d3:	0f 84 d8 0b 01 00    	je     0x41d0b1
40c4d9:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
40c4e0:	66 39 02             	cmp    %ax,(%edx)
40c4e3:	0f 85 bc 0b 01 00    	jne    0x41d0a5
40c4e9:	85 c9                	test   %ecx,%ecx
40c4eb:	0f 84 c0 0b 01 00    	je     0x41d0b1
40c4f1:	8b d7                	mov    %edi,%edx
40c4f3:	2b d1                	sub    %ecx,%edx
40c4f5:	85 c0                	test   %eax,%eax
40c4f7:	78 49                	js     0x40c542
40c4f9:	8b 45 fc             	mov    -0x4(%ebp),%eax
40c4fc:	8b f7                	mov    %edi,%esi
40c4fe:	8d 04 50             	lea    (%eax,%edx,2),%eax
40c501:	2b f2                	sub    %edx,%esi
40c503:	74 2c                	je     0x40c531
40c505:	8b ce                	mov    %esi,%ecx
40c507:	81 c2 fe ff ff 7f    	add    $0x7ffffffe,%edx
40c50d:	2b cf                	sub    %edi,%ecx
40c50f:	bf f0 4a 44 00       	mov    $0x444af0,%edi
40c514:	03 d1                	add    %ecx,%edx
40c516:	2b f8                	sub    %eax,%edi
40c518:	85 d2                	test   %edx,%edx
40c51a:	74 1a                	je     0x40c536
40c51c:	0f b7 0c 07          	movzwl (%edi,%eax,1),%ecx
40c520:	66 85 c9             	test   %cx,%cx
40c523:	74 11                	je     0x40c536
40c525:	66 89 08             	mov    %cx,(%eax)
40c528:	4a                   	dec    %edx
40c529:	83 c0 02             	add    $0x2,%eax
40c52c:	83 ee 01             	sub    $0x1,%esi
40c52f:	75 e7                	jne    0x40c518
40c531:	83 e8 02             	sub    $0x2,%eax
40c534:	eb 04                	jmp    0x40c53a
40c536:	85 f6                	test   %esi,%esi
40c538:	74 f7                	je     0x40c531
40c53a:	8b 75 fc             	mov    -0x4(%ebp),%esi
40c53d:	33 c9                	xor    %ecx,%ecx
40c53f:	66 89 08             	mov    %cx,(%eax)
40c542:	89 73 3c             	mov    %esi,0x3c(%ebx)
40c545:	e9 ea fe ff ff       	jmp    0x40c434
40c54a:	8b 06                	mov    (%esi),%eax
40c54c:	8d 64 24 00          	lea    0x0(%esp),%esp
40c550:	8d 58 14             	lea    0x14(%eax),%ebx
40c553:	8b 03                	mov    (%ebx),%eax
40c555:	89 5d f8             	mov    %ebx,-0x8(%ebp)
40c558:	85 c0                	test   %eax,%eax
40c55a:	75 f4                	jne    0x40c550
40c55c:	8b 5d f0             	mov    -0x10(%ebp),%ebx
40c55f:	e9 d0 fe ff ff       	jmp    0x40c434
40c564:	cc                   	int3
40c565:	cc                   	int3
40c566:	cc                   	int3
40c567:	cc                   	int3
40c568:	cc                   	int3
40c569:	cc                   	int3
40c56a:	cc                   	int3
40c56b:	cc                   	int3
40c56c:	cc                   	int3
40c56d:	cc                   	int3
40c56e:	cc                   	int3
40c56f:	cc                   	int3
40c570:	8b ff                	mov    %edi,%edi
40c572:	55                   	push   %ebp
40c573:	8b ec                	mov    %esp,%ebp
40c575:	83 ec 08             	sub    $0x8,%esp
40c578:	8b c1                	mov    %ecx,%eax
40c57a:	89 55 f8             	mov    %edx,-0x8(%ebp)
40c57d:	53                   	push   %ebx
40c57e:	56                   	push   %esi
40c57f:	8b 75 08             	mov    0x8(%ebp),%esi
40c582:	89 45 fc             	mov    %eax,-0x4(%ebp)
40c585:	a3 ec 65 43 00       	mov    %eax,0x4365ec
40c58a:	a1 78 67 43 00       	mov    0x436778,%eax
40c58f:	57                   	push   %edi
40c590:	3b c6                	cmp    %esi,%eax
40c592:	76 3f                	jbe    0x40c5d3
40c594:	8b 15 84 67 43 00    	mov    0x436784,%edx
40c59a:	85 d2                	test   %edx,%edx
40c59c:	74 35                	je     0x40c5d3
40c59e:	8b 4a 04             	mov    0x4(%edx),%ecx
40c5a1:	48                   	dec    %eax
40c5a2:	52                   	push   %edx
40c5a3:	c7 02 00 00 00 00    	movl   $0x0,(%edx)
40c5a9:	6a 00                	push   $0x0
40c5ab:	89 0d 84 67 43 00    	mov    %ecx,0x436784
40c5b1:	a3 78 67 43 00       	mov    %eax,0x436778
40c5b6:	c7 42 04 00 00 00 00 	movl   $0x0,0x4(%edx)
40c5bd:	ff 15 34 a1 44 00    	call   *0x44a134
40c5c3:	50                   	push   %eax
40c5c4:	ff 15 3c a1 44 00    	call   *0x44a13c
40c5ca:	a1 78 67 43 00       	mov    0x436778,%eax
40c5cf:	3b c6                	cmp    %esi,%eax
40c5d1:	77 c1                	ja     0x40c594
40c5d3:	33 f6                	xor    %esi,%esi
40c5d5:	33 db                	xor    %ebx,%ebx
40c5d7:	8d 7e 04             	lea    0x4(%esi),%edi
40c5da:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
40c5e0:	83 fe 01             	cmp    $0x1,%esi
40c5e3:	77 0e                	ja     0x40c5f3
40c5e5:	8b 83 7c 67 43 00    	mov    0x43677c(%ebx),%eax
40c5eb:	85 c0                	test   %eax,%eax
40c5ed:	0f 85 a2 00 00 00    	jne    0x40c695
40c5f3:	46                   	inc    %esi
40c5f4:	8b df                	mov    %edi,%ebx
40c5f6:	83 c7 04             	add    $0x4,%edi
40c5f9:	83 fe 02             	cmp    $0x2,%esi
40c5fc:	7c e2                	jl     0x40c5e0
40c5fe:	8b 45 fc             	mov    -0x4(%ebp),%eax
40c601:	a3 d8 65 43 00       	mov    %eax,0x4365d8
40c606:	8b 45 f8             	mov    -0x8(%ebp),%eax
40c609:	a3 d4 65 43 00       	mov    %eax,0x4365d4
40c60e:	33 c0                	xor    %eax,%eax
40c610:	50                   	push   %eax
40c611:	68 b0 0a 44 00       	push   $0x440ab0
40c616:	66 a3 c2 25 43 00    	mov    %ax,0x4325c2
40c61c:	c7 05 cc 65 43 00 c2 	movl   $0x4325c2,0x4365cc
40c623:	25 43 00
40c626:	c7 05 c8 65 43 00 c2 	movl   $0x4325c2,0x4365c8
40c62d:	25 43 00
40c630:	e8 7c b9 00 00       	call   0x417fb1
40c635:	83 c4 08             	add    $0x8,%esp
40c638:	85 c0                	test   %eax,%eax
40c63a:	75 49                	jne    0x40c685
40c63c:	33 c9                	xor    %ecx,%ecx
40c63e:	a3 f8 66 43 00       	mov    %eax,0x4366f8
40c643:	a3 f0 65 43 00       	mov    %eax,0x4365f0
40c648:	e8 77 e2 ff ff       	call   0x40a8c4
40c64d:	8b f0                	mov    %eax,%esi
40c64f:	85 f6                	test   %esi,%esi
40c651:	74 3b                	je     0x40c68e
40c653:	8b 0d cc 65 43 00    	mov    0x4365cc,%ecx
40c659:	66 83 39 00          	cmpw   $0x0,(%ecx)
40c65d:	74 10                	je     0x40c66f
40c65f:	33 c9                	xor    %ecx,%ecx
40c661:	e8 0a 06 00 00       	call   0x40cc70
40c666:	83 f8 0a             	cmp    $0xa,%eax
40c669:	0f 85 61 0a 01 00    	jne    0x41d0d0
40c66f:	33 c0                	xor    %eax,%eax
40c671:	80 3d 5a 90 44 00 00 	cmpb   $0x0,0x44905a
40c678:	a3 90 67 43 00       	mov    %eax,0x436790