4058b3:	84 c0                	test   %al,%al
4058b5:	78 46                	js     0x4058fd
4058b7:	c7 42 2c 04 00 00 00 	movl   $0x4,0x2c(%edx)
4058be:	8b 4a 2c             	mov    0x2c(%edx),%ecx
4058c1:	e8 8b fa ff ff       	call   0x405351
4058c6:	89 42 30             	mov    %eax,0x30(%edx)
4058c9:	c3                   	ret
4058ca:	83 62 2c 00          	andl   $0x0,0x2c(%edx)
4058ce:	eb ee                	jmp    0x4058be
4058d0:	c7 42 2c 01 00 00 00 	movl   $0x1,0x2c(%edx)
4058d7:	eb e5                	jmp    0x4058be
4058d9:	c7 42 2c 05 00 00 00 	movl   $0x5,0x2c(%edx)
4058e0:	eb dc                	jmp    0x4058be
4058e2:	c7 42 2c 06 00 00 00 	movl   $0x6,0x2c(%edx)
4058e9:	eb d3                	jmp    0x4058be
4058eb:	c7 42 2c 07 00 00 00 	movl   $0x7,0x2c(%edx)
4058f2:	eb ca                	jmp    0x4058be
4058f4:	c7 42 2c 08 00 00 00 	movl   $0x8,0x2c(%edx)
4058fb:	eb c1                	jmp    0x4058be
4058fd:	c7 42 2c 03 00 00 00 	movl   $0x3,0x2c(%edx)
405904:	eb b8                	jmp    0x4058be
405906:	56                   	push   %esi
405907:	8b f1                	mov    %ecx,%esi
405909:	68 00 00 01 00       	push   $0x10000
40590e:	83 26 00             	andl   $0x0,(%esi)
405911:	e8 e0 b6 01 00       	call   0x420ff6
405916:	59                   	pop    %ecx
405917:	8b ce                	mov    %esi,%ecx
405919:	89 46 04             	mov    %eax,0x4(%esi)
40591c:	e8 ae 04 00 00       	call   0x405dcf
405921:	8d 4e 18             	lea    0x18(%esi),%ecx
405924:	e8 9e 1e 00 00       	call   0x4077c7
405929:	8b ce                	mov    %esi,%ecx
40592b:	e8 9f 04 00 00       	call   0x405dcf
405930:	8b c6                	mov    %esi,%eax
405932:	5e                   	pop    %esi
405933:	c3                   	ret
405934:	56                   	push   %esi
405935:	8b f1                	mov    %ecx,%esi
405937:	e8 93 04 00 00       	call   0x405dcf
40593c:	8d 4e 18             	lea    0x18(%esi),%ecx
40593f:	e8 20 01 00 00       	call   0x405a64
405944:	8b ce                	mov    %esi,%ecx
405946:	e8 84 04 00 00       	call   0x405dcf
40594b:	ff 76 04             	push   0x4(%esi)
40594e:	e8 19 b7 01 00       	call   0x42106c
405953:	59                   	pop    %ecx
405954:	5e                   	pop    %esi
405955:	c3                   	ret
405956:	55                   	push   %ebp
405957:	8b ec                	mov    %esp,%ebp
405959:	51                   	push   %ecx
40595a:	56                   	push   %esi
40595b:	8b f1                	mov    %ecx,%esi
40595d:	e8 6d 04 00 00       	call   0x405dcf
405962:	8b 45 0c             	mov    0xc(%ebp),%eax
405965:	89 46 28             	mov    %eax,0x28(%esi)
405968:	a8 03                	test   $0x3,%al
40596a:	75 08                	jne    0x405974
40596c:	0d 00 80 00 00       	or     $0x8000,%eax
405971:	89 46 28             	mov    %eax,0x28(%esi)
405974:	ff 76 28             	push   0x28(%esi)
405977:	8b ce                	mov    %esi,%ecx
405979:	ff 75 08             	push   0x8(%ebp)
40597c:	e8 78 04 00 00       	call   0x405df9
405981:	84 c0                	test   %al,%al
405983:	74 27                	je     0x4059ac
405985:	8b ce                	mov    %esi,%ecx
405987:	e8 01 ff ff ff       	call   0x40588d
40598c:	8b ce                	mov    %esi,%ecx
40598e:	e8 dd fd ff ff       	call   0x405770
405993:	8b ce                	mov    %esi,%ecx
405995:	e8 41 fa ff ff       	call   0x4053db
40599a:	f6 46 28 03          	testb  $0x3,0x28(%esi)
40599e:	0f 85 74 86 03 00    	jne    0x43e018
4059a4:	b0 01                	mov    $0x1,%al
4059a6:	5e                   	pop    %esi
4059a7:	59                   	pop    %ecx
4059a8:	5d                   	pop    %ebp
4059a9:	c2 08 00             	ret    $0x8
4059ac:	32 c0                	xor    %al,%al
4059ae:	eb f6                	jmp    0x4059a6
4059b0:	55                   	push   %ebp
4059b1:	8b ec                	mov    %esp,%ebp
4059b3:	56                   	push   %esi
4059b4:	8b 75 0c             	mov    0xc(%ebp),%esi
4059b7:	ff 36                	push   (%esi)
4059b9:	ff 75 08             	push   0x8(%ebp)
4059bc:	e8 5f 03 00 00       	call   0x405d20
4059c1:	85 c0                	test   %eax,%eax
4059c3:	89 06                	mov    %eax,(%esi)
4059c5:	5e                   	pop    %esi
4059c6:	0f 95 c0             	setne  %al
4059c9:	5d                   	pop    %ebp
4059ca:	c2 08 00             	ret    $0x8
4059cd:	55                   	push   %ebp
4059ce:	8b ec                	mov    %esp,%ebp
4059d0:	51                   	push   %ecx
4059d1:	53                   	push   %ebx
4059d2:	8b 5d 08             	mov    0x8(%ebp),%ebx
4059d5:	33 c0                	xor    %eax,%eax
4059d7:	56                   	push   %esi
4059d8:	8b f1                	mov    %ecx,%esi
4059da:	57                   	push   %edi
4059db:	66 89 03             	mov    %ax,(%ebx)
4059de:	8d 7e 18             	lea    0x18(%esi),%edi
4059e1:	8b cf                	mov    %edi,%ecx
4059e3:	e8 04 25 00 00       	call   0x407eec
4059e8:	57                   	push   %edi
4059e9:	8b ce                	mov    %esi,%ecx
4059eb:	e8 fc fb ff ff       	call   0x4055ec
4059f0:	84 c0                	test   %al,%al
4059f2:	74 22                	je     0x405a16
4059f4:	6a ff                	push   $0xffffffff
4059f6:	68 fe 0f 00 00       	push   $0xffe
4059fb:	8b cf                	mov    %edi,%ecx
4059fd:	e8 8a 24 00 00       	call   0x407e8c
405a02:	ff 37                	push   (%edi)
405a04:	53                   	push   %ebx
405a05:	e8 f2 d5 01 00       	call   0x422ffc
405a0a:	59                   	pop    %ecx
405a0b:	59                   	pop    %ecx
405a0c:	b0 01                	mov    $0x1,%al
405a0e:	5f                   	pop    %edi
405a0f:	5e                   	pop    %esi
405a10:	5b                   	pop    %ebx
405a11:	59                   	pop    %ecx
405a12:	5d                   	pop    %ebp
405a13:	c2 08 00             	ret    $0x8
405a16:	32 c0                	xor    %al,%al
405a18:	eb f4                	jmp    0x405a0e
405a1a:	56                   	push   %esi
405a1b:	8b f1                	mov    %ecx,%esi
405a1d:	e8 12 ff ff ff       	call   0x405934
405a22:	56                   	push   %esi
405a23:	e8 44 b6 01 00       	call   0x42106c
405a28:	59                   	pop    %ecx
405a29:	8b c6                	mov    %esi,%eax
405a2b:	5e                   	pop    %esi
405a2c:	c2 04 00             	ret    $0x4
405a2f:	56                   	push   %esi
405a30:	8b f1                	mov    %ecx,%esi
405a32:	8b 4e 0c             	mov    0xc(%esi),%ecx
405a35:	8b 01                	mov    (%ecx),%eax
405a37:	83 f8 01             	cmp    $0x1,%eax
405a3a:	0f 8f 25 86 03 00    	jg     0x43e065
405a40:	8b 06                	mov    (%esi),%eax
405a42:	83 66 04 00          	andl   $0x0,0x4(%esi)
405a46:	5e                   	pop    %esi
405a47:	c6 00 00             	movb   $0x0,(%eax)
405a4a:	c3                   	ret
405a4b:	55                   	push   %ebp
405a4c:	8b ec                	mov    %esp,%ebp
405a4e:	8b 45 08             	mov    0x8(%ebp),%eax
405a51:	85 c0                	test   %eax,%eax
405a53:	74 0a                	je     0x405a5f
405a55:	83 c0 0f             	add    $0xf,%eax
405a58:	83 e0 f0             	and    $0xfffffff0,%eax
405a5b:	5d                   	pop    %ebp
405a5c:	c2 04 00             	ret    $0x4
405a5f:	6a 10                	push   $0x10
405a61:	58                   	pop    %eax
405a62:	eb f7                	jmp    0x405a5b
405a64:	56                   	push   %esi
405a65:	8b f1                	mov    %ecx,%esi
405a67:	8b 46 0c             	mov    0xc(%esi),%eax
405a6a:	ff 08                	decl   (%eax)
405a6c:	8b 46 0c             	mov    0xc(%esi),%eax
405a6f:	83 38 00             	cmpl   $0x0,(%eax)
405a72:	75 11                	jne    0x405a85
405a74:	ff 36                	push   (%esi)
405a76:	e8 f1 b5 01 00       	call   0x42106c
405a7b:	ff 76 0c             	push   0xc(%esi)
405a7e:	e8 e9 b5 01 00       	call   0x42106c
405a83:	59                   	pop    %ecx
405a84:	59                   	pop    %ecx
405a85:	5e                   	pop    %esi
405a86:	c3                   	ret
405a87:	55                   	push   %ebp
405a88:	8b ec                	mov    %esp,%ebp
405a8a:	56                   	push   %esi
405a8b:	57                   	push   %edi
405a8c:	8b 7d 08             	mov    0x8(%ebp),%edi
405a8f:	8b f1                	mov    %ecx,%esi
405a91:	8d 47 01             	lea    0x1(%edi),%eax
405a94:	39 46 08             	cmp    %eax,0x8(%esi)
405a97:	73 25                	jae    0x405abe
405a99:	50                   	push   %eax
405a9a:	e8 ac ff ff ff       	call   0x405a4b
405a9f:	83 3e 00             	cmpl   $0x0,(%esi)
405aa2:	89 46 08             	mov    %eax,0x8(%esi)
405aa5:	74 08                	je     0x405aaf
405aa7:	ff 36                	push   (%esi)
405aa9:	e8 be b5 01 00       	call   0x42106c
405aae:	59                   	pop    %ecx
405aaf:	ff 76 08             	push   0x8(%esi)
405ab2:	e8 3f b5 01 00       	call   0x420ff6
405ab7:	89 06                	mov    %eax,(%esi)
405ab9:	59                   	pop    %ecx
405aba:	c6 04 38 00          	movb   $0x0,(%eax,%edi,1)
405abe:	5f                   	pop    %edi
405abf:	5e                   	pop    %esi
405ac0:	5d                   	pop    %ebp
405ac1:	c2 04 00             	ret    $0x4
405ac4:	55                   	push   %ebp
405ac5:	8b ec                	mov    %esp,%ebp
405ac7:	56                   	push   %esi
405ac8:	57                   	push   %edi
405ac9:	8b 7d 10             	mov    0x10(%ebp),%edi
405acc:	8b f1                	mov    %ecx,%esi
405ace:	85 ff                	test   %edi,%edi
405ad0:	74 3e                	je     0x405b10
405ad2:	83 ff ff             	cmp    $0xffffffff,%edi
405ad5:	74 39                	je     0x405b10
405ad7:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
405adb:	74 33                	je     0x405b10
405add:	8b 4e 0c             	mov    0xc(%esi),%ecx
405ae0:	8b 01                	mov    (%ecx),%eax
405ae2:	83 f8 01             	cmp    $0x1,%eax
405ae5:	0f 8f 98 85 03 00    	jg     0x43e083
405aeb:	57                   	push   %edi
405aec:	8b ce                	mov    %esi,%ecx
405aee:	e8 94 ff ff ff       	call   0x405a87
405af3:	57                   	push   %edi
405af4:	ff 75 08             	push   0x8(%ebp)
405af7:	89 7e 04             	mov    %edi,0x4(%esi)
405afa:	ff 36                	push   (%esi)
405afc:	e8 7f b5 01 00       	call   0x421080
405b01:	8b 06                	mov    (%esi),%eax
405b03:	83 c4 0c             	add    $0xc,%esp
405b06:	c6 04 07 00          	movb   $0x0,(%edi,%eax,1)
405b0a:	5f                   	pop    %edi
405b0b:	5e                   	pop    %esi
405b0c:	5d                   	pop    %ebp
405b0d:	c2 0c 00             	ret    $0xc
405b10:	51                   	push   %ecx
405b11:	51                   	push   %ecx
405b12:	e8 f1 d8 05 00       	call   0x463408
405b17:	eb f1                	jmp    0x405b0a
405b19:	55                   	push   %ebp
405b1a:	8b ec                	mov    %esp,%ebp
405b1c:	51                   	push   %ecx
405b1d:	51                   	push   %ecx
405b1e:	8b 45 08             	mov    0x8(%ebp),%eax
405b21:	56                   	push   %esi
405b22:	8b f1                	mov    %ecx,%esi
405b24:	40                   	inc    %eax
405b25:	39 46 08             	cmp    %eax,0x8(%esi)
405b28:	72 07                	jb     0x405b31
405b2a:	5e                   	pop    %esi
405b2b:	8b e5                	mov    %ebp,%esp
405b2d:	5d                   	pop    %ebp
405b2e:	c2 04 00             	ret    $0x4
405b31:	3d c2 41 00 00       	cmp    $0x41c2,%eax
405b36:	0f 83 6b 85 03 00    	jae    0x43e0a7
405b3c:	03 c0                	add    %eax,%eax
405b3e:	57                   	push   %edi
405b3f:	50                   	push   %eax
405b40:	89 46 08             	mov    %eax,0x8(%esi)
405b43:	e8 03 ff ff ff       	call   0x405a4b
405b48:	50                   	push   %eax
405b49:	89 46 08             	mov    %eax,0x8(%esi)
405b4c:	e8 a5 b4 01 00       	call   0x420ff6
405b51:	83 3e 00             	cmpl   $0x0,(%esi)
405b54:	8b f8                	mov    %eax,%edi
405b56:	59                   	pop    %ecx
405b57:	74 17                	je     0x405b70
405b59:	8b 4e 04             	mov    0x4(%esi),%ecx
405b5c:	41                   	inc    %ecx
405b5d:	51                   	push   %ecx
405b5e:	ff 36                	push   (%esi)
405b60:	57                   	push   %edi
405b61:	e8 1a b5 01 00       	call   0x421080
405b66:	ff 36                	push   (%esi)
405b68:	e8 ff b4 01 00       	call   0x42106c
405b6d:	83 c4 10             	add    $0x10,%esp
405b70:	89 3e                	mov    %edi,(%esi)
405b72:	5f                   	pop    %edi
405b73:	eb b5                	jmp    0x405b2a
405b75:	55                   	push   %ebp
405b76:	8b ec                	mov    %esp,%ebp
405b78:	53                   	push   %ebx
405b79:	8b 5d 08             	mov    0x8(%ebp),%ebx
405b7c:	33 c0                	xor    %eax,%eax
405b7e:	57                   	push   %edi
405b7f:	50                   	push   %eax
405b80:	50                   	push   %eax
405b81:	8b 7b 04             	mov    0x4(%ebx),%edi
405b84:	50                   	push   %eax
405b85:	50                   	push   %eax
405b86:	47                   	inc    %edi
405b87:	57                   	push   %edi
405b88:	ff 33                	push   (%ebx)
405b8a:	50                   	push   %eax
405b8b:	50                   	push   %eax
405b8c:	ff 15 ac f1 48 00    	call   *0x48f1ac
405b92:	89 45 08             	mov    %eax,0x8(%ebp)
405b95:	85 c0                	test   %eax,%eax
405b97:	74 37                	je     0x405bd0
405b99:	56                   	push   %esi
405b9a:	50                   	push   %eax
405b9b:	e8 56 b4 01 00       	call   0x420ff6
405ba0:	59                   	pop    %ecx
405ba1:	8b f0                	mov    %eax,%esi
405ba3:	33 c0                	xor    %eax,%eax
405ba5:	50                   	push   %eax
405ba6:	50                   	push   %eax
405ba7:	ff 75 08             	push   0x8(%ebp)
405baa:	56                   	push   %esi
405bab:	57                   	push   %edi
405bac:	ff 33                	push   (%ebx)
405bae:	50                   	push   %eax
405baf:	50                   	push   %eax
405bb0:	ff 15 ac f1 48 00    	call   *0x48f1ac
405bb6:	48                   	dec    %eax
405bb7:	50                   	push   %eax
405bb8:	51                   	push   %ecx
405bb9:	8b 4d 0c             	mov    0xc(%ebp),%ecx
405bbc:	56                   	push   %esi
405bbd:	e8 02 ff ff ff       	call   0x405ac4
405bc2:	56                   	push   %esi
405bc3:	e8 a4 b4 01 00       	call   0x42106c
405bc8:	59                   	pop    %ecx
405bc9:	5e                   	pop    %esi
405bca:	5f                   	pop    %edi
405bcb:	5b                   	pop    %ebx
405bcc:	5d                   	pop    %ebp
405bcd:	c2 08 00             	ret    $0x8
405bd0:	8b 4d 0c             	mov    0xc(%ebp),%ecx
405bd3:	e8 57 fe ff ff       	call   0x405a2f
405bd8:	eb f0                	jmp    0x405bca
405bda:	55                   	push   %ebp
405bdb:	8b ec                	mov    %esp,%ebp
405bdd:	57                   	push   %edi
405bde:	8b f9                	mov    %ecx,%edi
405be0:	8b 4f 0c             	mov    0xc(%edi),%ecx
405be3:	8b 01                	mov    (%ecx),%eax
405be5:	83 f8 01             	cmp    $0x1,%eax
405be8:	0f 8f 29 85 03 00    	jg     0x43e117
405bee:	8b 47 04             	mov    0x4(%edi),%eax
405bf1:	8b cf                	mov    %edi,%ecx
405bf3:	40                   	inc    %eax
405bf4:	50                   	push   %eax
405bf5:	e8 1f ff ff ff       	call   0x405b19
405bfa:	8b 57 04             	mov    0x4(%edi),%edx
405bfd:	8b 0f                	mov    (%edi),%ecx
405bff:	8a 45 08             	mov    0x8(%ebp),%al
405c02:	88 04 0a             	mov    %al,(%edx,%ecx,1)
405c05:	ff 47 04             	incl   0x4(%edi)
405c08:	8b 07                	mov    (%edi),%eax