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
40ca28:	8b f0                	mov    %eax,%esi
40ca2a:	85 f6                	test   %esi,%esi
40ca2c:	78 5e                	js     0x40ca8c
40ca2e:	57                   	push   %edi
40ca2f:	68 64 ca 44 00       	push   $0x44ca64
40ca34:	ff 75 fc             	push   -0x4(%ebp)
40ca37:	e8 8b 67 03 00       	call   0x4431c7
40ca3c:	8b f0                	mov    %eax,%esi
40ca3e:	85 f6                	test   %esi,%esi
40ca40:	78 43                	js     0x40ca85
40ca42:	8d 47 04             	lea    0x4(%edi),%eax
40ca45:	50                   	push   %eax
40ca46:	68 48 f9 44 00       	push   $0x44f948
40ca4b:	ff 75 fc             	push   -0x4(%ebp)
40ca4e:	e8 74 67 03 00       	call   0x4431c7
40ca53:	8b f0                	mov    %eax,%esi
40ca55:	85 f6                	test   %esi,%esi
40ca57:	78 25                	js     0x40ca7e
40ca59:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40ca5c:	85 c9                	test   %ecx,%ecx
40ca5e:	74 0a                	je     0x40ca6a
40ca60:	8b 01                	mov    (%ecx),%eax
40ca62:	51                   	push   %ecx
40ca63:	ff 50 08             	call   *0x8(%eax)
40ca66:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40ca6a:	8b 45 0c             	mov    0xc(%ebp),%eax
40ca6d:	43                   	inc    %ebx
40ca6e:	8b 4d 08             	mov    0x8(%ebp),%ecx
40ca71:	83 c0 10             	add    $0x10,%eax
40ca74:	89 45 0c             	mov    %eax,0xc(%ebp)
40ca77:	3b 5d f8             	cmp    -0x8(%ebp),%ebx
40ca7a:	72 96                	jb     0x40ca12
40ca7c:	eb 1b                	jmp    0x40ca99
40ca7e:	68 58 f9 44 00       	push   $0x44f958
40ca83:	eb 0c                	jmp    0x40ca91
40ca85:	68 6c ca 44 00       	push   $0x44ca6c
40ca8a:	eb 05                	jmp    0x40ca91
40ca8c:	68 48 ca 44 00       	push   $0x44ca48
40ca91:	56                   	push   %esi
40ca92:	e8 98 36 03 00       	call   0x44012f
40ca97:	59                   	pop    %ecx
40ca98:	59                   	pop    %ecx
40ca99:	5b                   	pop    %ebx
40ca9a:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40ca9d:	85 c9                	test   %ecx,%ecx
40ca9f:	74 06                	je     0x40caa7
40caa1:	8b 01                	mov    (%ecx),%eax
40caa3:	51                   	push   %ecx
40caa4:	ff 50 08             	call   *0x8(%eax)
40caa7:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40caaa:	85 c9                	test   %ecx,%ecx
40caac:	74 06                	je     0x40cab4
40caae:	8b 01                	mov    (%ecx),%eax
40cab0:	51                   	push   %ecx
40cab1:	ff 50 08             	call   *0x8(%eax)
40cab4:	5f                   	pop    %edi
40cab5:	8b c6                	mov    %esi,%eax
40cab7:	5e                   	pop    %esi
40cab8:	8b e5                	mov    %ebp,%esp
40caba:	5d                   	pop    %ebp
40cabb:	c2 08 00             	ret    $0x8
40cabe:	55                   	push   %ebp
40cabf:	8b ec                	mov    %esp,%ebp
40cac1:	83 ec 14             	sub    $0x14,%esp
40cac4:	53                   	push   %ebx
40cac5:	56                   	push   %esi
40cac6:	57                   	push   %edi
40cac7:	33 ff                	xor    %edi,%edi
40cac9:	89 7d fc             	mov    %edi,-0x4(%ebp)
40cacc:	89 7d f8             	mov    %edi,-0x8(%ebp)
40cacf:	e9 c9 00 00 00       	jmp    0x40cb9d
40cad4:	85 f6                	test   %esi,%esi
40cad6:	0f 88 20 01 00 00    	js     0x40cbfc
40cadc:	8b 75 08             	mov    0x8(%ebp),%esi
40cadf:	8b cf                	mov    %edi,%ecx
40cae1:	8b 45 fc             	mov    -0x4(%ebp),%eax
40cae4:	89 45 ec             	mov    %eax,-0x14(%ebp)
40cae7:	89 4d f4             	mov    %ecx,-0xc(%ebp)
40caea:	39 7e 04             	cmp    %edi,0x4(%esi)
40caed:	76 4c                	jbe    0x40cb3b
40caef:	8b d7                	mov    %edi,%edx
40caf1:	89 7d f0             	mov    %edi,-0x10(%ebp)
40caf4:	8b 1e                	mov    (%esi),%ebx
40caf6:	03 da                	add    %edx,%ebx
40caf8:	83 7b 04 02          	cmpl   $0x2,0x4(%ebx)
40cafc:	75 2b                	jne    0x40cb29
40cafe:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40cb01:	85 c9                	test   %ecx,%ecx
40cb03:	74 05                	je     0x40cb0a
40cb05:	39 4b 3c             	cmp    %ecx,0x3c(%ebx)
40cb08:	75 1c                	jne    0x40cb26
40cb0a:	6a ff                	push   $0xffffffff
40cb0c:	50                   	push   %eax
40cb0d:	6a ff                	push   $0xffffffff
40cb0f:	ff 73 38             	push   0x38(%ebx)
40cb12:	57                   	push   %edi
40cb13:	6a 7f                	push   $0x7f
40cb15:	ff 15 28 b1 44 00    	call   *0x44b128
40cb1b:	83 f8 02             	cmp    $0x2,%eax
40cb1e:	74 2b                	je     0x40cb4b
40cb20:	8b 45 ec             	mov    -0x14(%ebp),%eax
40cb23:	8b 55 f0             	mov    -0x10(%ebp),%edx
40cb26:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40cb29:	41                   	inc    %ecx
40cb2a:	83 c2 58             	add    $0x58,%edx
40cb2d:	89 4d f4             	mov    %ecx,-0xc(%ebp)
40cb30:	89 55 f0             	mov    %edx,-0x10(%ebp)
40cb33:	3b 4e 04             	cmp    0x4(%esi),%ecx
40cb36:	72 bc                	jb     0x40caf4
40cb38:	8b 45 fc             	mov    -0x4(%ebp),%eax
40cb3b:	50                   	push   %eax
40cb3c:	be 90 04 07 80       	mov    $0x80070490,%esi
40cb41:	68 a8 fd 44 00       	push   $0x44fda8
40cb46:	e9 dc 00 00 00       	jmp    0x40cc27
40cb4b:	8d 43 50             	lea    0x50(%ebx),%eax
40cb4e:	50                   	push   %eax
40cb4f:	ff 73 18             	push   0x18(%ebx)
40cb52:	ff 75 14             	push   0x14(%ebp)
40cb55:	e8 1f 62 ff ff       	call   0x402d79
40cb5a:	8b f0                	mov    %eax,%esi
40cb5c:	85 f6                	test   %esi,%esi
40cb5e:	0f 88 91 00 00 00    	js     0x40cbf5
40cb64:	8d 45 f8             	lea    -0x8(%ebp),%eax
40cb67:	50                   	push   %eax
40cb68:	ff 73 50             	push   0x50(%ebx)
40cb6b:	e8 d6 68 ff ff       	call   0x403446
40cb70:	8b f0                	mov    %eax,%esi
40cb72:	85 f6                	test   %esi,%esi
40cb74:	78 78                	js     0x40cbee
40cb76:	57                   	push   %edi
40cb77:	ff 75 f8             	push   -0x8(%ebp)
40cb7a:	e8 94 74 ff ff       	call   0x404013
40cb7f:	8b f0                	mov    %eax,%esi
40cb81:	85 f6                	test   %esi,%esi
40cb83:	78 62                	js     0x40cbe7
40cb85:	ff 73 50             	push   0x50(%ebx)
40cb88:	ff 75 10             	push   0x10(%ebp)
40cb8b:	e8 f6 f7 ff ff       	call   0x40c386
40cb90:	8b f0                	mov    %eax,%esi
40cb92:	85 f6                	test   %esi,%esi
40cb94:	78 4a                	js     0x40cbe0
40cb96:	c7 43 4c 01 00 00 00 	movl   $0x1,0x4c(%ebx)
40cb9d:	8d 45 fc             	lea    -0x4(%ebp),%eax
40cba0:	50                   	push   %eax
40cba1:	ff 75 10             	push   0x10(%ebp)
40cba4:	e8 5f f5 ff ff       	call   0x40c108
40cba9:	8b f0                	mov    %eax,%esi
40cbab:	81 fe 03 01 07 80    	cmp    $0x80070103,%esi
40cbb1:	0f 85 1d ff ff ff    	jne    0x40cad4
40cbb7:	8b 45 08             	mov    0x8(%ebp),%eax
40cbba:	8b f7                	mov    %edi,%esi
40cbbc:	39 70 04             	cmp    %esi,0x4(%eax)
40cbbf:	76 6f                	jbe    0x40cc30
40cbc1:	8b 18                	mov    (%eax),%ebx
40cbc3:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40cbc6:	85 c9                	test   %ecx,%ecx
40cbc8:	74 05                	je     0x40cbcf
40cbca:	39 4b 3c             	cmp    %ecx,0x3c(%ebx)
40cbcd:	75 06                	jne    0x40cbd5
40cbcf:	83 7b 4c 01          	cmpl   $0x1,0x4c(%ebx)
40cbd3:	7c 36                	jl     0x40cc0b
40cbd5:	47                   	inc    %edi
40cbd6:	83 c3 58             	add    $0x58,%ebx
40cbd9:	3b 78 04             	cmp    0x4(%eax),%edi
40cbdc:	72 e8                	jb     0x40cbc6
40cbde:	eb 50                	jmp    0x40cc30
40cbe0:	68 48 fe 44 00       	push   $0x44fe48
40cbe5:	eb 1a                	jmp    0x40cc01
40cbe7:	68 24 fe 44 00       	push   $0x44fe24
40cbec:	eb 13                	jmp    0x40cc01
40cbee:	68 f0 fd 44 00       	push   $0x44fdf0
40cbf3:	eb 0c                	jmp    0x40cc01
40cbf5:	68 d0 fd 44 00       	push   $0x44fdd0
40cbfa:	eb 05                	jmp    0x40cc01
40cbfc:	68 8c fd 44 00       	push   $0x44fd8c