44966a:	8b 80 94 00 00 00    	mov    0x94(%eax),%eax
449670:	3b f8                	cmp    %eax,%edi
449672:	74 59                	je     0x4496cd
449674:	89 45 f8             	mov    %eax,-0x8(%ebp)
449677:	83 ff ff             	cmp    $0xffffffff,%edi
44967a:	74 31                	je     0x4496ad
44967c:	8b 45 fc             	mov    -0x4(%ebp),%eax
44967f:	89 b8 94 00 00 00    	mov    %edi,0x94(%eax)
449685:	85 ff                	test   %edi,%edi
449687:	74 2f                	je     0x4496b8
449689:	8d 4d e8             	lea    -0x18(%ebp),%ecx
44968c:	8b 55 fc             	mov    -0x4(%ebp),%edx
44968f:	8b c7                	mov    %edi,%eax
449691:	66 be c4 ff          	mov    $0xffc4,%si
449695:	e8 7e a4 fb ff       	call   0x403b18
44969a:	8b 45 fc             	mov    -0x4(%ebp),%eax
44969d:	8b 80 94 00 00 00    	mov    0x94(%eax),%eax
4496a3:	8b 55 fc             	mov    -0x4(%ebp),%edx
4496a6:	e8 39 52 fd ff       	call   0x41e8e4
4496ab:	eb 0b                	jmp    0x4496b8
4496ad:	8b 45 fc             	mov    -0x4(%ebp),%eax
4496b0:	33 d2                	xor    %edx,%edx
4496b2:	89 90 94 00 00 00    	mov    %edx,0x94(%eax)
4496b8:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
4496bc:	74 0f                	je     0x4496cd
4496be:	8b 55 fc             	mov    -0x4(%ebp),%edx
4496c1:	8b 45 f8             	mov    -0x8(%ebp),%eax
4496c4:	66 be be ff          	mov    $0xffbe,%si
4496c8:	e8 4b a4 fb ff       	call   0x403b18
4496cd:	33 c0                	xor    %eax,%eax
4496cf:	5a                   	pop    %edx
4496d0:	59                   	pop    %ecx
4496d1:	59                   	pop    %ecx
4496d2:	64 89 10             	mov    %edx,%fs:(%eax)
4496d5:	68 eb 96 44 00       	push   $0x4496eb
4496da:	8b 45 fc             	mov    -0x4(%ebp),%eax
4496dd:	66 81 60 54 ff fb    	andw   $0xfbff,0x54(%eax)
4496e3:	c3                   	ret
4496e4:	e9 c7 a9 fb ff       	jmp    0x4040b0
4496e9:	eb ef                	jmp    0x4496da
4496eb:	5f                   	pop    %edi
4496ec:	5e                   	pop    %esi
4496ed:	8b e5                	mov    %ebp,%esp
4496ef:	5d                   	pop    %ebp
4496f0:	c3                   	ret
4496f1:	8d 40 00             	lea    0x0(%eax),%eax
4496f4:	53                   	push   %ebx
4496f5:	56                   	push   %esi
4496f6:	57                   	push   %edi
4496f7:	8b f9                	mov    %ecx,%edi
4496f9:	8b f2                	mov    %edx,%esi
4496fb:	8b d8                	mov    %eax,%ebx
4496fd:	8b c3                	mov    %ebx,%eax
4496ff:	8b 15 bc 59 44 00    	mov    0x4459bc,%edx
449705:	e8 9e a3 fb ff       	call   0x403aa8
44970a:	84 c0                	test   %al,%al
44970c:	75 0d                	jne    0x44971b
44970e:	33 c9                	xor    %ecx,%ecx
449710:	0f b6 53 57          	movzbl 0x57(%ebx),%edx
449714:	8b c3                	mov    %ebx,%eax
449716:	e8 ad 0b 00 00       	call   0x44a2c8
44971b:	3b 73 30             	cmp    0x30(%ebx),%esi
44971e:	74 0b                	je     0x44972b
449720:	8b d7                	mov    %edi,%edx
449722:	8b c3                	mov    %ebx,%eax
449724:	e8 ab 1a 00 00       	call   0x44b1d4
449729:	eb 09                	jmp    0x449734
44972b:	8b d7                	mov    %edi,%edx
44972d:	8b c3                	mov    %ebx,%eax
44972f:	e8 70 00 00 00       	call   0x4497a4
449734:	85 f6                	test   %esi,%esi
449736:	74 05                	je     0x44973d
449738:	83 fe ff             	cmp    $0xffffffff,%esi
44973b:	75 09                	jne    0x449746
44973d:	33 d2                	xor    %edx,%edx
44973f:	8b c3                	mov    %ebx,%eax
449741:	8b 08                	mov    (%eax),%ecx
449743:	ff 51 6c             	call   *0x6c(%ecx)
449746:	5f                   	pop    %edi
449747:	5e                   	pop    %esi
449748:	5b                   	pop    %ebx
449749:	c3                   	ret
44974a:	8b c0                	mov    %eax,%eax
44974c:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
449750:	75 07                	jne    0x449759
449752:	c6 80 58 01 00 00 01 	movb   $0x1,0x158(%eax)
449759:	89 90 60 01 00 00    	mov    %edx,0x160(%eax)
44975f:	c3                   	ret
449760:	53                   	push   %ebx
449761:	56                   	push   %esi
449762:	8b f2                	mov    %edx,%esi
449764:	8b d8                	mov    %eax,%ebx
449766:	f6 43 1c 01          	testb  $0x1,0x1c(%ebx)
44976a:	75 07                	jne    0x449773
44976c:	c6 83 58 01 00 00 00 	movb   $0x0,0x158(%ebx)
449773:	8d 83 5c 01 00 00    	lea    0x15c(%ebx),%eax
449779:	8b d6                	mov    %esi,%edx
44977b:	e8 1c b0 fb ff       	call   0x40479c
449780:	5e                   	pop    %esi
449781:	5b                   	pop    %ebx
449782:	c3                   	ret
449783:	90                   	nop
449784:	8b 48 40             	mov    0x40(%eax),%ecx
449787:	89 0a                	mov    %ecx,(%edx)
449789:	8b 48 44             	mov    0x44(%eax),%ecx
44978c:	89 4a 04             	mov    %ecx,0x4(%edx)
44978f:	8b 48 40             	mov    0x40(%eax),%ecx
449792:	03 48 48             	add    0x48(%eax),%ecx
449795:	89 4a 08             	mov    %ecx,0x8(%edx)
449798:	8b 48 44             	mov    0x44(%eax),%ecx
44979b:	03 48 4c             	add    0x4c(%eax),%ecx
44979e:	89 4a 0c             	mov    %ecx,0xc(%edx)
4497a1:	c3                   	ret
4497a2:	8b c0                	mov    %eax,%eax
4497a4:	53                   	push   %ebx
4497a5:	56                   	push   %esi
4497a6:	57                   	push   %edi
4497a7:	8b 4a 08             	mov    0x8(%edx),%ecx
4497aa:	8b 32                	mov    (%edx),%esi
4497ac:	2b ce                	sub    %esi,%ecx
4497ae:	51                   	push   %ecx
4497af:	8b 4a 0c             	mov    0xc(%edx),%ecx
4497b2:	8b 7a 04             	mov    0x4(%edx),%edi
4497b5:	2b cf                	sub    %edi,%ecx
4497b7:	51                   	push   %ecx
4497b8:	8b cf                	mov    %edi,%ecx
4497ba:	8b d6                	mov    %esi,%edx
4497bc:	8b 18                	mov    (%eax),%ebx
4497be:	ff 93 88 00 00 00    	call   *0x88(%ebx)
4497c4:	5f                   	pop    %edi
4497c5:	5e                   	pop    %esi
4497c6:	5b                   	pop    %ebx
4497c7:	c3                   	ret
4497c8:	33 c9                	xor    %ecx,%ecx
4497ca:	89 0a                	mov    %ecx,(%edx)
4497cc:	33 c9                	xor    %ecx,%ecx
4497ce:	89 4a 04             	mov    %ecx,0x4(%edx)
4497d1:	8b 48 48             	mov    0x48(%eax),%ecx
4497d4:	89 4a 08             	mov    %ecx,0x8(%edx)
4497d7:	8b 40 4c             	mov    0x4c(%eax),%eax
4497da:	89 42 0c             	mov    %eax,0xc(%edx)
4497dd:	c3                   	ret
4497de:	8b c0                	mov    %eax,%eax
4497e0:	53                   	push   %ebx
4497e1:	83 c4 f0             	add    $0xfffffff0,%esp
4497e4:	8b d8                	mov    %eax,%ebx
4497e6:	8b d4                	mov    %esp,%edx
4497e8:	8b c3                	mov    %ebx,%eax
4497ea:	8b 08                	mov    (%eax),%ecx
4497ec:	ff 51 44             	call   *0x44(%ecx)
4497ef:	8b 44 24 08          	mov    0x8(%esp),%eax
4497f3:	83 c4 10             	add    $0x10,%esp
4497f6:	5b                   	pop    %ebx
4497f7:	c3                   	ret
4497f8:	53                   	push   %ebx
4497f9:	56                   	push   %esi
4497fa:	83 c4 f8             	add    $0xfffffff8,%esp
4497fd:	8b f2                	mov    %edx,%esi
4497ff:	8b d8                	mov    %eax,%ebx
449801:	8b c3                	mov    %ebx,%eax
449803:	e8 1c 00 00 00       	call   0x449824
449808:	8b d0                	mov    %eax,%edx
44980a:	8b cc                	mov    %esp,%ecx
44980c:	8b c6                	mov    %esi,%eax
44980e:	e8 45 d5 fc ff       	call   0x416d58
449813:	8b d4                	mov    %esp,%edx
449815:	8b c3                	mov    %ebx,%eax
449817:	e8 e4 04 00 00       	call   0x449d00
44981c:	59                   	pop    %ecx
44981d:	5a                   	pop    %edx
44981e:	5e                   	pop    %esi
44981f:	5b                   	pop    %ebx
449820:	c3                   	ret
449821:	8d 40 00             	lea    0x0(%eax),%eax
449824:	53                   	push   %ebx
449825:	83 c4 f0             	add    $0xfffffff0,%esp
449828:	8b d8                	mov    %eax,%ebx
44982a:	8b d4                	mov    %esp,%edx
44982c:	8b c3                	mov    %ebx,%eax
44982e:	8b 08                	mov    (%eax),%ecx
449830:	ff 51 44             	call   *0x44(%ecx)
449833:	8b 44 24 0c          	mov    0xc(%esp),%eax
449837:	83 c4 10             	add    $0x10,%esp
44983a:	5b                   	pop    %ebx
44983b:	c3                   	ret
44983c:	53                   	push   %ebx
44983d:	56                   	push   %esi
44983e:	83 c4 f8             	add    $0xfffffff8,%esp
449841:	8b f2                	mov    %edx,%esi
449843:	8b d8                	mov    %eax,%ebx
449845:	8b c3                	mov    %ebx,%eax
449847:	e8 94 ff ff ff       	call   0x4497e0
44984c:	8b cc                	mov    %esp,%ecx
44984e:	8b d6                	mov    %esi,%edx
449850:	e8 03 d5 fc ff       	call   0x416d58
449855:	8b d4                	mov    %esp,%edx
449857:	8b c3                	mov    %ebx,%eax
449859:	e8 a2 04 00 00       	call   0x449d00
44985e:	59                   	pop    %ecx
44985f:	5a                   	pop    %edx
449860:	5e                   	pop    %esi
449861:	5b                   	pop    %ebx
449862:	c3                   	ret
449863:	90                   	nop
449864:	55                   	push   %ebp
449865:	8b ec                	mov    %esp,%ebp
449867:	83 c4 f4             	add    $0xfffffff4,%esp
44986a:	53                   	push   %ebx
44986b:	56                   	push   %esi
44986c:	33 c9                	xor    %ecx,%ecx
44986e:	89 4d f4             	mov    %ecx,-0xc(%ebp)
449871:	8b f2                	mov    %edx,%esi
449873:	8b d8                	mov    %eax,%ebx
449875:	33 c0                	xor    %eax,%eax
449877:	55                   	push   %ebp
449878:	68 e5 98 44 00       	push   $0x4498e5
44987d:	64 ff 30             	push   %fs:(%eax)
449880:	64 89 20             	mov    %esp,%fs:(%eax)
449883:	83 7b 30 00          	cmpl   $0x0,0x30(%ebx)
449887:	75 31                	jne    0x4498ba
449889:	8b 43 08             	mov    0x8(%ebx),%eax
44988c:	89 45 f8             	mov    %eax,-0x8(%ebp)
44988f:	c6 45 fc 0b          	movb   $0xb,-0x4(%ebp)
449893:	8d 45 f8             	lea    -0x8(%ebp),%eax
449896:	50                   	push   %eax
449897:	6a 00                	push   $0x0
449899:	8d 55 f4             	lea    -0xc(%ebp),%edx
44989c:	a1 f4 76 4a 00       	mov    0x4a76f4,%eax
4498a1:	e8 ce cd fb ff       	call   0x406674
4498a6:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4498a9:	b2 01                	mov    $0x1,%dl
4498ab:	a1 40 5c 41 00       	mov    0x415c40,%eax
4498b0:	e8 97 2b fc ff       	call   0x40c44c
4498b5:	e8 d6 a8 fb ff       	call   0x404190
4498ba:	8b d6                	mov    %esi,%edx
4498bc:	8b 43 30             	mov    0x30(%ebx),%eax
4498bf:	8b 08                	mov    (%eax),%ecx
4498c1:	ff 51 40             	call   *0x40(%ecx)
4498c4:	8b 43 40             	mov    0x40(%ebx),%eax
4498c7:	01 06                	add    %eax,(%esi)
4498c9:	8b 43 44             	mov    0x44(%ebx),%eax
4498cc:	01 46 04             	add    %eax,0x4(%esi)
4498cf:	33 c0                	xor    %eax,%eax
4498d1:	5a                   	pop    %edx
4498d2:	59                   	pop    %ecx
4498d3:	59                   	pop    %ecx
4498d4:	64 89 10             	mov    %edx,%fs:(%eax)
4498d7:	68 ec 98 44 00       	push   $0x4498ec
4498dc:	8d 45 f4             	lea    -0xc(%ebp),%eax
4498df:	e8 64 ae fb ff       	call   0x404748
4498e4:	c3                   	ret
4498e5:	e9 c6 a7 fb ff       	jmp    0x4040b0
4498ea:	eb f0                	jmp    0x4498dc
4498ec:	5e                   	pop    %esi
4498ed:	5b                   	pop    %ebx
4498ee:	8b e5                	mov    %ebp,%esp
4498f0:	5d                   	pop    %ebp
4498f1:	c3                   	ret
4498f2:	8b c0                	mov    %eax,%eax
4498f4:	53                   	push   %ebx
4498f5:	56                   	push   %esi
4498f6:	57                   	push   %edi
4498f7:	83 c4 f8             	add    $0xfffffff8,%esp
4498fa:	8b f9                	mov    %ecx,%edi
4498fc:	8b f2                	mov    %edx,%esi
4498fe:	8b d8                	mov    %eax,%ebx
449900:	8b d4                	mov    %esp,%edx
449902:	8b c3                	mov    %ebx,%eax
449904:	8b 08                	mov    (%eax),%ecx
449906:	ff 51 40             	call   *0x40(%ecx)
449909:	8b 06                	mov    (%esi),%eax
44990b:	03 04 24             	add    (%esp),%eax
44990e:	89 07                	mov    %eax,(%edi)
449910:	8b 46 04             	mov    0x4(%esi),%eax
449913:	03 44 24 04          	add    0x4(%esp),%eax
449917:	89 47 04             	mov    %eax,0x4(%edi)
44991a:	59                   	pop    %ecx
44991b:	5a                   	pop    %edx
44991c:	5f                   	pop    %edi
44991d:	5e                   	pop    %esi
44991e:	5b                   	pop    %ebx
44991f:	c3                   	ret
449920:	53                   	push   %ebx
449921:	56                   	push   %esi
449922:	57                   	push   %edi
449923:	55                   	push   %ebp
449924:	8b f9                	mov    %ecx,%edi
449926:	8b f2                	mov    %edx,%esi
449928:	8b 58 74             	mov    0x74(%eax),%ebx
44992b:	8b 6b 14             	mov    0x14(%ebx),%ebp
44992e:	85 ed                	test   %ebp,%ebp
449930:	76 16                	jbe    0x449948
449932:	57                   	push   %edi
449933:	56                   	push   %esi
449934:	55                   	push   %ebp
449935:	e8 ae d1 fb ff       	call   0x406ae8
44993a:	8b c8                	mov    %eax,%ecx
44993c:	ba 03 00 00 00       	mov    $0x3,%edx
449941:	8b c3                	mov    %ebx,%eax
449943:	e8 90 ee ff ff       	call   0x4487d8
449948:	8b 6b 0c             	mov    0xc(%ebx),%ebp
44994b:	85 ed                	test   %ebp,%ebp
44994d:	76 16                	jbe    0x449965
44994f:	57                   	push   %edi
449950:	56                   	push   %esi
449951:	55                   	push   %ebp
449952:	e8 91 d1 fb ff       	call   0x406ae8
449957:	8b c8                	mov    %eax,%ecx
449959:	ba 01 00 00 00       	mov    $0x1,%edx
44995e:	8b c3                	mov    %ebx,%eax
449960:	e8 73 ee ff ff       	call   0x4487d8
449965:	8b 6b 10             	mov    0x10(%ebx),%ebp
449968:	85 ed                	test   %ebp,%ebp
44996a:	76 16                	jbe    0x449982
44996c:	57                   	push   %edi
44996d:	56                   	push   %esi
44996e:	55                   	push   %ebp
44996f:	e8 74 d1 fb ff       	call   0x406ae8
449974:	8b c8                	mov    %eax,%ecx
449976:	ba 02 00 00 00       	mov    $0x2,%edx
44997b:	8b c3                	mov    %ebx,%eax
44997d:	e8 56 ee ff ff       	call   0x4487d8
449982:	8b 6b 08             	mov    0x8(%ebx),%ebp
449985:	85 ed                	test   %ebp,%ebp
449987:	76 13                	jbe    0x44999c
449989:	57                   	push   %edi
44998a:	56                   	push   %esi
44998b:	55                   	push   %ebp
44998c:	e8 57 d1 fb ff       	call   0x406ae8
449991:	8b c8                	mov    %eax,%ecx
449993:	33 d2                	xor    %edx,%edx
449995:	8b c3                	mov    %ebx,%eax
449997:	e8 3c ee ff ff       	call   0x4487d8
44999c:	5d                   	pop    %ebp
44999d:	5f                   	pop    %edi
44999e:	5e                   	pop    %esi
44999f:	5b                   	pop    %ebx
4499a0:	c3                   	ret
4499a1:	8d 40 00             	lea    0x0(%eax),%eax
4499a4:	53                   	push   %ebx
4499a5:	56                   	push   %esi
4499a6:	57                   	push   %edi
4499a7:	83 c4 f8             	add    $0xfffffff8,%esp
4499aa:	8b f9                	mov    %ecx,%edi
4499ac:	8b f2                	mov    %edx,%esi
4499ae:	8b d8                	mov    %eax,%ebx
4499b0:	8b d4                	mov    %esp,%edx
4499b2:	8b c3                	mov    %ebx,%eax
4499b4:	8b 08                	mov    (%eax),%ecx
4499b6:	ff 51 40             	call   *0x40(%ecx)