4039b6:	8b c0                	mov    %eax,%eax
4039b8:	b0 04                	mov    $0x4,%al
4039ba:	e9 49 ef ff ff       	jmp    0x402908
4039bf:	c3                   	ret
4039c0:	8b 00                	mov    (%eax),%eax
4039c2:	89 c2                	mov    %eax,%edx
4039c4:	8b c2                	mov    %edx,%eax
4039c6:	c3                   	ret
4039c7:	90                   	nop
4039c8:	56                   	push   %esi
4039c9:	57                   	push   %edi
4039ca:	89 d7                	mov    %edx,%edi
4039cc:	8b 70 d4             	mov    -0x2c(%eax),%esi
4039cf:	31 c9                	xor    %ecx,%ecx
4039d1:	8a 0e                	mov    (%esi),%cl
4039d3:	41                   	inc    %ecx
4039d4:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
4039d6:	5f                   	pop    %edi
4039d7:	5e                   	pop    %esi
4039d8:	c3                   	ret
4039d9:	8d 40 00             	lea    0x0(%eax),%eax
4039dc:	53                   	push   %ebx
4039dd:	31 db                	xor    %ebx,%ebx
4039df:	09 d2                	or     %edx,%edx
4039e1:	74 1c                	je     0x4039ff
4039e3:	8b 40 d4             	mov    -0x2c(%eax),%eax
4039e6:	31 c9                	xor    %ecx,%ecx
4039e8:	8a 08                	mov    (%eax),%cl
4039ea:	3b 4a fc             	cmp    -0x4(%edx),%ecx
4039ed:	75 10                	jne    0x4039ff
4039ef:	4a                   	dec    %edx
4039f0:	8a 3c 01             	mov    (%ecx,%eax,1),%bh
4039f3:	32 3c 11             	xor    (%ecx,%edx,1),%bh
4039f6:	80 e7 df             	and    $0xdf,%bh
4039f9:	75 04                	jne    0x4039ff
4039fb:	49                   	dec    %ecx
4039fc:	75 f2                	jne    0x4039f0
4039fe:	43                   	inc    %ebx
4039ff:	88 d8                	mov    %bl,%al
403a01:	5b                   	pop    %ebx
403a02:	c3                   	ret
403a03:	90                   	nop
403a04:	8b 40 dc             	mov    -0x24(%eax),%eax
403a07:	85 c0                	test   %eax,%eax
403a09:	74 02                	je     0x403a0d
403a0b:	8b 00                	mov    (%eax),%eax
403a0d:	c3                   	ret
403a0e:	8b c0                	mov    %eax,%eax
403a10:	53                   	push   %ebx
403a11:	8b d8                	mov    %eax,%ebx
403a13:	8b c3                	mov    %ebx,%eax
403a15:	e8 26 00 00 00       	call   0x403a40
403a1a:	e8 8d ed ff ff       	call   0x4027ac
403a1f:	8b d0                	mov    %eax,%edx
403a21:	8b c3                	mov    %ebx,%eax
403a23:	e8 5c 00 00 00       	call   0x403a84
403a28:	5b                   	pop    %ebx
403a29:	c3                   	ret
403a2a:	8b c0                	mov    %eax,%eax
403a2c:	53                   	push   %ebx
403a2d:	8b d8                	mov    %eax,%ebx
403a2f:	8b c3                	mov    %ebx,%eax
403a31:	e8 a6 00 00 00       	call   0x403adc
403a36:	8b c3                	mov    %ebx,%eax
403a38:	e8 8f ed ff ff       	call   0x4027cc
403a3d:	5b                   	pop    %ebx
403a3e:	c3                   	ret
403a3f:	90                   	nop
403a40:	83 c0 d8             	add    $0xffffffd8,%eax
403a43:	8b 00                	mov    (%eax),%eax
403a45:	c3                   	ret
403a46:	8b c0                	mov    %eax,%eax
403a48:	84 d2                	test   %dl,%dl
403a4a:	74 08                	je     0x403a54
403a4c:	83 c4 f0             	add    $0xfffffff0,%esp
403a4f:	e8 88 03 00 00       	call   0x403ddc
403a54:	84 d2                	test   %dl,%dl
403a56:	74 0f                	je     0x403a67
403a58:	e8 d7 03 00 00       	call   0x403e34
403a5d:	64 8f 05 00 00 00 00 	pop    %fs:0x0
403a64:	83 c4 0c             	add    $0xc,%esp
403a67:	c3                   	ret
403a68:	e8 d7 03 00 00       	call   0x403e44
403a6d:	84 d2                	test   %dl,%dl
403a6f:	7e 05                	jle    0x403a76
403a71:	e8 b6 03 00 00       	call   0x403e2c
403a76:	c3                   	ret
403a77:	90                   	nop
403a78:	85 c0                	test   %eax,%eax
403a7a:	74 07                	je     0x403a83
403a7c:	b2 01                	mov    $0x1,%dl
403a7e:	8b 08                	mov    (%eax),%ecx
403a80:	ff 51 fc             	call   *-0x4(%ecx)
403a83:	c3                   	ret
403a84:	53                   	push   %ebx
403a85:	56                   	push   %esi
403a86:	57                   	push   %edi
403a87:	89 c3                	mov    %eax,%ebx
403a89:	89 d7                	mov    %edx,%edi
403a8b:	ab                   	stos   %eax,%es:(%edi)
403a8c:	8b 4b d8             	mov    -0x28(%ebx),%ecx
403a8f:	31 c0                	xor    %eax,%eax
403a91:	51                   	push   %ecx
403a92:	c1 e9 02             	shr    $0x2,%ecx
403a95:	49                   	dec    %ecx
403a96:	f3 ab                	rep stos %eax,%es:(%edi)
403a98:	59                   	pop    %ecx
403a99:	83 e1 03             	and    $0x3,%ecx
403a9c:	f3 aa                	rep stos %al,%es:(%edi)
403a9e:	89 d0                	mov    %edx,%eax
403aa0:	89 e2                	mov    %esp,%edx
403aa2:	8b 4b b8             	mov    -0x48(%ebx),%ecx
403aa5:	85 c9                	test   %ecx,%ecx
403aa7:	74 01                	je     0x403aaa
403aa9:	51                   	push   %ecx
403aaa:	8b 5b dc             	mov    -0x24(%ebx),%ebx
403aad:	85 db                	test   %ebx,%ebx
403aaf:	74 04                	je     0x403ab5
403ab1:	8b 1b                	mov    (%ebx),%ebx
403ab3:	eb ed                	jmp    0x403aa2
403ab5:	39 d4                	cmp    %edx,%esp
403ab7:	74 1d                	je     0x403ad6
403ab9:	5b                   	pop    %ebx
403aba:	8b 0b                	mov    (%ebx),%ecx
403abc:	83 c3 04             	add    $0x4,%ebx
403abf:	8b 73 10             	mov    0x10(%ebx),%esi
403ac2:	85 f6                	test   %esi,%esi
403ac4:	74 06                	je     0x403acc
403ac6:	8b 7b 14             	mov    0x14(%ebx),%edi
403ac9:	89 34 07             	mov    %esi,(%edi,%eax,1)
403acc:	83 c3 1c             	add    $0x1c,%ebx
403acf:	49                   	dec    %ecx
403ad0:	75 ed                	jne    0x403abf
403ad2:	39 d4                	cmp    %edx,%esp
403ad4:	75 e3                	jne    0x403ab9
403ad6:	5f                   	pop    %edi
403ad7:	5e                   	pop    %esi
403ad8:	5b                   	pop    %ebx
403ad9:	c3                   	ret
403ada:	8b c0                	mov    %eax,%eax
403adc:	53                   	push   %ebx
403add:	56                   	push   %esi
403ade:	89 c3                	mov    %eax,%ebx
403ae0:	89 c6                	mov    %eax,%esi
403ae2:	8b 36                	mov    (%esi),%esi
403ae4:	8b 56 c0             	mov    -0x40(%esi),%edx
403ae7:	8b 76 dc             	mov    -0x24(%esi),%esi
403aea:	85 d2                	test   %edx,%edx
403aec:	74 07                	je     0x403af5
403aee:	e8 39 19 00 00       	call   0x40542c
403af3:	89 d8                	mov    %ebx,%eax
403af5:	85 f6                	test   %esi,%esi
403af7:	75 e9                	jne    0x403ae2
403af9:	5e                   	pop    %esi
403afa:	5b                   	pop    %ebx
403afb:	c3                   	ret
403afc:	87 d1                	xchg   %edx,%ecx
403afe:	81 f9 00 00 00 ff    	cmp    $0xff000000,%ecx
403b04:	73 11                	jae    0x403b17
403b06:	81 f9 00 00 00 fe    	cmp    $0xfe000000,%ecx
403b0c:	72 07                	jb     0x403b15
403b0e:	0f bf c9             	movswl %cx,%ecx
403b11:	03 08                	add    (%eax),%ecx
403b13:	ff 21                	jmp    *(%ecx)
403b15:	ff e1                	jmp    *%ecx
403b17:	81 e1 ff ff ff 00    	and    $0xffffff,%ecx
403b1d:	01 c1                	add    %eax,%ecx
403b1f:	89 d0                	mov    %edx,%eax
403b21:	8b 11                	mov    (%ecx),%edx
403b23:	e9 24 2d 00 00       	jmp    0x40684c
403b28:	c3                   	ret
403b29:	8d 40 00             	lea    0x0(%eax),%eax
403b2c:	55                   	push   %ebp
403b2d:	8b ec                	mov    %esp,%ebp
403b2f:	83 c4 f8             	add    $0xfffffff8,%esp
403b32:	53                   	push   %ebx
403b33:	56                   	push   %esi
403b34:	57                   	push   %edi
403b35:	33 db                	xor    %ebx,%ebx
403b37:	89 5d f8             	mov    %ebx,-0x8(%ebp)
403b3a:	8b f1                	mov    %ecx,%esi
403b3c:	89 55 fc             	mov    %edx,-0x4(%ebp)
403b3f:	8b f8                	mov    %eax,%edi
403b41:	33 c0                	xor    %eax,%eax
403b43:	55                   	push   %ebp
403b44:	68 b0 3b 40 00       	push   $0x403bb0
403b49:	64 ff 30             	push   %fs:(%eax)
403b4c:	64 89 20             	mov    %esp,%fs:(%eax)
403b4f:	33 c0                	xor    %eax,%eax
403b51:	89 06                	mov    %eax,(%esi)
403b53:	8b 55 fc             	mov    -0x4(%ebp),%edx
403b56:	8b 07                	mov    (%edi),%eax
403b58:	e8 63 00 00 00       	call   0x403bc0
403b5d:	8b d8                	mov    %eax,%ebx
403b5f:	85 db                	test   %ebx,%ebx
403b61:	74 31                	je     0x403b94
403b63:	8b 43 14             	mov    0x14(%ebx),%eax
403b66:	85 c0                	test   %eax,%eax
403b68:	74 13                	je     0x403b7d
403b6a:	03 f8                	add    %eax,%edi
403b6c:	89 3e                	mov    %edi,(%esi)
403b6e:	83 3e 00             	cmpl   $0x0,(%esi)
403b71:	74 21                	je     0x403b94
403b73:	8b 06                	mov    (%esi),%eax
403b75:	50                   	push   %eax
403b76:	8b 00                	mov    (%eax),%eax
403b78:	ff 50 04             	call   *0x4(%eax)
403b7b:	eb 17                	jmp    0x403b94
403b7d:	8d 4d f8             	lea    -0x8(%ebp),%ecx
403b80:	8b 53 18             	mov    0x18(%ebx),%edx
403b83:	8b c7                	mov    %edi,%eax
403b85:	e8 72 ff ff ff       	call   0x403afc
403b8a:	8b 55 f8             	mov    -0x8(%ebp),%edx
403b8d:	8b c6                	mov    %esi,%eax
403b8f:	e8 b8 2c 00 00       	call   0x40684c
403b94:	83 3e 00             	cmpl   $0x0,(%esi)
403b97:	0f 95 c3             	setne  %bl
403b9a:	33 c0                	xor    %eax,%eax
403b9c:	5a                   	pop    %edx
403b9d:	59                   	pop    %ecx
403b9e:	59                   	pop    %ecx
403b9f:	64 89 10             	mov    %edx,%fs:(%eax)
403ba2:	68 b7 3b 40 00       	push   $0x403bb7
403ba7:	8d 45 f8             	lea    -0x8(%ebp),%eax
403baa:	e8 85 2c 00 00       	call   0x406834
403baf:	c3                   	ret
403bb0:	e9 57 06 00 00       	jmp    0x40420c
403bb5:	eb f0                	jmp    0x403ba7
403bb7:	8b c3                	mov    %ebx,%eax
403bb9:	5f                   	pop    %edi
403bba:	5e                   	pop    %esi
403bbb:	5b                   	pop    %ebx
403bbc:	59                   	pop    %ecx
403bbd:	59                   	pop    %ecx
403bbe:	5d                   	pop    %ebp
403bbf:	c3                   	ret
403bc0:	53                   	push   %ebx
403bc1:	56                   	push   %esi
403bc2:	89 c3                	mov    %eax,%ebx
403bc4:	8b 43 b8             	mov    -0x48(%ebx),%eax
403bc7:	85 c0                	test   %eax,%eax
403bc9:	74 29                	je     0x403bf4
403bcb:	8b 08                	mov    (%eax),%ecx
403bcd:	83 c0 04             	add    $0x4,%eax
403bd0:	8b 32                	mov    (%edx),%esi
403bd2:	3b 30                	cmp    (%eax),%esi
403bd4:	75 18                	jne    0x403bee
403bd6:	8b 72 04             	mov    0x4(%edx),%esi
403bd9:	3b 70 04             	cmp    0x4(%eax),%esi
403bdc:	75 10                	jne    0x403bee
403bde:	8b 72 08             	mov    0x8(%edx),%esi
403be1:	3b 70 08             	cmp    0x8(%eax),%esi
403be4:	75 08                	jne    0x403bee
403be6:	8b 72 0c             	mov    0xc(%edx),%esi
403be9:	3b 70 0c             	cmp    0xc(%eax),%esi
403bec:	74 13                	je     0x403c01
403bee:	83 c0 1c             	add    $0x1c,%eax
403bf1:	49                   	dec    %ecx
403bf2:	75 dc                	jne    0x403bd0
403bf4:	8b 5b dc             	mov    -0x24(%ebx),%ebx
403bf7:	85 db                	test   %ebx,%ebx
403bf9:	74 04                	je     0x403bff
403bfb:	8b 1b                	mov    (%ebx),%ebx
403bfd:	eb c5                	jmp    0x403bc4
403bff:	31 c0                	xor    %eax,%eax
403c01:	5e                   	pop    %esi
403c02:	5b                   	pop    %ebx
403c03:	c3                   	ret
403c04:	53                   	push   %ebx
403c05:	56                   	push   %esi
403c06:	8b f2                	mov    %edx,%esi
403c08:	8b d8                	mov    %eax,%ebx
403c0a:	85 db                	test   %ebx,%ebx
403c0c:	74 0d                	je     0x403c1b
403c0e:	8b d6                	mov    %esi,%edx
403c10:	8b 03                	mov    (%ebx),%eax
403c12:	e8 8d 00 00 00       	call   0x403ca4
403c17:	84 c0                	test   %al,%al
403c19:	75 05                	jne    0x403c20
403c1b:	33 c0                	xor    %eax,%eax
403c1d:	5e                   	pop    %esi
403c1e:	5b                   	pop    %ebx
403c1f:	c3                   	ret
403c20:	b0 01                	mov    $0x1,%al
403c22:	5e                   	pop    %esi
403c23:	5b                   	pop    %ebx
403c24:	c3                   	ret
403c25:	8d 40 00             	lea    0x0(%eax),%eax
403c28:	85 c0                	test   %eax,%eax
403c2a:	74 16                	je     0x403c42
403c2c:	89 c1                	mov    %eax,%ecx
403c2e:	8b 09                	mov    (%ecx),%ecx
403c30:	39 d1                	cmp    %edx,%ecx
403c32:	74 0e                	je     0x403c42
403c34:	8b 49 dc             	mov    -0x24(%ecx),%ecx
403c37:	85 c9                	test   %ecx,%ecx
403c39:	75 f3                	jne    0x403c2e
403c3b:	b0 0a                	mov    $0xa,%al
403c3d:	e9 c6 ec ff ff       	jmp    0x402908
403c42:	c3                   	ret
403c43:	90                   	nop
403c44:	57                   	push   %edi
403c45:	96                   	xchg   %eax,%esi
403c46:	eb 02                	jmp    0x403c4a
403c48:	8b 36                	mov    (%esi),%esi
403c4a:	8b 7e d0             	mov    -0x30(%esi),%edi
403c4d:	85 ff                	test   %edi,%edi
403c4f:	74 0d                	je     0x403c5e
403c51:	0f b7 0f             	movzwl (%edi),%ecx
403c54:	51                   	push   %ecx
403c55:	83 c7 02             	add    $0x2,%edi
403c58:	f2 66 af             	repnz scas %es:(%edi),%ax
403c5b:	74 0a                	je     0x403c67
403c5d:	59                   	pop    %ecx
403c5e:	8b 76 dc             	mov    -0x24(%esi),%esi
403c61:	85 f6                	test   %esi,%esi
403c63:	75 e3                	jne    0x403c48
403c65:	5f                   	pop    %edi
403c66:	c3                   	ret
403c67:	58                   	pop    %eax
403c68:	01 c0                	add    %eax,%eax
403c6a:	29 c8                	sub    %ecx,%eax
403c6c:	8b 74 47 fc          	mov    -0x4(%edi,%eax,2),%esi
403c70:	5f                   	pop    %edi
403c71:	c3                   	ret
403c72:	8b c0                	mov    %eax,%eax
403c74:	50                   	push   %eax
403c75:	51                   	push   %ecx
403c76:	8b 00                	mov    (%eax),%eax
403c78:	e8 c7 ff ff ff       	call   0x403c44
403c7d:	59                   	pop    %ecx
403c7e:	58                   	pop    %eax
403c7f:	74 02                	je     0x403c83
403c81:	ff e6                	jmp    *%esi
403c83:	59                   	pop    %ecx
403c84:	e9 67 f0 ff ff       	jmp    0x402cf0
403c89:	c3                   	ret
403c8a:	8b c0                	mov    %eax,%eax
403c8c:	56                   	push   %esi
403c8d:	89 d6                	mov    %edx,%esi
403c8f:	8b 00                	mov    (%eax),%eax
403c91:	e8 ae ff ff ff       	call   0x403c44
403c96:	89 f0                	mov    %esi,%eax
403c98:	5e                   	pop    %esi
403c99:	75 06                	jne    0x403ca1
403c9b:	59                   	pop    %ecx
403c9c:	e9 4f f0 ff ff       	jmp    0x402cf0
403ca1:	c3                   	ret
403ca2:	8b c0                	mov    %eax,%eax
403ca4:	eb 02                	jmp    0x403ca8