41358a:	75 0e                	jne    0x41359a
41358c:	6a 01                	push   $0x1
41358e:	8b cd                	mov    %ebp,%ecx
413590:	e8 70 75 ff ff       	call   0x40ab05
413595:	5f                   	pop    %edi
413596:	5e                   	pop    %esi
413597:	5d                   	pop    %ebp
413598:	5b                   	pop    %ebx
413599:	c3                   	ret
41359a:	8b 45 0c             	mov    0xc(%ebp),%eax
41359d:	83 f8 1f             	cmp    $0x1f,%eax
4135a0:	77 04                	ja     0x4135a6
4135a2:	3b c3                	cmp    %ebx,%eax
4135a4:	73 11                	jae    0x4135b7
4135a6:	6a 01                	push   $0x1
4135a8:	8b cd                	mov    %ebp,%ecx
4135aa:	e8 56 75 ff ff       	call   0x40ab05
4135af:	53                   	push   %ebx
4135b0:	8b cd                	mov    %ebp,%ecx
4135b2:	e8 9a 74 ff ff       	call   0x40aa51
4135b7:	8b 7d 04             	mov    0x4(%ebp),%edi
4135ba:	8b cb                	mov    %ebx,%ecx
4135bc:	8b c1                	mov    %ecx,%eax
4135be:	c1 e9 02             	shr    $0x2,%ecx
4135c1:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
4135c3:	8b c8                	mov    %eax,%ecx
4135c5:	83 e1 03             	and    $0x3,%ecx
4135c8:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
4135ca:	8b 4d 04             	mov    0x4(%ebp),%ecx
4135cd:	89 5d 08             	mov    %ebx,0x8(%ebp)
4135d0:	c6 04 0b 00          	movb   $0x0,(%ebx,%ecx,1)
4135d4:	5f                   	pop    %edi
4135d5:	5e                   	pop    %esi
4135d6:	5d                   	pop    %ebp
4135d7:	5b                   	pop    %ebx
4135d8:	c3                   	ret
4135d9:	90                   	nop
4135da:	90                   	nop
4135db:	90                   	nop
4135dc:	90                   	nop
4135dd:	90                   	nop
4135de:	90                   	nop
4135df:	90                   	nop
4135e0:	51                   	push   %ecx
4135e1:	8b 41 1c             	mov    0x1c(%ecx),%eax
4135e4:	53                   	push   %ebx
4135e5:	55                   	push   %ebp
4135e6:	56                   	push   %esi
4135e7:	8b 00                	mov    (%eax),%eax
4135e9:	57                   	push   %edi
4135ea:	85 c0                	test   %eax,%eax
4135ec:	89 4c 24 10          	mov    %ecx,0x10(%esp)
4135f0:	74 48                	je     0x41363a
4135f2:	8b 51 0c             	mov    0xc(%ecx),%edx
4135f5:	39 02                	cmp    %eax,(%edx)
4135f7:	73 41                	jae    0x41363a
4135f9:	8b 74 24 18          	mov    0x18(%esp),%esi
4135fd:	33 d2                	xor    %edx,%edx
4135ff:	83 fe ff             	cmp    $0xffffffff,%esi
413602:	0f 94 c2             	sete   %dl
413605:	84 d2                	test   %dl,%dl
413607:	75 10                	jne    0x413619
413609:	33 d2                	xor    %edx,%edx
41360b:	8a 50 ff             	mov    -0x1(%eax),%dl
41360e:	33 c0                	xor    %eax,%eax
413610:	3b d6                	cmp    %esi,%edx
413612:	0f 94 c0             	sete   %al
413615:	84 c0                	test   %al,%al
413617:	74 25                	je     0x41363e
413619:	8b 41 2c             	mov    0x2c(%ecx),%eax
41361c:	8b 28                	mov    (%eax),%ebp
41361e:	45                   	inc    %ebp
41361f:	89 28                	mov    %ebp,(%eax)
413621:	8b 49 1c             	mov    0x1c(%ecx),%ecx
413624:	8b c6                	mov    %esi,%eax
413626:	8b 19                	mov    (%ecx),%ebx
413628:	4b                   	dec    %ebx
413629:	40                   	inc    %eax
41362a:	f7 d8                	neg    %eax
41362c:	1b c0                	sbb    %eax,%eax
41362e:	89 19                	mov    %ebx,(%ecx)
413630:	23 c6                	and    %esi,%eax
413632:	5f                   	pop    %edi
413633:	5e                   	pop    %esi
413634:	5d                   	pop    %ebp
413635:	5b                   	pop    %ebx
413636:	59                   	pop    %ecx
413637:	c2 04 00             	ret    $0x4
41363a:	8b 74 24 18          	mov    0x18(%esp),%esi
41363e:	8b 41 50             	mov    0x50(%ecx),%eax
413641:	85 c0                	test   %eax,%eax
413643:	0f 84 61 01 00 00    	je     0x4137aa
413649:	33 d2                	xor    %edx,%edx
41364b:	83 fe ff             	cmp    $0xffffffff,%esi
41364e:	0f 94 c2             	sete   %dl
413651:	84 d2                	test   %dl,%dl
413653:	0f 85 51 01 00 00    	jne    0x4137aa
413659:	8b 51 38             	mov    0x38(%ecx),%edx
41365c:	85 d2                	test   %edx,%edx
41365e:	75 2b                	jne    0x41368b
413660:	50                   	push   %eax
413661:	8b c6                	mov    %esi,%eax
413663:	25 ff 00 00 00       	and    $0xff,%eax
413668:	50                   	push   %eax
413669:	e8 92 48 00 00       	call   0x417f00
41366e:	83 c4 08             	add    $0x8,%esp
413671:	33 c9                	xor    %ecx,%ecx
413673:	83 f8 ff             	cmp    $0xffffffff,%eax
413676:	0f 95 c1             	setne  %cl
413679:	84 c9                	test   %cl,%cl
41367b:	0f 84 29 01 00 00    	je     0x4137aa
413681:	8b c6                	mov    %esi,%eax
413683:	5f                   	pop    %edi
413684:	5e                   	pop    %esi
413685:	5d                   	pop    %ebp
413686:	5b                   	pop    %ebx
413687:	59                   	pop    %ecx
413688:	c2 04 00             	ret    $0x4
41368b:	8b 79 44             	mov    0x44(%ecx),%edi
41368e:	8b 6f 08             	mov    0x8(%edi),%ebp
413691:	85 ed                	test   %ebp,%ebp
413693:	0f 86 11 01 00 00    	jbe    0x4137aa
413699:	8b 47 04             	mov    0x4(%edi),%eax
41369c:	85 c0                	test   %eax,%eax
41369e:	74 1b                	je     0x4136bb
4136a0:	8a 40 ff             	mov    -0x1(%eax),%al
4136a3:	84 c0                	test   %al,%al
4136a5:	74 14                	je     0x4136bb
4136a7:	3c ff                	cmp    $0xff,%al
4136a9:	74 10                	je     0x4136bb
4136ab:	8b d5                	mov    %ebp,%edx
4136ad:	6a 00                	push   $0x0
4136af:	52                   	push   %edx
4136b0:	8b cf                	mov    %edi,%ecx
4136b2:	e8 0f 73 ff ff       	call   0x40a9c6
4136b7:	8b 4c 24 10          	mov    0x10(%esp),%ecx
4136bb:	8b 47 04             	mov    0x4(%edi),%eax
4136be:	85 c0                	test   %eax,%eax
4136c0:	74 04                	je     0x4136c6
4136c2:	c6 40 ff ff          	movb   $0xff,-0x1(%eax)
4136c6:	8b 57 04             	mov    0x4(%edi),%edx
4136c9:	8b 59 50             	mov    0x50(%ecx),%ebx
4136cc:	8b f5                	mov    %ebp,%esi
4136ce:	03 f2                	add    %edx,%esi
4136d0:	85 ed                	test   %ebp,%ebp
4136d2:	76 1d                	jbe    0x4136f1
4136d4:	4e                   	dec    %esi
4136d5:	33 c0                	xor    %eax,%eax
4136d7:	53                   	push   %ebx
4136d8:	8a 06                	mov    (%esi),%al
4136da:	50                   	push   %eax
4136db:	e8 20 48 00 00       	call   0x417f00
4136e0:	83 c4 08             	add    $0x8,%esp
4136e3:	83 f8 ff             	cmp    $0xffffffff,%eax
4136e6:	74 03                	je     0x4136eb
4136e8:	4d                   	dec    %ebp
4136e9:	75 e9                	jne    0x4136d4
4136eb:	8b 4c 24 10          	mov    0x10(%esp),%ecx
4136ef:	85 ed                	test   %ebp,%ebp
4136f1:	74 27                	je     0x41371a
4136f3:	83 fd 01             	cmp    $0x1,%ebp
4136f6:	0f 83 ae 00 00 00    	jae    0x4137aa
4136fc:	be 01 00 00 00       	mov    $0x1,%esi
413701:	2b f5                	sub    %ebp,%esi
413703:	53                   	push   %ebx
413704:	e8 a7 47 00 00       	call   0x417eb0
413709:	83 c4 04             	add    $0x4,%esp
41370c:	4e                   	dec    %esi
41370d:	75 f4                	jne    0x413703
41370f:	83 c8 ff             	or     $0xffffffff,%eax
413712:	5f                   	pop    %edi
413713:	5e                   	pop    %esi
413714:	5d                   	pop    %ebp
413715:	5b                   	pop    %ebx
413716:	59                   	pop    %ecx
413717:	c2 04 00             	ret    $0x4
41371a:	8b 71 44             	mov    0x44(%ecx),%esi
41371d:	8b 1d 90 ca 42 00    	mov    0x42ca90,%ebx
413723:	8b 6e 04             	mov    0x4(%esi),%ebp
413726:	85 ed                	test   %ebp,%ebp
413728:	74 2d                	je     0x413757
41372a:	8a 45 ff             	mov    -0x1(%ebp),%al
41372d:	84 c0                	test   %al,%al
41372f:	74 26                	je     0x413757
413731:	3c ff                	cmp    $0xff,%al
413733:	74 22                	je     0x413757
413735:	6a 01                	push   $0x1
413737:	8b ce                	mov    %esi,%ecx
413739:	e8 c7 73 ff ff       	call   0x40ab05
41373e:	8b fd                	mov    %ebp,%edi
413740:	83 c9 ff             	or     $0xffffffff,%ecx
413743:	33 c0                	xor    %eax,%eax
413745:	f2 ae                	repnz scas %es:(%edi),%al
413747:	f7 d1                	not    %ecx
413749:	49                   	dec    %ecx
41374a:	51                   	push   %ecx
41374b:	55                   	push   %ebp
41374c:	8b ce                	mov    %esi,%ecx
41374e:	e8 3e 72 ff ff       	call   0x40a991
413753:	8b 4c 24 10          	mov    0x10(%esp),%ecx
413757:	8b 46 08             	mov    0x8(%esi),%eax
41375a:	3b c3                	cmp    %ebx,%eax
41375c:	73 02                	jae    0x413760
41375e:	8b d8                	mov    %eax,%ebx
413760:	85 db                	test   %ebx,%ebx
413762:	76 34                	jbe    0x413798
413764:	8b 4e 04             	mov    0x4(%esi),%ecx
413767:	2b c3                	sub    %ebx,%eax
413769:	50                   	push   %eax
41376a:	8d 14 0b             	lea    (%ebx,%ecx,1),%edx
41376d:	52                   	push   %edx
41376e:	51                   	push   %ecx
41376f:	e8 2c 98 ff ff       	call   0x40cfa0
413774:	8b 7e 08             	mov    0x8(%esi),%edi
413777:	83 c4 0c             	add    $0xc,%esp
41377a:	2b fb                	sub    %ebx,%edi
41377c:	8b ce                	mov    %esi,%ecx
41377e:	6a 00                	push   $0x0
413780:	57                   	push   %edi
413781:	e8 40 72 ff ff       	call   0x40a9c6
413786:	84 c0                	test   %al,%al
413788:	74 0a                	je     0x413794
41378a:	8b 46 04             	mov    0x4(%esi),%eax
41378d:	89 7e 08             	mov    %edi,0x8(%esi)
413790:	c6 04 07 00          	movb   $0x0,(%edi,%eax,1)
413794:	8b 4c 24 10          	mov    0x10(%esp),%ecx
413798:	8b 51 3c             	mov    0x3c(%ecx),%edx
41379b:	8b 44 24 18          	mov    0x18(%esp),%eax
41379f:	89 51 40             	mov    %edx,0x40(%ecx)
4137a2:	5f                   	pop    %edi
4137a3:	5e                   	pop    %esi
4137a4:	5d                   	pop    %ebp
4137a5:	5b                   	pop    %ebx
4137a6:	59                   	pop    %ecx
4137a7:	c2 04 00             	ret    $0x4
4137aa:	5f                   	pop    %edi
4137ab:	5e                   	pop    %esi
4137ac:	5d                   	pop    %ebp
4137ad:	83 c8 ff             	or     $0xffffffff,%eax
4137b0:	5b                   	pop    %ebx
4137b1:	59                   	pop    %ecx
4137b2:	c2 04 00             	ret    $0x4
4137b5:	90                   	nop
4137b6:	90                   	nop
4137b7:	90                   	nop
4137b8:	90                   	nop
4137b9:	90                   	nop
4137ba:	90                   	nop
4137bb:	90                   	nop
4137bc:	90                   	nop
4137bd:	90                   	nop
4137be:	90                   	nop
4137bf:	90                   	nop
4137c0:	56                   	push   %esi
4137c1:	8b f1                	mov    %ecx,%esi
4137c3:	57                   	push   %edi
4137c4:	8b 46 1c             	mov    0x1c(%esi),%eax
4137c7:	8b 00                	mov    (%eax),%eax
4137c9:	85 c0                	test   %eax,%eax
4137cb:	74 14                	je     0x4137e1
4137cd:	8b 4e 2c             	mov    0x2c(%esi),%ecx
4137d0:	8b 11                	mov    (%ecx),%edx
4137d2:	03 d0                	add    %eax,%edx
4137d4:	3b c2                	cmp    %edx,%eax
4137d6:	73 09                	jae    0x4137e1
4137d8:	33 c9                	xor    %ecx,%ecx
4137da:	8a 08                	mov    (%eax),%cl
4137dc:	8b c1                	mov    %ecx,%eax
4137de:	5f                   	pop    %edi
4137df:	5e                   	pop    %esi
4137e0:	c3                   	ret
4137e1:	8b 3e                	mov    (%esi),%edi
4137e3:	8b ce                	mov    %esi,%ecx
4137e5:	ff 57 14             	call   *0x14(%edi)
4137e8:	50                   	push   %eax
4137e9:	8b ce                	mov    %esi,%ecx
4137eb:	ff 57 08             	call   *0x8(%edi)
4137ee:	5f                   	pop    %edi
4137ef:	5e                   	pop    %esi
4137f0:	c3                   	ret
4137f1:	90                   	nop
4137f2:	90                   	nop
4137f3:	90                   	nop
4137f4:	90                   	nop
4137f5:	90                   	nop
4137f6:	90                   	nop
4137f7:	90                   	nop
4137f8:	90                   	nop
4137f9:	90                   	nop
4137fa:	90                   	nop
4137fb:	90                   	nop
4137fc:	90                   	nop
4137fd:	90                   	nop
4137fe:	90                   	nop
4137ff:	90                   	nop
413800:	83 ec 0c             	sub    $0xc,%esp
413803:	53                   	push   %ebx
413804:	55                   	push   %ebp
413805:	56                   	push   %esi
413806:	8b f1                	mov    %ecx,%esi
413808:	57                   	push   %edi
413809:	8b 46 1c             	mov    0x1c(%esi),%eax
41380c:	8b 00                	mov    (%eax),%eax
41380e:	85 c0                	test   %eax,%eax
413810:	74 27                	je     0x413839
413812:	8b 4e 2c             	mov    0x2c(%esi),%ecx
413815:	8b 11                	mov    (%ecx),%edx
413817:	8d 3c 02             	lea    (%edx,%eax,1),%edi
41381a:	3b c7                	cmp    %edi,%eax
41381c:	73 1b                	jae    0x413839
41381e:	4a                   	dec    %edx
41381f:	89 11                	mov    %edx,(%ecx)
413821:	8b 76 1c             	mov    0x1c(%esi),%esi
413824:	33 d2                	xor    %edx,%edx
413826:	8b 06                	mov    (%esi),%eax
413828:	8d 48 01             	lea    0x1(%eax),%ecx
41382b:	89 0e                	mov    %ecx,(%esi)
41382d:	8a 10                	mov    (%eax),%dl
41382f:	8b c2                	mov    %edx,%eax
413831:	5f                   	pop    %edi
413832:	5e                   	pop    %esi
413833:	5d                   	pop    %ebp
413834:	5b                   	pop    %ebx
413835:	83 c4 0c             	add    $0xc,%esp
413838:	c3                   	ret
413839:	8b 46 50             	mov    0x50(%esi),%eax
41383c:	85 c0                	test   %eax,%eax
41383e:	75 0b                	jne    0x41384b
413840:	83 c8 ff             	or     $0xffffffff,%eax
413843:	5f                   	pop    %edi
413844:	5e                   	pop    %esi
413845:	5d                   	pop    %ebp
413846:	5b                   	pop    %ebx
413847:	83 c4 0c             	add    $0xc,%esp
41384a:	c3                   	ret
41384b:	8b 4e 38             	mov    0x38(%esi),%ecx
41384e:	85 c9                	test   %ecx,%ecx
413850:	75 31                	jne    0x413883
413852:	50                   	push   %eax
413853:	e8 58 46 00 00       	call   0x417eb0
413858:	83 c4 04             	add    $0x4,%esp
41385b:	83 f8 ff             	cmp    $0xffffffff,%eax
41385e:	75 04                	jne    0x413864
413860:	32 c0                	xor    %al,%al
413862:	eb 06                	jmp    0x41386a
413864:	88 44 24 10          	mov    %al,0x10(%esp)
413868:	b0 01                	mov    $0x1,%al
41386a:	84 c0                	test   %al,%al
41386c:	0f 84 43 01 00 00    	je     0x4139b5
413872:	8b 44 24 10          	mov    0x10(%esp),%eax