402b61:	8d 85 f4 fe ff ff    	lea    -0x10c(%ebp),%eax
402b67:	50                   	push   %eax
402b68:	56                   	push   %esi
402b69:	6a 06                	push   $0x6
402b6b:	ff 15 88 e0 40 00    	call   *0x40e088
402b71:	85 c0                	test   %eax,%eax
402b73:	75 08                	jne    0x402b7d
402b75:	85 db                	test   %ebx,%ebx
402b77:	74 3b                	je     0x402bb4
402b79:	89 3b                	mov    %edi,(%ebx)
402b7b:	eb 37                	jmp    0x402bb4
402b7d:	8b bd f4 fe ff ff    	mov    -0x10c(%ebp),%edi
402b83:	8b 8d f0 fe ff ff    	mov    -0x110(%ebp),%ecx
402b89:	85 db                	test   %ebx,%ebx
402b8b:	74 0c                	je     0x402b99
402b8d:	8b c6                	mov    %esi,%eax
402b8f:	2b c7                	sub    %edi,%eax
402b91:	f7 de                	neg    %esi
402b93:	1b f6                	sbb    %esi,%esi
402b95:	23 f0                	and    %eax,%esi
402b97:	89 33                	mov    %esi,(%ebx)
402b99:	85 c9                	test   %ecx,%ecx
402b9b:	74 57                	je     0x402bf4
402b9d:	68 04 01 00 00       	push   $0x104
402ba2:	8d 85 f8 fe ff ff    	lea    -0x108(%ebp),%eax
402ba8:	50                   	push   %eax
402ba9:	57                   	push   %edi
402baa:	ff 15 7c e0 40 00    	call   *0x40e07c
402bb0:	85 c0                	test   %eax,%eax
402bb2:	75 04                	jne    0x402bb8
402bb4:	32 c0                	xor    %al,%al
402bb6:	eb 3e                	jmp    0x402bf6
402bb8:	8d 8d f8 fe ff ff    	lea    -0x108(%ebp),%ecx
402bbe:	8d 51 01             	lea    0x1(%ecx),%edx
402bc1:	8a 01                	mov    (%ecx),%al
402bc3:	41                   	inc    %ecx
402bc4:	84 c0                	test   %al,%al
402bc6:	75 f9                	jne    0x402bc1
402bc8:	2b ca                	sub    %edx,%ecx
402bca:	8d 85 f8 fe ff ff    	lea    -0x108(%ebp),%eax
402bd0:	03 c1                	add    %ecx,%eax
402bd2:	eb 07                	jmp    0x402bdb
402bd4:	80 78 ff 5c          	cmpb   $0x5c,-0x1(%eax)
402bd8:	74 0b                	je     0x402be5
402bda:	48                   	dec    %eax
402bdb:	8d 8d f8 fe ff ff    	lea    -0x108(%ebp),%ecx
402be1:	3b c1                	cmp    %ecx,%eax
402be3:	77 ef                	ja     0x402bd4
402be5:	8b 55 14             	mov    0x14(%ebp),%edx
402be8:	8b 8d f0 fe ff ff    	mov    -0x110(%ebp),%ecx
402bee:	50                   	push   %eax
402bef:	e8 bb f9 ff ff       	call   0x4025af
402bf4:	b0 01                	mov    $0x1,%al
402bf6:	8b 4d fc             	mov    -0x4(%ebp),%ecx
402bf9:	5f                   	pop    %edi
402bfa:	5e                   	pop    %esi
402bfb:	33 cd                	xor    %ebp,%ecx
402bfd:	5b                   	pop    %ebx
402bfe:	e8 5d 72 00 00       	call   0x409e60
402c03:	c9                   	leave
402c04:	c2 10 00             	ret    $0x10
402c07:	cc                   	int3
402c08:	cc                   	int3
402c09:	cc                   	int3
402c0a:	cc                   	int3
402c0b:	cc                   	int3
402c0c:	cc                   	int3
402c0d:	cc                   	int3
402c0e:	cc                   	int3
402c0f:	cc                   	int3
402c10:	80 3d 54 d5 40 00 00 	cmpb   $0x0,0x40d554
402c17:	56                   	push   %esi
402c18:	be 70 d5 40 00       	mov    $0x40d570,%esi
402c1d:	75 16                	jne    0x402c35
402c1f:	6a 40                	push   $0x40
402c21:	56                   	push   %esi
402c22:	6a 00                	push   $0x0
402c24:	68 f0 2a 40 00       	push   $0x402af0
402c29:	e8 00 ff ff ff       	call   0x402b2e
402c2e:	c6 05 54 d5 40 00 01 	movb   $0x1,0x40d554
402c35:	8b c6                	mov    %esi,%eax
402c37:	5e                   	pop    %esi
402c38:	c3                   	ret
402c39:	cc                   	int3
402c3a:	cc                   	int3
402c3b:	cc                   	int3
402c3c:	cc                   	int3
402c3d:	cc                   	int3
402c3e:	cc                   	int3
402c3f:	cc                   	int3
402c40:	ff 25 2c e0 40 00    	jmp    *0x40e02c
402c46:	cc                   	int3
402c47:	cc                   	int3
402c48:	cc                   	int3
402c49:	cc                   	int3
402c4a:	cc                   	int3
402c4b:	cc                   	int3
402c4c:	cc                   	int3
402c4d:	cc                   	int3
402c4e:	cc                   	int3
402c4f:	cc                   	int3
402c50:	8b ff                	mov    %edi,%edi
402c52:	55                   	push   %ebp
402c53:	8b ec                	mov    %esp,%ebp
402c55:	56                   	push   %esi
402c56:	68 78 16 40 00       	push   $0x401678
402c5b:	ff 15 78 e0 40 00    	call   *0x40e078
402c61:	68 98 16 40 00       	push   $0x401698
402c66:	50                   	push   %eax
402c67:	ff 15 80 e0 40 00    	call   *0x40e080
402c6d:	8b f0                	mov    %eax,%esi
402c6f:	85 f6                	test   %esi,%esi
402c71:	74 13                	je     0x402c86
402c73:	ff 75 10             	push   0x10(%ebp)
402c76:	8b ce                	mov    %esi,%ecx
402c78:	ff 75 0c             	push   0xc(%ebp)
402c7b:	ff 75 08             	push   0x8(%ebp)
402c7e:	ff 15 f0 e1 40 00    	call   *0x40e1f0
402c84:	ff d6                	call   *%esi
402c86:	5e                   	pop    %esi
402c87:	5d                   	pop    %ebp
402c88:	c2 0c 00             	ret    $0xc
402c8b:	8b ff                	mov    %edi,%edi
402c8d:	55                   	push   %ebp
402c8e:	8b ec                	mov    %esp,%ebp
402c90:	56                   	push   %esi
402c91:	57                   	push   %edi
402c92:	8b f2                	mov    %edx,%esi
402c94:	8b f9                	mov    %ecx,%edi
402c96:	ff 15 44 e0 40 00    	call   *0x40e044
402c9c:	85 c0                	test   %eax,%eax
402c9e:	75 1d                	jne    0x402cbd
402ca0:	68 9c 02 07 80       	push   $0x8007029c
402ca5:	6a 02                	push   $0x2
402ca7:	ff 75 14             	push   0x14(%ebp)
402caa:	8b d6                	mov    %esi,%edx
402cac:	8b cf                	mov    %edi,%ecx
402cae:	50                   	push   %eax
402caf:	50                   	push   %eax
402cb0:	ff 75 08             	push   0x8(%ebp)
402cb3:	e8 b6 07 00 00       	call   0x40346e
402cb8:	b8 9c 02 00 00       	mov    $0x29c,%eax
402cbd:	5f                   	pop    %edi
402cbe:	5e                   	pop    %esi
402cbf:	5d                   	pop    %ebp
402cc0:	c2 10 00             	ret    $0x10
402cc3:	8b ff                	mov    %edi,%edi
402cc5:	55                   	push   %ebp
402cc6:	8b ec                	mov    %esp,%ebp
402cc8:	ff 75 04             	push   0x4(%ebp)
402ccb:	33 d2                	xor    %edx,%edx
402ccd:	51                   	push   %ecx
402cce:	51                   	push   %ecx
402ccf:	6a 00                	push   $0x0
402cd1:	33 c9                	xor    %ecx,%ecx
402cd3:	e8 b3 ff ff ff       	call   0x402c8b
402cd8:	85 c0                	test   %eax,%eax
402cda:	7e 08                	jle    0x402ce4
402cdc:	0f b7 c0             	movzwl %ax,%eax
402cdf:	0d 00 00 07 80       	or     $0x80070000,%eax
402ce4:	5d                   	pop    %ebp
402ce5:	c3                   	ret
402ce6:	8b ff                	mov    %edi,%edi
402ce8:	55                   	push   %ebp
402ce9:	8b ec                	mov    %esp,%ebp
402ceb:	8b 45 0c             	mov    0xc(%ebp),%eax
402cee:	53                   	push   %ebx
402cef:	8b 5d 08             	mov    0x8(%ebp),%ebx
402cf2:	56                   	push   %esi
402cf3:	33 f6                	xor    %esi,%esi
402cf5:	85 c0                	test   %eax,%eax
402cf7:	74 07                	je     0x402d00
402cf9:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
402cfe:	76 05                	jbe    0x402d05
402d00:	be 57 00 07 80       	mov    $0x80070057,%esi
402d05:	85 f6                	test   %esi,%esi
402d07:	78 30                	js     0x402d39
402d09:	57                   	push   %edi
402d0a:	8d 4d 14             	lea    0x14(%ebp),%ecx
402d0d:	33 f6                	xor    %esi,%esi
402d0f:	51                   	push   %ecx
402d10:	ff 75 10             	push   0x10(%ebp)
402d13:	8d 78 ff             	lea    -0x1(%eax),%edi
402d16:	57                   	push   %edi
402d17:	50                   	push   %eax
402d18:	53                   	push   %ebx
402d19:	e8 ad 7c 00 00       	call   0x40a9cb
402d1e:	83 c4 14             	add    $0x14,%esp
402d21:	85 c0                	test   %eax,%eax
402d23:	78 08                	js     0x402d2d
402d25:	3b c7                	cmp    %edi,%eax
402d27:	77 04                	ja     0x402d2d
402d29:	75 0b                	jne    0x402d36
402d2b:	eb 05                	jmp    0x402d32
402d2d:	be 7a 00 07 80       	mov    $0x8007007a,%esi
402d32:	c6 04 1f 00          	movb   $0x0,(%edi,%ebx,1)
402d36:	5f                   	pop    %edi
402d37:	eb 07                	jmp    0x402d40
402d39:	85 c0                	test   %eax,%eax
402d3b:	74 03                	je     0x402d40
402d3d:	c6 03 00             	movb   $0x0,(%ebx)
402d40:	8b c6                	mov    %esi,%eax
402d42:	5e                   	pop    %esi
402d43:	5b                   	pop    %ebx
402d44:	5d                   	pop    %ebp
402d45:	c3                   	ret
402d46:	85 c9                	test   %ecx,%ecx
402d48:	75 04                	jne    0x402d4e
402d4a:	33 c0                	xor    %eax,%eax
402d4c:	40                   	inc    %eax
402d4d:	c3                   	ret
402d4e:	8d 51 01             	lea    0x1(%ecx),%edx
402d51:	8a 01                	mov    (%ecx),%al
402d53:	41                   	inc    %ecx
402d54:	84 c0                	test   %al,%al
402d56:	75 f9                	jne    0x402d51
402d58:	2b ca                	sub    %edx,%ecx
402d5a:	8d 41 01             	lea    0x1(%ecx),%eax
402d5d:	c3                   	ret
402d5e:	85 c9                	test   %ecx,%ecx
402d60:	75 04                	jne    0x402d66
402d62:	6a 02                	push   $0x2
402d64:	58                   	pop    %eax
402d65:	c3                   	ret
402d66:	8d 51 02             	lea    0x2(%ecx),%edx
402d69:	66 8b 01             	mov    (%ecx),%ax
402d6c:	83 c1 02             	add    $0x2,%ecx
402d6f:	66 85 c0             	test   %ax,%ax
402d72:	75 f5                	jne    0x402d69
402d74:	2b ca                	sub    %edx,%ecx
402d76:	d1 f9                	sar    $1,%ecx
402d78:	8d 04 4d 02 00 00 00 	lea    0x2(,%ecx,2),%eax
402d7f:	c3                   	ret
402d80:	8b ff                	mov    %edi,%edi
402d82:	55                   	push   %ebp
402d83:	8b ec                	mov    %esp,%ebp
402d85:	51                   	push   %ecx
402d86:	53                   	push   %ebx
402d87:	8b 5d 08             	mov    0x8(%ebp),%ebx
402d8a:	8b c1                	mov    %ecx,%eax
402d8c:	56                   	push   %esi
402d8d:	57                   	push   %edi
402d8e:	6a 14                	push   $0x14
402d90:	59                   	pop    %ecx
402d91:	8b f8                	mov    %eax,%edi
402d93:	89 45 fc             	mov    %eax,-0x4(%ebp)
402d96:	8b f3                	mov    %ebx,%esi
402d98:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
402d9a:	8b 4b 40             	mov    0x40(%ebx),%ecx
402d9d:	e8 bc ff ff ff       	call   0x402d5e
402da2:	8b 4b 34             	mov    0x34(%ebx),%ecx
402da5:	8b f8                	mov    %eax,%edi
402da7:	e8 b2 ff ff ff       	call   0x402d5e
402dac:	8b 4b 0c             	mov    0xc(%ebx),%ecx
402daf:	03 f8                	add    %eax,%edi
402db1:	e8 a8 ff ff ff       	call   0x402d5e
402db6:	8b 4b 3c             	mov    0x3c(%ebx),%ecx
402db9:	03 f8                	add    %eax,%edi
402dbb:	e8 86 ff ff ff       	call   0x402d46
402dc0:	8b 4b 30             	mov    0x30(%ebx),%ecx
402dc3:	03 f8                	add    %eax,%edi
402dc5:	e8 7c ff ff ff       	call   0x402d46
402dca:	8b 4b 28             	mov    0x28(%ebx),%ecx
402dcd:	03 f8                	add    %eax,%edi
402dcf:	e8 72 ff ff ff       	call   0x402d46
402dd4:	8b 4b 1c             	mov    0x1c(%ebx),%ecx
402dd7:	03 f8                	add    %eax,%edi
402dd9:	e8 68 ff ff ff       	call   0x402d46
402dde:	8b 4b 18             	mov    0x18(%ebx),%ecx
402de1:	03 f8                	add    %eax,%edi
402de3:	e8 5e ff ff ff       	call   0x402d46
402de8:	8b 4b 14             	mov    0x14(%ebx),%ecx
402deb:	03 f8                	add    %eax,%edi
402ded:	e8 54 ff ff ff       	call   0x402d46
402df2:	8b 4b 44             	mov    0x44(%ebx),%ecx
402df5:	03 f8                	add    %eax,%edi
402df7:	e8 4a ff ff ff       	call   0x402d46
402dfc:	8b 55 fc             	mov    -0x4(%ebp),%edx
402dff:	03 f8                	add    %eax,%edi
402e01:	8d 42 50             	lea    0x50(%edx),%eax
402e04:	8b 30                	mov    (%eax),%esi
402e06:	85 f6                	test   %esi,%esi
402e08:	74 0a                	je     0x402e14
402e0a:	83 3e 01             	cmpl   $0x1,(%esi)
402e0d:	75 05                	jne    0x402e14
402e0f:	39 7a 54             	cmp    %edi,0x54(%edx)
402e12:	73 1d                	jae    0x402e31
402e14:	8b c8                	mov    %eax,%ecx
402e16:	e8 01 fc ff ff       	call   0x402a1c
402e1b:	8b 4d fc             	mov    -0x4(%ebp),%ecx
402e1e:	57                   	push   %edi
402e1f:	6a 00                	push   $0x0
402e21:	8d 49 50             	lea    0x50(%ecx),%ecx
402e24:	e8 24 fc ff ff       	call   0x402a4d
402e29:	8b 55 fc             	mov    -0x4(%ebp),%edx
402e2c:	8d 42 50             	lea    0x50(%edx),%eax
402e2f:	8b 30                	mov    (%eax),%esi
402e31:	8b 48 04             	mov    0x4(%eax),%ecx
402e34:	8d 46 04             	lea    0x4(%esi),%eax
402e37:	f7 de                	neg    %esi
402e39:	1b f6                	sbb    %esi,%esi
402e3b:	23 f0                	and    %eax,%esi
402e3d:	8b fe                	mov    %esi,%edi
402e3f:	f7 df                	neg    %edi
402e41:	1b ff                	sbb    %edi,%edi
402e43:	8d 04 0e             	lea    (%esi,%ecx,1),%eax
402e46:	23 f8                	and    %eax,%edi
402e48:	85 f6                	test   %esi,%esi
402e4a:	0f 84 b1 00 00 00    	je     0x402f01
402e50:	8d 42 0c             	lea    0xc(%edx),%eax
402e53:	8b ce                	mov    %esi,%ecx
402e55:	50                   	push   %eax
402e56:	ff 73 0c             	push   0xc(%ebx)
402e59:	8b d7                	mov    %edi,%edx
402e5b:	e8 82 1a 00 00       	call   0x4048e2
402e60:	8b 75 fc             	mov    -0x4(%ebp),%esi
402e63:	8b d7                	mov    %edi,%edx
402e65:	8d 4e 14             	lea    0x14(%esi),%ecx
402e68:	51                   	push   %ecx
402e69:	ff 73 14             	push   0x14(%ebx)
402e6c:	8b c8                	mov    %eax,%ecx
402e6e:	e8 d9 1a 00 00       	call   0x40494c
402e73:	8d 4e 18             	lea    0x18(%esi),%ecx
402e76:	8b d7                	mov    %edi,%edx
402e78:	51                   	push   %ecx
402e79:	ff 73 18             	push   0x18(%ebx)
402e7c:	8b c8                	mov    %eax,%ecx
402e7e:	e8 c9 1a 00 00       	call   0x40494c
402e83:	8d 4e 1c             	lea    0x1c(%esi),%ecx
402e86:	8b d7                	mov    %edi,%edx
402e88:	51                   	push   %ecx
402e89:	ff 73 1c             	push   0x1c(%ebx)
402e8c:	8b c8                	mov    %eax,%ecx
402e8e:	e8 b9 1a 00 00       	call   0x40494c
402e93:	8d 4e 28             	lea    0x28(%esi),%ecx
402e96:	8b d7                	mov    %edi,%edx
402e98:	51                   	push   %ecx
402e99:	ff 73 28             	push   0x28(%ebx)
402e9c:	8b c8                	mov    %eax,%ecx
402e9e:	e8 a9 1a 00 00       	call   0x40494c
402ea3:	8d 4e 44             	lea    0x44(%esi),%ecx
402ea6:	8b d7                	mov    %edi,%edx
402ea8:	51                   	push   %ecx
402ea9:	ff 73 44             	push   0x44(%ebx)
402eac:	8b c8                	mov    %eax,%ecx
402eae:	e8 99 1a 00 00       	call   0x40494c
402eb3:	8d 4e 3c             	lea    0x3c(%esi),%ecx
402eb6:	8b d7                	mov    %edi,%edx
402eb8:	51                   	push   %ecx
402eb9:	ff 73 3c             	push   0x3c(%ebx)