4223c6:	e8 09 12 fe ff       	call   0x4035d4
4223cb:	8b da                	mov    %edx,%ebx
4223cd:	8b f0                	mov    %eax,%esi
4223cf:	8b c6                	mov    %esi,%eax
4223d1:	e8 fe 06 00 00       	call   0x422ad4
4223d6:	8b 46 28             	mov    0x28(%esi),%eax
4223d9:	e8 da f4 ff ff       	call   0x4218b8
4223de:	8b 46 2c             	mov    0x2c(%esi),%eax
4223e1:	e8 62 0e fe ff       	call   0x403248
4223e6:	8b d3                	mov    %ebx,%edx
4223e8:	80 e2 fc             	and    $0xfc,%dl
4223eb:	8b c6                	mov    %esi,%eax
4223ed:	e8 72 1f ff ff       	call   0x414364
4223f2:	84 db                	test   %bl,%bl
4223f4:	7e 07                	jle    0x4223fd
4223f6:	8b c6                	mov    %esi,%eax
4223f8:	e8 bf 11 fe ff       	call   0x4035bc
4223fd:	5e                   	pop    %esi
4223fe:	5b                   	pop    %ebx
4223ff:	c3                   	ret
422400:	55                   	push   %ebp
422401:	8b ec                	mov    %esp,%ebp
422403:	83 c4 a8             	add    $0xffffffa8,%esp
422406:	53                   	push   %ebx
422407:	56                   	push   %esi
422408:	8b da                	mov    %edx,%ebx
42240a:	89 45 fc             	mov    %eax,-0x4(%ebp)
42240d:	85 db                	test   %ebx,%ebx
42240f:	74 15                	je     0x422426
422411:	8b c3                	mov    %ebx,%eax
422413:	8b 15 1c c3 41 00    	mov    0x41c31c,%edx
422419:	e8 b6 0f fe ff       	call   0x4033d4
42241e:	84 c0                	test   %al,%al
422420:	0f 84 b9 00 00 00    	je     0x4224df
422426:	68 a8 e8 46 00       	push   $0x46e8a8
42242b:	e8 8c 3b fe ff       	call   0x405fbc
422430:	33 c0                	xor    %eax,%eax
422432:	55                   	push   %ebp
422433:	68 b8 24 42 00       	push   $0x4224b8
422438:	64 ff 30             	push   %fs:(%eax)
42243b:	64 89 20             	mov    %esp,%fs:(%eax)
42243e:	85 db                	test   %ebx,%ebx
422440:	74 3b                	je     0x42247d
422442:	8b f3                	mov    %ebx,%esi
422444:	8b 46 28             	mov    0x28(%esi),%eax
422447:	e8 68 f4 ff ff       	call   0x4218b4
42244c:	8b 45 fc             	mov    -0x4(%ebp),%eax
42244f:	8b 40 28             	mov    0x28(%eax),%eax
422452:	e8 61 f4 ff ff       	call   0x4218b8
422457:	8b 46 28             	mov    0x28(%esi),%eax
42245a:	8b 55 fc             	mov    -0x4(%ebp),%edx
42245d:	89 42 28             	mov    %eax,0x28(%edx)
422460:	8a 46 21             	mov    0x21(%esi),%al
422463:	8b 55 fc             	mov    -0x4(%ebp),%edx
422466:	88 42 21             	mov    %al,0x21(%edx)
422469:	8b 46 34             	mov    0x34(%esi),%eax
42246c:	8b 55 fc             	mov    -0x4(%ebp),%edx
42246f:	89 42 34             	mov    %eax,0x34(%edx)
422472:	8a 46 38             	mov    0x38(%esi),%al
422475:	8b 55 fc             	mov    -0x4(%ebp),%edx
422478:	88 42 38             	mov    %al,0x38(%edx)
42247b:	eb 23                	jmp    0x4224a0
42247d:	8d 45 a8             	lea    -0x58(%ebp),%eax
422480:	33 c9                	xor    %ecx,%ecx
422482:	ba 54 00 00 00       	mov    $0x54,%edx
422487:	e8 d8 07 fe ff       	call   0x402c64
42248c:	8d 45 a8             	lea    -0x58(%ebp),%eax
42248f:	50                   	push   %eax
422490:	6a 00                	push   $0x0
422492:	6a 00                	push   $0x0
422494:	33 c9                	xor    %ecx,%ecx
422496:	33 d2                	xor    %edx,%edx
422498:	8b 45 fc             	mov    -0x4(%ebp),%eax
42249b:	e8 04 09 00 00       	call   0x422da4
4224a0:	33 c0                	xor    %eax,%eax
4224a2:	5a                   	pop    %edx
4224a3:	59                   	pop    %ecx
4224a4:	59                   	pop    %ecx
4224a5:	64 89 10             	mov    %edx,%fs:(%eax)
4224a8:	68 bf 24 42 00       	push   $0x4224bf
4224ad:	68 a8 e8 46 00       	push   $0x46e8a8
4224b2:	e8 6d 3c fe ff       	call   0x406124
4224b7:	c3                   	ret
4224b8:	e9 df 14 fe ff       	jmp    0x40399c
4224bd:	eb ee                	jmp    0x4224ad
4224bf:	8b 45 fc             	mov    -0x4(%ebp),%eax
4224c2:	8b 10                	mov    (%eax),%edx
4224c4:	ff 52 24             	call   *0x24(%edx)
4224c7:	85 c0                	test   %eax,%eax
4224c9:	0f 95 c0             	setne  %al
4224cc:	8b 55 fc             	mov    -0x4(%ebp),%edx
4224cf:	88 42 22             	mov    %al,0x22(%edx)
4224d2:	8b 55 fc             	mov    -0x4(%ebp),%edx
4224d5:	8b 45 fc             	mov    -0x4(%ebp),%eax
4224d8:	8b 08                	mov    (%eax),%ecx
4224da:	ff 51 10             	call   *0x10(%ecx)
4224dd:	eb 0a                	jmp    0x4224e9
4224df:	8b d3                	mov    %ebx,%edx
4224e1:	8b 45 fc             	mov    -0x4(%ebp),%eax
4224e4:	e8 a7 1e ff ff       	call   0x414390
4224e9:	5e                   	pop    %esi
4224ea:	5b                   	pop    %ebx
4224eb:	8b e5                	mov    %ebp,%esp
4224ed:	5d                   	pop    %ebp
4224ee:	c3                   	ret
4224ef:	90                   	nop
4224f0:	55                   	push   %ebp
4224f1:	8b ec                	mov    %esp,%ebp
4224f3:	83 c4 a4             	add    $0xffffffa4,%esp
4224f6:	53                   	push   %ebx
4224f7:	56                   	push   %esi
4224f8:	57                   	push   %edi
4224f9:	8b 75 08             	mov    0x8(%ebp),%esi
4224fc:	8d 7d a4             	lea    -0x5c(%ebp),%edi
4224ff:	51                   	push   %ecx
422500:	b9 15 00 00 00       	mov    $0x15,%ecx
422505:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
422507:	59                   	pop    %ecx
422508:	8b f1                	mov    %ecx,%esi
42250a:	8b fa                	mov    %edx,%edi
42250c:	8b d8                	mov    %eax,%ebx
42250e:	8b c3                	mov    %ebx,%eax
422510:	e8 bf 05 00 00       	call   0x422ad4
422515:	33 c0                	xor    %eax,%eax
422517:	89 45 fc             	mov    %eax,-0x4(%ebp)
42251a:	33 c0                	xor    %eax,%eax
42251c:	89 45 f8             	mov    %eax,-0x8(%ebp)
42251f:	33 c0                	xor    %eax,%eax
422521:	55                   	push   %ebp
422522:	68 7f 25 42 00       	push   $0x42257f
422527:	64 ff 30             	push   %fs:(%eax)
42252a:	64 89 20             	mov    %esp,%fs:(%eax)
42252d:	3b 35 8c e8 46 00    	cmp    0x46e88c,%esi
422533:	75 05                	jne    0x42253a
422535:	89 75 f8             	mov    %esi,-0x8(%ebp)
422538:	eb 0a                	jmp    0x422544
42253a:	8b c6                	mov    %esi,%eax
42253c:	e8 ab fb ff ff       	call   0x4220ec
422541:	89 45 f8             	mov    %eax,-0x8(%ebp)
422544:	8d 45 a4             	lea    -0x5c(%ebp),%eax
422547:	50                   	push   %eax
422548:	8b 43 2c             	mov    0x2c(%ebx),%eax
42254b:	50                   	push   %eax
42254c:	8b 4d f8             	mov    -0x8(%ebp),%ecx
42254f:	8b d6                	mov    %esi,%edx
422551:	8b c7                	mov    %edi,%eax
422553:	e8 30 f5 ff ff       	call   0x421a88
422558:	89 45 fc             	mov    %eax,-0x4(%ebp)
42255b:	8d 45 a4             	lea    -0x5c(%ebp),%eax
42255e:	50                   	push   %eax
42255f:	8b 43 28             	mov    0x28(%ebx),%eax
422562:	8a 40 70             	mov    0x70(%eax),%al
422565:	50                   	push   %eax
422566:	6a 00                	push   $0x0
422568:	8b 4d f8             	mov    -0x8(%ebp),%ecx
42256b:	8b 55 fc             	mov    -0x4(%ebp),%edx
42256e:	8b c3                	mov    %ebx,%eax
422570:	e8 2f 08 00 00       	call   0x422da4
422575:	33 c0                	xor    %eax,%eax
422577:	5a                   	pop    %edx
422578:	59                   	pop    %ecx
422579:	59                   	pop    %ecx
42257a:	64 89 10             	mov    %edx,%fs:(%eax)
42257d:	eb 26                	jmp    0x4225a5
42257f:	e9 64 11 fe ff       	jmp    0x4036e8
422584:	8b 45 f8             	mov    -0x8(%ebp),%eax
422587:	e8 ac 9f ff ff       	call   0x41c538
42258c:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
422590:	74 09                	je     0x42259b
422592:	8b 45 fc             	mov    -0x4(%ebp),%eax
422595:	50                   	push   %eax
422596:	e8 c1 3c fe ff       	call   0x40625c
42259b:	e8 5c 14 fe ff       	call   0x4039fc
4225a0:	e8 ab 14 fe ff       	call   0x403a50
4225a5:	5f                   	pop    %edi
4225a6:	5e                   	pop    %esi
4225a7:	5b                   	pop    %ebx
4225a8:	8b e5                	mov    %ebp,%esp
4225aa:	5d                   	pop    %ebp
4225ab:	c2 04 00             	ret    $0x4
4225ae:	8b c0                	mov    %eax,%eax
4225b0:	53                   	push   %ebx
4225b1:	8b d8                	mov    %eax,%ebx
4225b3:	8b c3                	mov    %ebx,%eax
4225b5:	e8 ea 02 00 00       	call   0x4228a4
4225ba:	8b 43 28             	mov    0x28(%ebx),%eax
4225bd:	33 d2                	xor    %edx,%edx
4225bf:	89 50 50             	mov    %edx,0x50(%eax)
4225c2:	33 d2                	xor    %edx,%edx
4225c4:	89 50 54             	mov    %edx,0x54(%eax)
4225c7:	83 c0 6c             	add    $0x6c,%eax
4225ca:	e8 7d a9 fe ff       	call   0x40cf4c
4225cf:	5b                   	pop    %ebx
4225d0:	c3                   	ret
4225d1:	8d 40 00             	lea    0x0(%eax),%eax
4225d4:	c6 40 31 00          	movb   $0x0,0x31(%eax)
4225d8:	e8 af d1 ff ff       	call   0x41f78c
4225dd:	c3                   	ret
4225de:	8b c0                	mov    %eax,%eax
4225e0:	53                   	push   %ebx
4225e1:	56                   	push   %esi
4225e2:	57                   	push   %edi
4225e3:	83 c4 ac             	add    $0xffffffac,%esp
4225e6:	8b d8                	mov    %eax,%ebx
4225e8:	b2 01                	mov    $0x1,%dl
4225ea:	a1 20 21 41 00       	mov    0x412120,%eax
4225ef:	e8 24 0c fe ff       	call   0x403218
4225f4:	8b f0                	mov    %eax,%esi
4225f6:	8b d6                	mov    %esi,%edx
4225f8:	8b c3                	mov    %ebx,%eax
4225fa:	8b 08                	mov    (%eax),%ecx
4225fc:	ff 51 58             	call   *0x58(%ecx)
4225ff:	8b c6                	mov    %esi,%eax
422601:	8b 10                	mov    (%eax),%edx
422603:	ff 12                	call   *(%edx)
422605:	52                   	push   %edx
422606:	50                   	push   %eax
422607:	8b c6                	mov    %esi,%eax
422609:	e8 f2 3b ff ff       	call   0x416200
42260e:	8b 43 28             	mov    0x28(%ebx),%eax
422611:	56                   	push   %esi
422612:	8d 70 18             	lea    0x18(%eax),%esi
422615:	8d 7c 24 04          	lea    0x4(%esp),%edi
422619:	b9 15 00 00 00       	mov    $0x15,%ecx
42261e:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
422620:	5e                   	pop    %esi
422621:	33 c0                	xor    %eax,%eax
422623:	89 44 24 14          	mov    %eax,0x14(%esp)
422627:	8b c3                	mov    %ebx,%eax
422629:	e8 a6 04 00 00       	call   0x422ad4
42262e:	8d 43 2c             	lea    0x2c(%ebx),%eax
422631:	e8 16 a9 fe ff       	call   0x40cf4c
422636:	54                   	push   %esp
422637:	8b 43 28             	mov    0x28(%ebx),%eax
42263a:	8a 40 70             	mov    0x70(%eax),%al
42263d:	50                   	push   %eax
42263e:	56                   	push   %esi
42263f:	33 c9                	xor    %ecx,%ecx
422641:	33 d2                	xor    %edx,%edx
422643:	8b c3                	mov    %ebx,%eax
422645:	e8 5a 07 00 00       	call   0x422da4
42264a:	83 c4 54             	add    $0x54,%esp
42264d:	5f                   	pop    %edi
42264e:	5e                   	pop    %esi
42264f:	5b                   	pop    %ebx
422650:	c3                   	ret
422651:	8d 40 00             	lea    0x0(%eax),%eax
422654:	55                   	push   %ebp
422655:	8b ec                	mov    %esp,%ebp
422657:	83 c4 e4             	add    $0xffffffe4,%esp
42265a:	53                   	push   %ebx
42265b:	56                   	push   %esi
42265c:	57                   	push   %edi
42265d:	8b f9                	mov    %ecx,%edi
42265f:	89 55 fc             	mov    %edx,-0x4(%ebp)
422662:	8b d8                	mov    %eax,%ebx
422664:	8b 73 28             	mov    0x28(%ebx),%esi
422667:	8a 15 a0 28 42 00    	mov    0x4228a0,%dl
42266d:	8b 45 fc             	mov    -0x4(%ebp),%eax
422670:	e8 3b bc ff ff       	call   0x41e2b0
422675:	8b c3                	mov    %ebx,%eax
422677:	e8 68 05 00 00       	call   0x422be4
42267c:	33 c0                	xor    %eax,%eax
42267e:	89 45 f8             	mov    %eax,-0x8(%ebp)
422681:	c6 45 f7 00          	movb   $0x0,-0x9(%ebp)
422685:	8b 46 10             	mov    0x10(%esi),%eax
422688:	85 c0                	test   %eax,%eax
42268a:	74 22                	je     0x4226ae
42268c:	6a ff                	push   $0xffffffff
42268e:	50                   	push   %eax
42268f:	8b 45 fc             	mov    -0x4(%ebp),%eax
422692:	8b 40 04             	mov    0x4(%eax),%eax
422695:	50                   	push   %eax
422696:	e8 f1 3c fe ff       	call   0x40638c
42269b:	89 45 f8             	mov    %eax,-0x8(%ebp)
42269e:	8b 45 fc             	mov    -0x4(%ebp),%eax
4226a1:	8b 40 04             	mov    0x4(%eax),%eax
4226a4:	50                   	push   %eax
4226a5:	e8 aa 3c fe ff       	call   0x406354
4226aa:	c6 45 f7 01          	movb   $0x1,-0x9(%ebp)
4226ae:	6a 0c                	push   $0xc
4226b0:	8b 45 fc             	mov    -0x4(%ebp),%eax
4226b3:	8b 40 04             	mov    0x4(%eax),%eax
4226b6:	50                   	push   %eax
4226b7:	e8 f0 3b fe ff       	call   0x4062ac
4226bc:	50                   	push   %eax
4226bd:	6a 0e                	push   $0xe
4226bf:	8b 45 fc             	mov    -0x4(%ebp),%eax
4226c2:	8b 40 04             	mov    0x4(%eax),%eax
4226c5:	50                   	push   %eax
4226c6:	e8 e1 3b fe ff       	call   0x4062ac
4226cb:	8b d0                	mov    %eax,%edx
4226cd:	58                   	pop    %eax
4226ce:	f7 ea                	imul   %edx
4226d0:	83 f8 08             	cmp    $0x8,%eax
4226d3:	7f 0f                	jg     0x4226e4
4226d5:	0f b7 56 2a          	movzwl 0x2a(%esi),%edx
4226d9:	0f b7 4e 28          	movzwl 0x28(%esi),%ecx
4226dd:	0f af d1             	imul   %ecx,%edx
4226e0:	3b c2                	cmp    %edx,%eax
4226e2:	7c 04                	jl     0x4226e8
4226e4:	33 c0                	xor    %eax,%eax
4226e6:	eb 02                	jmp    0x4226ea
4226e8:	b0 01                	mov    $0x1,%al
4226ea:	84 c0                	test   %al,%al
4226ec:	74 38                	je     0x422726
4226ee:	8d 45 ef             	lea    -0x11(%ebp),%eax
4226f1:	50                   	push   %eax
4226f2:	8b 45 fc             	mov    -0x4(%ebp),%eax
4226f5:	8b 40 04             	mov    0x4(%eax),%eax
4226f8:	50                   	push   %eax
4226f9:	e8 76 3b fe ff       	call   0x406274
4226fe:	6a 04                	push   $0x4
422700:	8b 45 fc             	mov    -0x4(%ebp),%eax
422703:	8b 40 04             	mov    0x4(%eax),%eax
422706:	50                   	push   %eax
422707:	e8 c0 3c fe ff       	call   0x4063cc
42270c:	8d 45 ef             	lea    -0x11(%ebp),%eax
42270f:	50                   	push   %eax
422710:	8b 45 f3             	mov    -0xd(%ebp),%eax
422713:	50                   	push   %eax
422714:	8b 45 ef             	mov    -0x11(%ebp),%eax
422717:	50                   	push   %eax
422718:	8b 45 fc             	mov    -0x4(%ebp),%eax
42271b:	8b 40 04             	mov    0x4(%eax),%eax
42271e:	50                   	push   %eax
42271f:	e8 80 3c fe ff       	call   0x4063a4
422724:	eb 1b                	jmp    0x422741
422726:	8b c3                	mov    %ebx,%eax
422728:	e8 b3 02 00 00       	call   0x4229e0
42272d:	84 c0                	test   %al,%al
42272f:	75 10                	jne    0x422741
422731:	6a 03                	push   $0x3
422733:	8b 45 fc             	mov    -0x4(%ebp),%eax
422736:	e8 a1 ba ff ff       	call   0x41e1dc
42273b:	50                   	push   %eax
42273c:	e8 8b 3c fe ff       	call   0x4063cc
422741:	33 c0                	xor    %eax,%eax
422743:	55                   	push   %ebp
422744:	68 90 28 42 00       	push   $0x422890
422749:	64 ff 30             	push   %fs:(%eax)
42274c:	64 89 20             	mov    %esp,%fs:(%eax)
42274f:	8b c3                	mov    %ebx,%eax
422751:	8b 10                	mov    (%eax),%edx
422753:	ff 52 28             	call   *0x28(%edx)
422756:	84 c0                	test   %al,%al
422758:	74 07                	je     0x422761
42275a:	8b c3                	mov    %ebx,%eax
42275c:	e8 23 04 00 00       	call   0x422b84
422761:	8b c3                	mov    %ebx,%eax