40c677:	eb 0c                	jmp    0x40c685
40c679:	68 6c ca 44 00       	push   $0x44ca6c
40c67e:	eb 05                	jmp    0x40c685
40c680:	68 48 ca 44 00       	push   $0x44ca48
40c685:	56                   	push   %esi
40c686:	e8 a4 3a 03 00       	call   0x44012f
40c68b:	59                   	pop    %ecx
40c68c:	59                   	pop    %ecx
40c68d:	eb 02                	jmp    0x40c691
40c68f:	33 f6                	xor    %esi,%esi
40c691:	5f                   	pop    %edi
40c692:	5b                   	pop    %ebx
40c693:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40c696:	85 c9                	test   %ecx,%ecx
40c698:	74 06                	je     0x40c6a0
40c69a:	8b 01                	mov    (%ecx),%eax
40c69c:	51                   	push   %ecx
40c69d:	ff 50 08             	call   *0x8(%eax)
40c6a0:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40c6a3:	85 c9                	test   %ecx,%ecx
40c6a5:	74 06                	je     0x40c6ad
40c6a7:	8b 01                	mov    (%ecx),%eax
40c6a9:	51                   	push   %ecx
40c6aa:	ff 50 08             	call   *0x8(%eax)
40c6ad:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
40c6b1:	74 08                	je     0x40c6bb
40c6b3:	ff 75 f0             	push   -0x10(%ebp)
40c6b6:	e8 34 8e 03 00       	call   0x4454ef
40c6bb:	8b c6                	mov    %esi,%eax
40c6bd:	5e                   	pop    %esi
40c6be:	8b e5                	mov    %ebp,%esp
40c6c0:	5d                   	pop    %ebp
40c6c1:	c2 0c 00             	ret    $0xc
40c6c4:	55                   	push   %ebp
40c6c5:	8b ec                	mov    %esp,%ebp
40c6c7:	56                   	push   %esi
40c6c8:	8b 75 08             	mov    0x8(%ebp),%esi
40c6cb:	83 3e 00             	cmpl   $0x0,(%esi)
40c6ce:	0f 84 a0 00 00 00    	je     0x40c774
40c6d4:	53                   	push   %ebx
40c6d5:	33 db                	xor    %ebx,%ebx
40c6d7:	39 5e 04             	cmp    %ebx,0x4(%esi)
40c6da:	0f 86 8c 00 00 00    	jbe    0x40c76c
40c6e0:	33 c0                	xor    %eax,%eax
40c6e2:	89 45 08             	mov    %eax,0x8(%ebp)
40c6e5:	57                   	push   %edi
40c6e6:	8b 3e                	mov    (%esi),%edi
40c6e8:	03 f8                	add    %eax,%edi
40c6ea:	83 3f 00             	cmpl   $0x0,(%edi)
40c6ed:	74 07                	je     0x40c6f6
40c6ef:	ff 37                	push   (%edi)
40c6f1:	e8 f9 8d 03 00       	call   0x4454ef
40c6f6:	83 7f 20 00          	cmpl   $0x0,0x20(%edi)
40c6fa:	74 08                	je     0x40c704
40c6fc:	ff 77 20             	push   0x20(%edi)
40c6ff:	e8 eb 8d 03 00       	call   0x4454ef
40c704:	83 7f 28 00          	cmpl   $0x0,0x28(%edi)
40c708:	74 08                	je     0x40c712
40c70a:	ff 77 28             	push   0x28(%edi)
40c70d:	e8 dd 8d 03 00       	call   0x4454ef
40c712:	83 7f 24 00          	cmpl   $0x0,0x24(%edi)
40c716:	74 08                	je     0x40c720
40c718:	ff 77 24             	push   0x24(%edi)
40c71b:	e8 cf 8d 03 00       	call   0x4454ef
40c720:	83 7f 38 00          	cmpl   $0x0,0x38(%edi)
40c724:	74 08                	je     0x40c72e
40c726:	ff 77 38             	push   0x38(%edi)
40c729:	e8 6b 72 ff ff       	call   0x403999
40c72e:	83 7f 2c 00          	cmpl   $0x0,0x2c(%edi)
40c732:	74 08                	je     0x40c73c
40c734:	ff 77 2c             	push   0x2c(%edi)
40c737:	e8 b3 8d 03 00       	call   0x4454ef
40c73c:	83 7f 30 00          	cmpl   $0x0,0x30(%edi)
40c740:	74 08                	je     0x40c74a
40c742:	ff 77 30             	push   0x30(%edi)
40c745:	e8 a5 8d 03 00       	call   0x4454ef
40c74a:	83 7f 34 00          	cmpl   $0x0,0x34(%edi)
40c74e:	74 08                	je     0x40c758
40c750:	ff 77 34             	push   0x34(%edi)
40c753:	e8 97 8d 03 00       	call   0x4454ef
40c758:	8b 45 08             	mov    0x8(%ebp),%eax
40c75b:	43                   	inc    %ebx
40c75c:	83 c0 50             	add    $0x50,%eax
40c75f:	89 45 08             	mov    %eax,0x8(%ebp)
40c762:	3b 5e 04             	cmp    0x4(%esi),%ebx
40c765:	0f 82 7b ff ff ff    	jb     0x40c6e6
40c76b:	5f                   	pop    %edi
40c76c:	ff 36                	push   (%esi)
40c76e:	e8 26 72 ff ff       	call   0x403999
40c773:	5b                   	pop    %ebx
40c774:	83 26 00             	andl   $0x0,(%esi)
40c777:	83 66 04 00          	andl   $0x0,0x4(%esi)
40c77b:	5e                   	pop    %esi
40c77c:	5d                   	pop    %ebp
40c77d:	c2 04 00             	ret    $0x4
40c780:	55                   	push   %ebp
40c781:	8b ec                	mov    %esp,%ebp
40c783:	51                   	push   %ecx
40c784:	53                   	push   %ebx
40c785:	56                   	push   %esi
40c786:	57                   	push   %edi
40c787:	8b 7d 08             	mov    0x8(%ebp),%edi
40c78a:	33 f6                	xor    %esi,%esi
40c78c:	8b de                	mov    %esi,%ebx
40c78e:	39 77 04             	cmp    %esi,0x4(%edi)
40c791:	76 32                	jbe    0x40c7c5
40c793:	8b ce                	mov    %esi,%ecx
40c795:	89 75 08             	mov    %esi,0x8(%ebp)
40c798:	8b 07                	mov    (%edi),%eax
40c79a:	6a ff                	push   $0xffffffff
40c79c:	ff 75 0c             	push   0xc(%ebp)
40c79f:	03 c1                	add    %ecx,%eax
40c7a1:	6a ff                	push   $0xffffffff
40c7a3:	89 45 fc             	mov    %eax,-0x4(%ebp)
40c7a6:	ff 30                	push   (%eax)
40c7a8:	56                   	push   %esi
40c7a9:	6a 7f                	push   $0x7f
40c7ab:	ff 15 28 b1 44 00    	call   *0x44b128
40c7b1:	83 f8 02             	cmp    $0x2,%eax
40c7b4:	74 1f                	je     0x40c7d5
40c7b6:	8b 4d 08             	mov    0x8(%ebp),%ecx
40c7b9:	43                   	inc    %ebx
40c7ba:	83 c1 10             	add    $0x10,%ecx
40c7bd:	89 4d 08             	mov    %ecx,0x8(%ebp)
40c7c0:	3b 5f 04             	cmp    0x4(%edi),%ebx
40c7c3:	72 d3                	jb     0x40c798
40c7c5:	be 90 04 07 80       	mov    $0x80070490,%esi
40c7ca:	5f                   	pop    %edi
40c7cb:	8b c6                	mov    %esi,%eax
40c7cd:	5e                   	pop    %esi
40c7ce:	5b                   	pop    %ebx
40c7cf:	8b e5                	mov    %ebp,%esp
40c7d1:	5d                   	pop    %ebp
40c7d2:	c2 0c 00             	ret    $0xc
40c7d5:	8b 45 10             	mov    0x10(%ebp),%eax
40c7d8:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40c7db:	89 08                	mov    %ecx,(%eax)
40c7dd:	eb eb                	jmp    0x40c7ca
40c7df:	55                   	push   %ebp
40c7e0:	8b ec                	mov    %esp,%ebp
40c7e2:	51                   	push   %ecx
40c7e3:	51                   	push   %ecx
40c7e4:	53                   	push   %ebx
40c7e5:	8b 5d 08             	mov    0x8(%ebp),%ebx
40c7e8:	33 c0                	xor    %eax,%eax
40c7ea:	56                   	push   %esi
40c7eb:	8b f0                	mov    %eax,%esi
40c7ed:	89 45 fc             	mov    %eax,-0x4(%ebp)
40c7f0:	89 45 f8             	mov    %eax,-0x8(%ebp)
40c7f3:	39 43 04             	cmp    %eax,0x4(%ebx)
40c7f6:	0f 86 eb 00 00 00    	jbe    0x40c8e7
40c7fc:	8b c8                	mov    %eax,%ecx
40c7fe:	89 4d 08             	mov    %ecx,0x8(%ebp)
40c801:	57                   	push   %edi
40c802:	8b 3b                	mov    (%ebx),%edi
40c804:	8d 45 fc             	lea    -0x4(%ebp),%eax
40c807:	03 f9                	add    %ecx,%edi
40c809:	50                   	push   %eax
40c80a:	ff 77 04             	push   0x4(%edi)
40c80d:	ff 75 0c             	push   0xc(%ebp)
40c810:	e8 42 04 00 00       	call   0x40cc57
40c815:	8b f0                	mov    %eax,%esi
40c817:	85 f6                	test   %esi,%esi
40c819:	0f 88 ba 00 00 00    	js     0x40c8d9
40c81f:	8b 45 fc             	mov    -0x4(%ebp),%eax
40c822:	8d 4f 08             	lea    0x8(%edi),%ecx
40c825:	6a 00                	push   $0x0
40c827:	ff 70 50             	push   0x50(%eax)
40c82a:	51                   	push   %ecx
40c82b:	e8 75 59 ff ff       	call   0x4021a5
40c830:	8b f0                	mov    %eax,%esi
40c832:	85 f6                	test   %esi,%esi
40c834:	0f 88 98 00 00 00    	js     0x40c8d2
40c83a:	6a 00                	push   $0x0
40c83c:	68 00 00 00 08       	push   $0x8000000
40c841:	6a 03                	push   $0x3
40c843:	6a 00                	push   $0x0
40c845:	6a 05                	push   $0x5
40c847:	68 00 00 00 80       	push   $0x80000000
40c84c:	ff 77 08             	push   0x8(%edi)
40c84f:	ff 15 d8 b0 44 00    	call   *0x44b0d8
40c855:	89 47 0c             	mov    %eax,0xc(%edi)
40c858:	83 f8 ff             	cmp    $0xffffffff,%eax
40c85b:	74 37                	je     0x40c894
40c85d:	50                   	push   %eax
40c85e:	ff 77 08             	push   0x8(%edi)
40c861:	ff 75 fc             	push   -0x4(%ebp)
40c864:	e8 2f e1 00 00       	call   0x41a998
40c869:	8b f0                	mov    %eax,%esi
40c86b:	85 f6                	test   %esi,%esi
40c86d:	78 1b                	js     0x40c88a
40c86f:	8b 45 f8             	mov    -0x8(%ebp),%eax
40c872:	8b 4d 08             	mov    0x8(%ebp),%ecx
40c875:	40                   	inc    %eax
40c876:	83 c1 10             	add    $0x10,%ecx
40c879:	89 45 f8             	mov    %eax,-0x8(%ebp)
40c87c:	89 4d 08             	mov    %ecx,0x8(%ebp)
40c87f:	3b 43 04             	cmp    0x4(%ebx),%eax
40c882:	0f 82 7a ff ff ff    	jb     0x40c802
40c888:	eb 5c                	jmp    0x40c8e6
40c88a:	ff 77 08             	push   0x8(%edi)
40c88d:	68 f0 f9 44 00       	push   $0x44f9f0
40c892:	eb 33                	jmp    0x40c8c7
40c894:	ff 15 e8 b0 44 00    	call   *0x44b0e8
40c89a:	0f b7 f0             	movzwl %ax,%esi
40c89d:	81 ce 00 00 07 80    	or     $0x80070000,%esi
40c8a3:	85 c0                	test   %eax,%eax
40c8a5:	0f 4e f0             	cmovle %eax,%esi
40c8a8:	b8 05 40 00 80       	mov    $0x80004005,%eax
40c8ad:	85 f6                	test   %esi,%esi
40c8af:	0f 49 f0             	cmovns %eax,%esi
40c8b2:	56                   	push   %esi
40c8b3:	6a 76                	push   $0x76
40c8b5:	68 0c f9 44 00       	push   $0x44f90c
40c8ba:	e8 14 6f ff ff       	call   0x4037d3
40c8bf:	ff 77 08             	push   0x8(%edi)
40c8c2:	68 c4 f9 44 00       	push   $0x44f9c4
40c8c7:	56                   	push   %esi
40c8c8:	e8 62 38 03 00       	call   0x44012f
40c8cd:	83 c4 0c             	add    $0xc,%esp
40c8d0:	eb 14                	jmp    0x40c8e6
40c8d2:	68 9c f9 44 00       	push   $0x44f99c
40c8d7:	eb 05                	jmp    0x40c8de
40c8d9:	68 70 f9 44 00       	push   $0x44f970
40c8de:	56                   	push   %esi
40c8df:	e8 4b 38 03 00       	call   0x44012f
40c8e4:	59                   	pop    %ecx
40c8e5:	59                   	pop    %ecx
40c8e6:	5f                   	pop    %edi
40c8e7:	8b c6                	mov    %esi,%eax
40c8e9:	5e                   	pop    %esi
40c8ea:	5b                   	pop    %ebx
40c8eb:	8b e5                	mov    %ebp,%esp
40c8ed:	5d                   	pop    %ebp
40c8ee:	c2 08 00             	ret    $0x8
40c8f1:	55                   	push   %ebp
40c8f2:	8b ec                	mov    %esp,%ebp
40c8f4:	56                   	push   %esi
40c8f5:	8b 75 08             	mov    0x8(%ebp),%esi
40c8f8:	83 3e 00             	cmpl   $0x0,(%esi)
40c8fb:	74 65                	je     0x40c962
40c8fd:	53                   	push   %ebx
40c8fe:	33 db                	xor    %ebx,%ebx
40c900:	39 5e 04             	cmp    %ebx,0x4(%esi)
40c903:	76 55                	jbe    0x40c95a
40c905:	33 c0                	xor    %eax,%eax
40c907:	89 45 08             	mov    %eax,0x8(%ebp)
40c90a:	57                   	push   %edi
40c90b:	8b 3e                	mov    (%esi),%edi
40c90d:	03 f8                	add    %eax,%edi
40c90f:	83 7f 0c 00          	cmpl   $0x0,0xc(%edi)
40c913:	74 0d                	je     0x40c922
40c915:	ff 77 0c             	push   0xc(%edi)
40c918:	ff 15 d4 b0 44 00    	call   *0x44b0d4
40c91e:	83 67 0c 00          	andl   $0x0,0xc(%edi)
40c922:	83 3f 00             	cmpl   $0x0,(%edi)
40c925:	74 07                	je     0x40c92e
40c927:	ff 37                	push   (%edi)
40c929:	e8 c1 8b 03 00       	call   0x4454ef
40c92e:	83 7f 08 00          	cmpl   $0x0,0x8(%edi)
40c932:	74 08                	je     0x40c93c
40c934:	ff 77 08             	push   0x8(%edi)
40c937:	e8 b3 8b 03 00       	call   0x4454ef
40c93c:	83 7f 04 00          	cmpl   $0x0,0x4(%edi)
40c940:	74 08                	je     0x40c94a
40c942:	ff 77 04             	push   0x4(%edi)
40c945:	e8 a5 8b 03 00       	call   0x4454ef
40c94a:	8b 45 08             	mov    0x8(%ebp),%eax
40c94d:	43                   	inc    %ebx
40c94e:	83 c0 10             	add    $0x10,%eax
40c951:	89 45 08             	mov    %eax,0x8(%ebp)
40c954:	3b 5e 04             	cmp    0x4(%esi),%ebx
40c957:	72 b2                	jb     0x40c90b
40c959:	5f                   	pop    %edi
40c95a:	ff 36                	push   (%esi)
40c95c:	e8 38 70 ff ff       	call   0x403999
40c961:	5b                   	pop    %ebx
40c962:	83 26 00             	andl   $0x0,(%esi)
40c965:	83 66 04 00          	andl   $0x0,0x4(%esi)
40c969:	5e                   	pop    %esi
40c96a:	5d                   	pop    %ebp
40c96b:	c2 04 00             	ret    $0x4
40c96e:	55                   	push   %ebp
40c96f:	8b ec                	mov    %esp,%ebp
40c971:	83 ec 0c             	sub    $0xc,%esp
40c974:	56                   	push   %esi
40c975:	57                   	push   %edi
40c976:	8d 45 f4             	lea    -0xc(%ebp),%eax
40c979:	33 ff                	xor    %edi,%edi
40c97b:	50                   	push   %eax
40c97c:	68 b8 f8 44 00       	push   $0x44f8b8
40c981:	ff 75 0c             	push   0xc(%ebp)
40c984:	89 7d f4             	mov    %edi,-0xc(%ebp)
40c987:	89 7d fc             	mov    %edi,-0x4(%ebp)
40c98a:	89 7d f8             	mov    %edi,-0x8(%ebp)
40c98d:	e8 71 6e 03 00       	call   0x443803
40c992:	8b f0                	mov    %eax,%esi
40c994:	85 f6                	test   %esi,%esi
40c996:	79 12                	jns    0x40c9aa
40c998:	68 c8 f8 44 00       	push   $0x44f8c8
40c99d:	56                   	push   %esi
40c99e:	e8 8c 37 03 00       	call   0x44012f
40c9a3:	59                   	pop    %ecx
40c9a4:	59                   	pop    %ecx
40c9a5:	e9 f0 00 00 00       	jmp    0x40ca9a
40c9aa:	8b 45 f4             	mov    -0xc(%ebp),%eax
40c9ad:	8d 55 f8             	lea    -0x8(%ebp),%edx
40c9b0:	52                   	push   %edx
40c9b1:	50                   	push   %eax
40c9b2:	8b 08                	mov    (%eax),%ecx
40c9b4:	ff 51 20             	call   *0x20(%ecx)
40c9b7:	8b f0                	mov    %eax,%esi
40c9b9:	85 f6                	test   %esi,%esi
40c9bb:	79 07                	jns    0x40c9c4
40c9bd:	68 e8 f8 44 00       	push   $0x44f8e8
40c9c2:	eb d9                	jmp    0x40c99d
40c9c4:	8b 45 f8             	mov    -0x8(%ebp),%eax
40c9c7:	85 c0                	test   %eax,%eax
40c9c9:	0f 84 cb 00 00 00    	je     0x40ca9a
40c9cf:	6a 01                	push   $0x1
40c9d1:	c1 e0 04             	shl    $0x4,%eax
40c9d4:	50                   	push   %eax
40c9d5:	e8 fa 6e ff ff       	call   0x4038d4
40c9da:	8b 4d 08             	mov    0x8(%ebp),%ecx
40c9dd:	89 01                	mov    %eax,(%ecx)
40c9df:	85 c0                	test   %eax,%eax
40c9e1:	75 19                	jne    0x40c9fc
40c9e3:	be 0e 00 07 80       	mov    $0x8007000e,%esi
40c9e8:	56                   	push   %esi
40c9e9:	6a 21                	push   $0x21
40c9eb:	68 0c f9 44 00       	push   $0x44f90c
40c9f0:	e8 de 6d ff ff       	call   0x4037d3
40c9f5:	68 18 f9 44 00       	push   $0x44f918
40c9fa:	eb a1                	jmp    0x40c99d
40c9fc:	8b 45 f8             	mov    -0x8(%ebp),%eax
40c9ff:	89 41 04             	mov    %eax,0x4(%ecx)
40ca02:	53                   	push   %ebx
40ca03:	8b df                	mov    %edi,%ebx
40ca05:	85 c0                	test   %eax,%eax
40ca07:	0f 84 8c 00 00 00    	je     0x40ca99
40ca0d:	8b c7                	mov    %edi,%eax
40ca0f:	89 7d 0c             	mov    %edi,0xc(%ebp)
40ca12:	8b 39                	mov    (%ecx),%edi
40ca14:	03 f8                	add    %eax,%edi
40ca16:	8d 45 fc             	lea    -0x4(%ebp),%eax
40ca19:	6a 00                	push   $0x0
40ca1b:	50                   	push   %eax
40ca1c:	83 4f 0c ff          	orl    $0xffffffff,0xc(%edi)
40ca20:	ff 75 f4             	push   -0xc(%ebp)
40ca23:	e8 38 6d 03 00       	call   0x443760