401c84:	85 f6                	test   %esi,%esi
401c86:	74 03                	je     0x401c8b
401c88:	83 26 00             	andl   $0x0,(%esi)
401c8b:	5e                   	pop    %esi
401c8c:	5d                   	pop    %ebp
401c8d:	c2 0c 00             	ret    $0xc
401c90:	55                   	push   %ebp
401c91:	8b ec                	mov    %esp,%ebp
401c93:	56                   	push   %esi
401c94:	57                   	push   %edi
401c95:	8b 7d 0c             	mov    0xc(%ebp),%edi
401c98:	33 f6                	xor    %esi,%esi
401c9a:	85 ff                	test   %edi,%edi
401c9c:	74 08                	je     0x401ca6
401c9e:	81 ff ff ff ff 7f    	cmp    $0x7fffffff,%edi
401ca4:	76 05                	jbe    0x401cab
401ca6:	be 57 00 07 80       	mov    $0x80070057,%esi
401cab:	85 f6                	test   %esi,%esi
401cad:	78 30                	js     0x401cdf
401caf:	53                   	push   %ebx
401cb0:	ff 75 14             	push   0x14(%ebp)
401cb3:	8b 5d 08             	mov    0x8(%ebp),%ebx
401cb6:	33 f6                	xor    %esi,%esi
401cb8:	56                   	push   %esi
401cb9:	ff 75 10             	push   0x10(%ebp)
401cbc:	4f                   	dec    %edi
401cbd:	57                   	push   %edi
401cbe:	53                   	push   %ebx
401cbf:	e8 38 0e 00 00       	call   0x402afc
401cc4:	83 c4 14             	add    $0x14,%esp
401cc7:	85 c0                	test   %eax,%eax
401cc9:	78 08                	js     0x401cd3
401ccb:	3b c7                	cmp    %edi,%eax
401ccd:	77 04                	ja     0x401cd3
401ccf:	75 0d                	jne    0x401cde
401cd1:	eb 05                	jmp    0x401cd8
401cd3:	be 7a 00 07 80       	mov    $0x8007007a,%esi
401cd8:	33 c0                	xor    %eax,%eax
401cda:	66 89 04 7b          	mov    %ax,(%ebx,%edi,2)
401cde:	5b                   	pop    %ebx
401cdf:	5f                   	pop    %edi
401ce0:	8b c6                	mov    %esi,%eax
401ce2:	5e                   	pop    %esi
401ce3:	5d                   	pop    %ebp
401ce4:	c2 10 00             	ret    $0x10
401ce7:	55                   	push   %ebp
401ce8:	8b ec                	mov    %esp,%ebp
401cea:	8b 55 0c             	mov    0xc(%ebp),%edx
401ced:	33 c9                	xor    %ecx,%ecx
401cef:	8b 45 08             	mov    0x8(%ebp),%eax
401cf2:	56                   	push   %esi
401cf3:	33 f6                	xor    %esi,%esi
401cf5:	85 d2                	test   %edx,%edx
401cf7:	74 31                	je     0x401d2a
401cf9:	53                   	push   %ebx
401cfa:	8b 5d 18             	mov    0x18(%ebp),%ebx
401cfd:	57                   	push   %edi
401cfe:	8b 7d 14             	mov    0x14(%ebp),%edi
401d01:	2b f8                	sub    %eax,%edi
401d03:	85 db                	test   %ebx,%ebx
401d05:	74 1d                	je     0x401d24
401d07:	8a 14 07             	mov    (%edi,%eax,1),%dl
401d0a:	84 d2                	test   %dl,%dl
401d0c:	8b 55 0c             	mov    0xc(%ebp),%edx
401d0f:	74 13                	je     0x401d24
401d11:	8a 14 07             	mov    (%edi,%eax,1),%dl
401d14:	88 10                	mov    %dl,(%eax)
401d16:	40                   	inc    %eax
401d17:	8b 55 0c             	mov    0xc(%ebp),%edx
401d1a:	4a                   	dec    %edx
401d1b:	4b                   	dec    %ebx
401d1c:	41                   	inc    %ecx
401d1d:	89 55 0c             	mov    %edx,0xc(%ebp)
401d20:	85 d2                	test   %edx,%edx
401d22:	75 df                	jne    0x401d03
401d24:	5f                   	pop    %edi
401d25:	5b                   	pop    %ebx
401d26:	85 d2                	test   %edx,%edx
401d28:	75 07                	jne    0x401d31
401d2a:	48                   	dec    %eax
401d2b:	be 7a 00 07 80       	mov    $0x8007007a,%esi
401d30:	49                   	dec    %ecx
401d31:	8b 55 10             	mov    0x10(%ebp),%edx
401d34:	c6 00 00             	movb   $0x0,(%eax)
401d37:	85 d2                	test   %edx,%edx
401d39:	74 02                	je     0x401d3d
401d3b:	89 0a                	mov    %ecx,(%edx)
401d3d:	8b c6                	mov    %esi,%eax
401d3f:	5e                   	pop    %esi
401d40:	5d                   	pop    %ebp
401d41:	c2 14 00             	ret    $0x14
401d44:	55                   	push   %ebp
401d45:	8b ec                	mov    %esp,%ebp
401d47:	8b 45 1c             	mov    0x1c(%ebp),%eax
401d4a:	53                   	push   %ebx
401d4b:	8b 5d 08             	mov    0x8(%ebp),%ebx
401d4e:	57                   	push   %edi
401d4f:	8b 7d 0c             	mov    0xc(%ebp),%edi
401d52:	85 ff                	test   %edi,%edi
401d54:	74 21                	je     0x401d77
401d56:	a9 00 10 00 00       	test   $0x1000,%eax
401d5b:	74 1a                	je     0x401d77
401d5d:	8b 4d 10             	mov    0x10(%ebp),%ecx
401d60:	8b 45 14             	mov    0x14(%ebp),%eax
401d63:	8d 14 0b             	lea    (%ebx,%ecx,1),%edx
401d66:	89 10                	mov    %edx,(%eax)
401d68:	8b c7                	mov    %edi,%eax
401d6a:	2b c1                	sub    %ecx,%eax
401d6c:	8b 4d 18             	mov    0x18(%ebp),%ecx
401d6f:	89 01                	mov    %eax,(%ecx)
401d71:	8b 45 1c             	mov    0x1c(%ebp),%eax
401d74:	c6 02 00             	movb   $0x0,(%edx)
401d77:	a9 00 04 00 00       	test   $0x400,%eax
401d7c:	74 3f                	je     0x401dbd
401d7e:	56                   	push   %esi
401d7f:	0f b6 f0             	movzbl %al,%esi
401d82:	57                   	push   %edi
401d83:	56                   	push   %esi
401d84:	53                   	push   %ebx
401d85:	e8 e6 d8 02 00       	call   0x42f670
401d8a:	83 c4 0c             	add    $0xc,%esp
401d8d:	85 f6                	test   %esi,%esi
401d8f:	5e                   	pop    %esi
401d90:	75 0f                	jne    0x401da1
401d92:	8b 55 14             	mov    0x14(%ebp),%edx
401d95:	8b 4d 18             	mov    0x18(%ebp),%ecx
401d98:	89 1a                	mov    %ebx,(%edx)
401d9a:	89 39                	mov    %edi,(%ecx)
401d9c:	8b 45 1c             	mov    0x1c(%ebp),%eax
401d9f:	eb 22                	jmp    0x401dc3
401da1:	85 ff                	test   %edi,%edi
401da3:	74 30                	je     0x401dd5
401da5:	8b 55 14             	mov    0x14(%ebp),%edx
401da8:	8d 47 ff             	lea    -0x1(%edi),%eax
401dab:	8b 4d 18             	mov    0x18(%ebp),%ecx
401dae:	03 c3                	add    %ebx,%eax
401db0:	89 02                	mov    %eax,(%edx)
401db2:	c7 01 01 00 00 00    	movl   $0x1,(%ecx)
401db8:	c6 00 00             	movb   $0x0,(%eax)
401dbb:	eb df                	jmp    0x401d9c
401dbd:	8b 4d 18             	mov    0x18(%ebp),%ecx
401dc0:	8b 55 14             	mov    0x14(%ebp),%edx
401dc3:	85 ff                	test   %edi,%edi
401dc5:	74 0e                	je     0x401dd5
401dc7:	a9 00 08 00 00       	test   $0x800,%eax
401dcc:	74 07                	je     0x401dd5
401dce:	89 1a                	mov    %ebx,(%edx)
401dd0:	89 39                	mov    %edi,(%ecx)
401dd2:	c6 03 00             	movb   $0x0,(%ebx)
401dd5:	5f                   	pop    %edi
401dd6:	33 c0                	xor    %eax,%eax
401dd8:	5b                   	pop    %ebx
401dd9:	5d                   	pop    %ebp
401dda:	c2 18 00             	ret    $0x18
401ddd:	55                   	push   %ebp
401dde:	8b ec                	mov    %esp,%ebp
401de0:	8b 55 0c             	mov    0xc(%ebp),%edx
401de3:	33 c9                	xor    %ecx,%ecx
401de5:	85 d2                	test   %edx,%edx
401de7:	74 0e                	je     0x401df7
401de9:	8b 02                	mov    (%edx),%eax
401deb:	3b 45 10             	cmp    0x10(%ebp),%eax
401dee:	72 07                	jb     0x401df7
401df0:	b9 57 00 07 80       	mov    $0x80070057,%ecx
401df5:	eb 1c                	jmp    0x401e13
401df7:	f7 45 14 00 01 00 00 	testl  $0x100,0x14(%ebp)
401dfe:	74 13                	je     0x401e13
401e00:	8b 45 08             	mov    0x8(%ebp),%eax
401e03:	39 08                	cmp    %ecx,(%eax)
401e05:	75 0c                	jne    0x401e13
401e07:	c7 00 8c b5 44 00    	movl   $0x44b58c,(%eax)
401e0d:	85 d2                	test   %edx,%edx
401e0f:	74 02                	je     0x401e13
401e11:	89 0a                	mov    %ecx,(%edx)
401e13:	8b c1                	mov    %ecx,%eax
401e15:	5d                   	pop    %ebp
401e16:	c2 10 00             	ret    $0x10
401e19:	55                   	push   %ebp
401e1a:	8b ec                	mov    %esp,%ebp
401e1c:	8b 55 0c             	mov    0xc(%ebp),%edx
401e1f:	33 c9                	xor    %ecx,%ecx
401e21:	85 d2                	test   %edx,%edx
401e23:	74 0e                	je     0x401e33
401e25:	8b 02                	mov    (%edx),%eax
401e27:	3b 45 10             	cmp    0x10(%ebp),%eax
401e2a:	72 07                	jb     0x401e33
401e2c:	b9 57 00 07 80       	mov    $0x80070057,%ecx
401e31:	eb 1c                	jmp    0x401e4f
401e33:	f7 45 14 00 01 00 00 	testl  $0x100,0x14(%ebp)
401e3a:	74 13                	je     0x401e4f
401e3c:	8b 45 08             	mov    0x8(%ebp),%eax
401e3f:	39 08                	cmp    %ecx,(%eax)
401e41:	75 0c                	jne    0x401e4f
401e43:	c7 00 24 b5 44 00    	movl   $0x44b524,(%eax)
401e49:	85 d2                	test   %edx,%edx
401e4b:	74 02                	je     0x401e4f
401e4d:	89 0a                	mov    %ecx,(%edx)
401e4f:	8b c1                	mov    %ecx,%eax
401e51:	5d                   	pop    %ebp
401e52:	c2 10 00             	ret    $0x10
401e55:	55                   	push   %ebp
401e56:	8b ec                	mov    %esp,%ebp
401e58:	8b 45 0c             	mov    0xc(%ebp),%eax
401e5b:	8b d0                	mov    %eax,%edx
401e5d:	85 c0                	test   %eax,%eax
401e5f:	74 0e                	je     0x401e6f
401e61:	8b 4d 08             	mov    0x8(%ebp),%ecx
401e64:	80 39 00             	cmpb   $0x0,(%ecx)
401e67:	74 06                	je     0x401e6f
401e69:	41                   	inc    %ecx
401e6a:	83 e8 01             	sub    $0x1,%eax
401e6d:	75 f5                	jne    0x401e64
401e6f:	33 c9                	xor    %ecx,%ecx
401e71:	85 c0                	test   %eax,%eax
401e73:	56                   	push   %esi
401e74:	be 57 00 07 80       	mov    $0x80070057,%esi
401e79:	0f 45 f1             	cmovne %ecx,%esi
401e7c:	8b 4d 10             	mov    0x10(%ebp),%ecx
401e7f:	85 c9                	test   %ecx,%ecx
401e81:	74 0d                	je     0x401e90
401e83:	85 c0                	test   %eax,%eax
401e85:	74 06                	je     0x401e8d
401e87:	2b d0                	sub    %eax,%edx
401e89:	89 11                	mov    %edx,(%ecx)
401e8b:	eb 03                	jmp    0x401e90
401e8d:	83 21 00             	andl   $0x0,(%ecx)
401e90:	8b c6                	mov    %esi,%eax
401e92:	5e                   	pop    %esi
401e93:	5d                   	pop    %ebp
401e94:	c2 0c 00             	ret    $0xc
401e97:	55                   	push   %ebp
401e98:	8b ec                	mov    %esp,%ebp
401e9a:	8b 45 0c             	mov    0xc(%ebp),%eax
401e9d:	8b d0                	mov    %eax,%edx
401e9f:	56                   	push   %esi
401ea0:	57                   	push   %edi
401ea1:	33 ff                	xor    %edi,%edi
401ea3:	85 c0                	test   %eax,%eax
401ea5:	74 10                	je     0x401eb7
401ea7:	8b 4d 08             	mov    0x8(%ebp),%ecx
401eaa:	66 39 39             	cmp    %di,(%ecx)
401ead:	74 08                	je     0x401eb7
401eaf:	83 c1 02             	add    $0x2,%ecx
401eb2:	83 e8 01             	sub    $0x1,%eax
401eb5:	75 f3                	jne    0x401eaa
401eb7:	33 c9                	xor    %ecx,%ecx
401eb9:	be 57 00 07 80       	mov    $0x80070057,%esi
401ebe:	85 c0                	test   %eax,%eax
401ec0:	0f 45 f1             	cmovne %ecx,%esi
401ec3:	8b 4d 10             	mov    0x10(%ebp),%ecx
401ec6:	85 c9                	test   %ecx,%ecx
401ec8:	74 0c                	je     0x401ed6
401eca:	85 c0                	test   %eax,%eax
401ecc:	74 06                	je     0x401ed4
401ece:	2b d0                	sub    %eax,%edx
401ed0:	89 11                	mov    %edx,(%ecx)
401ed2:	eb 02                	jmp    0x401ed6
401ed4:	89 39                	mov    %edi,(%ecx)
401ed6:	5f                   	pop    %edi
401ed7:	8b c6                	mov    %esi,%eax
401ed9:	5e                   	pop    %esi
401eda:	5d                   	pop    %ebp
401edb:	c2 0c 00             	ret    $0xc
401ede:	55                   	push   %ebp
401edf:	8b ec                	mov    %esp,%ebp
401ee1:	6a 00                	push   $0x0
401ee3:	ff 75 0c             	push   0xc(%ebp)
401ee6:	ff 75 08             	push   0x8(%ebp)
401ee9:	e8 4e f5 ff ff       	call   0x40143c
401eee:	5d                   	pop    %ebp
401eef:	c2 08 00             	ret    $0x8
401ef2:	55                   	push   %ebp
401ef3:	8b ec                	mov    %esp,%ebp
401ef5:	6a 00                	push   $0x0
401ef7:	ff 75 10             	push   0x10(%ebp)
401efa:	ff 75 0c             	push   0xc(%ebp)
401efd:	ff 75 08             	push   0x8(%ebp)
401f00:	e8 a1 f3 ff ff       	call   0x4012a6
401f05:	5d                   	pop    %ebp
401f06:	c2 0c 00             	ret    $0xc
401f09:	55                   	push   %ebp
401f0a:	8b ec                	mov    %esp,%ebp
401f0c:	6a 01                	push   $0x1
401f0e:	ff 75 10             	push   0x10(%ebp)
401f11:	ff 75 0c             	push   0xc(%ebp)
401f14:	ff 75 08             	push   0x8(%ebp)
401f17:	e8 8a f3 ff ff       	call   0x4012a6
401f1c:	5d                   	pop    %ebp
401f1d:	c2 0c 00             	ret    $0xc
401f20:	55                   	push   %ebp
401f21:	8b ec                	mov    %esp,%ebp
401f23:	8d 45 10             	lea    0x10(%ebp),%eax
401f26:	50                   	push   %eax
401f27:	ff 75 0c             	push   0xc(%ebp)
401f2a:	ff 75 08             	push   0x8(%ebp)
401f2d:	e8 02 00 00 00       	call   0x401f34
401f32:	5d                   	pop    %ebp
401f33:	c3                   	ret
401f34:	55                   	push   %ebp
401f35:	8b ec                	mov    %esp,%ebp
401f37:	ff 75 10             	push   0x10(%ebp)
401f3a:	ff 75 0c             	push   0xc(%ebp)
401f3d:	6a 00                	push   $0x0
401f3f:	ff 75 08             	push   0x8(%ebp)
401f42:	e8 19 f4 ff ff       	call   0x401360
401f47:	5d                   	pop    %ebp
401f48:	c2 0c 00             	ret    $0xc
401f4b:	55                   	push   %ebp
401f4c:	8b ec                	mov    %esp,%ebp
401f4e:	ff 75 10             	push   0x10(%ebp)
401f51:	ff 75 0c             	push   0xc(%ebp)
401f54:	6a 01                	push   $0x1
401f56:	ff 75 08             	push   0x8(%ebp)
401f59:	e8 02 f4 ff ff       	call   0x401360
401f5e:	5d                   	pop    %ebp
401f5f:	c2 0c 00             	ret    $0xc
401f62:	55                   	push   %ebp
401f63:	8b ec                	mov    %esp,%ebp
401f65:	8d 45 10             	lea    0x10(%ebp),%eax
401f68:	50                   	push   %eax
401f69:	ff 75 0c             	push   0xc(%ebp)
401f6c:	ff 75 08             	push   0x8(%ebp)
401f6f:	e8 d7 ff ff ff       	call   0x401f4b
401f74:	5d                   	pop    %ebp
401f75:	c3                   	ret
401f76:	cc                   	int3
401f77:	cc                   	int3
401f78:	55                   	push   %ebp
401f79:	8b ec                	mov    %esp,%ebp
401f7b:	51                   	push   %ecx
401f7c:	51                   	push   %ecx
401f7d:	56                   	push   %esi
401f7e:	33 f6                	xor    %esi,%esi
401f80:	b9 ff 19 00 00       	mov    $0x19ff,%ecx
401f85:	39 75 10             	cmp    %esi,0x10(%ebp)
401f88:	b8 ff 11 00 00       	mov    $0x11ff,%eax
401f8d:	89 75 fc             	mov    %esi,-0x4(%ebp)
401f90:	0f 45 c1             	cmovne %ecx,%eax
401f93:	8d 4d 14             	lea    0x14(%ebp),%ecx
401f96:	89 4d f8             	mov    %ecx,-0x8(%ebp)
401f99:	8d 4d f8             	lea    -0x8(%ebp),%ecx
401f9c:	51                   	push   %ecx
401f9d:	56                   	push   %esi
401f9e:	8d 4d fc             	lea    -0x4(%ebp),%ecx
401fa1:	51                   	push   %ecx
401fa2:	56                   	push   %esi
401fa3:	ff 75 0c             	push   0xc(%ebp)
401fa6:	ff 75 10             	push   0x10(%ebp)
401fa9:	50                   	push   %eax
401faa:	ff 15 f0 b0 44 00    	call   *0x44b0f0