405c0a:	8b 4f 04             	mov    0x4(%edi),%ecx
405c0d:	c6 04 01 00          	movb   $0x0,(%ecx,%eax,1)
405c11:	8b c7                	mov    %edi,%eax
405c13:	5f                   	pop    %edi
405c14:	5d                   	pop    %ebp
405c15:	c2 04 00             	ret    $0x4
405c18:	56                   	push   %esi
405c19:	8b f1                	mov    %ecx,%esi
405c1b:	6a 10                	push   $0x10
405c1d:	58                   	pop    %eax
405c1e:	50                   	push   %eax
405c1f:	83 66 04 00          	andl   $0x0,0x4(%esi)
405c23:	89 46 08             	mov    %eax,0x8(%esi)
405c26:	e8 cb b3 01 00       	call   0x420ff6
405c2b:	89 06                	mov    %eax,(%esi)
405c2d:	6a 04                	push   $0x4
405c2f:	c6 00 00             	movb   $0x0,(%eax)
405c32:	e8 bf b3 01 00       	call   0x420ff6
405c37:	59                   	pop    %ecx
405c38:	59                   	pop    %ecx
405c39:	85 c0                	test   %eax,%eax
405c3b:	74 0d                	je     0x405c4a
405c3d:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
405c43:	89 46 0c             	mov    %eax,0xc(%esi)
405c46:	8b c6                	mov    %esi,%eax
405c48:	5e                   	pop    %esi
405c49:	c3                   	ret
405c4a:	33 c0                	xor    %eax,%eax
405c4c:	eb f5                	jmp    0x405c43
405c4e:	55                   	push   %ebp
405c4f:	8b ec                	mov    %esp,%ebp
405c51:	8b 55 0c             	mov    0xc(%ebp),%edx
405c54:	83 ec 0c             	sub    $0xc,%esp
405c57:	53                   	push   %ebx
405c58:	8b 5d 10             	mov    0x10(%ebp),%ebx
405c5b:	56                   	push   %esi
405c5c:	8b 75 08             	mov    0x8(%ebp),%esi
405c5f:	57                   	push   %edi
405c60:	8b f9                	mov    %ecx,%edi
405c62:	83 7f 08 00          	cmpl   $0x0,0x8(%edi)
405c66:	74 76                	je     0x405cde
405c68:	83 fb 01             	cmp    $0x1,%ebx
405c6b:	74 04                	je     0x405c71
405c6d:	85 db                	test   %ebx,%ebx
405c6f:	75 6d                	jne    0x405cde
405c71:	89 55 f8             	mov    %edx,-0x8(%ebp)
405c74:	8b ca                	mov    %edx,%ecx
405c76:	83 fb 01             	cmp    $0x1,%ebx
405c79:	0f 84 d2 84 03 00    	je     0x43e151
405c7f:	8b 47 0c             	mov    0xc(%edi),%eax
405c82:	8b 5f 10             	mov    0x10(%edi),%ebx
405c85:	99                   	cltd
405c86:	2b d8                	sub    %eax,%ebx
405c88:	8b 47 14             	mov    0x14(%edi),%eax
405c8b:	89 5d fc             	mov    %ebx,-0x4(%ebp)
405c8e:	8b 5d 10             	mov    0x10(%ebp),%ebx
405c91:	1b c2                	sbb    %edx,%eax
405c93:	89 45 f4             	mov    %eax,-0xc(%ebp)
405c96:	3b c8                	cmp    %eax,%ecx
405c98:	7c 78                	jl     0x405d12
405c9a:	7f 05                	jg     0x405ca1
405c9c:	3b 75 fc             	cmp    -0x4(%ebp),%esi
405c9f:	72 71                	jb     0x405d12
405ca1:	8b 47 08             	mov    0x8(%edi),%eax
405ca4:	99                   	cltd
405ca5:	89 45 10             	mov    %eax,0x10(%ebp)
405ca8:	8b 45 fc             	mov    -0x4(%ebp),%eax
405cab:	01 45 10             	add    %eax,0x10(%ebp)
405cae:	13 55 f4             	adc    -0xc(%ebp),%edx
405cb1:	83 6d 10 01          	subl   $0x1,0x10(%ebp)
405cb5:	83 da 00             	sbb    $0x0,%edx
405cb8:	3b ca                	cmp    %edx,%ecx
405cba:	7f 56                	jg     0x405d12
405cbc:	7c 05                	jl     0x405cc3
405cbe:	3b 75 10             	cmp    0x10(%ebp),%esi
405cc1:	77 4f                	ja     0x405d12
405cc3:	8b ce                	mov    %esi,%ecx
405cc5:	89 77 10             	mov    %esi,0x10(%edi)
405cc8:	2b c8                	sub    %eax,%ecx
405cca:	b0 01                	mov    $0x1,%al
405ccc:	89 4f 0c             	mov    %ecx,0xc(%edi)
405ccf:	8b 4d f8             	mov    -0x8(%ebp),%ecx
405cd2:	89 4f 14             	mov    %ecx,0x14(%edi)
405cd5:	5f                   	pop    %edi
405cd6:	5e                   	pop    %esi
405cd7:	5b                   	pop    %ebx
405cd8:	8b e5                	mov    %ebp,%esp
405cda:	5d                   	pop    %ebp
405cdb:	c2 0c 00             	ret    $0xc
405cde:	83 67 08 00          	andl   $0x0,0x8(%edi)
405ce2:	83 67 0c 00          	andl   $0x0,0xc(%edi)
405ce6:	83 fb 01             	cmp    $0x1,%ebx
405ce9:	0f 84 75 84 03 00    	je     0x43e164
405cef:	53                   	push   %ebx
405cf0:	6a 00                	push   $0x0
405cf2:	52                   	push   %edx
405cf3:	56                   	push   %esi
405cf4:	ff 37                	push   (%edi)
405cf6:	ff 15 d8 f1 48 00    	call   *0x48f1d8
405cfc:	8b cf                	mov    %edi,%ecx
405cfe:	8b f0                	mov    %eax,%esi
405d00:	e8 a9 00 00 00       	call   0x405dae
405d05:	85 f6                	test   %esi,%esi
405d07:	89 47 10             	mov    %eax,0x10(%edi)
405d0a:	89 57 14             	mov    %edx,0x14(%edi)
405d0d:	0f 95 c0             	setne  %al
405d10:	eb c3                	jmp    0x405cd5
405d12:	8b 75 08             	mov    0x8(%ebp),%esi
405d15:	8b 55 0c             	mov    0xc(%ebp),%edx
405d18:	eb c4                	jmp    0x405cde
405d1a:	cc                   	int3
405d1b:	cc                   	int3
405d1c:	cc                   	int3
405d1d:	cc                   	int3
405d1e:	cc                   	int3
405d1f:	cc                   	int3
405d20:	55                   	push   %ebp
405d21:	8b ec                	mov    %esp,%ebp
405d23:	53                   	push   %ebx
405d24:	56                   	push   %esi
405d25:	8b f1                	mov    %ecx,%esi
405d27:	57                   	push   %edi
405d28:	83 7e 08 00          	cmpl   $0x0,0x8(%esi)
405d2c:	74 65                	je     0x405d93
405d2e:	8b 5d 0c             	mov    0xc(%ebp),%ebx
405d31:	33 ff                	xor    %edi,%edi
405d33:	85 db                	test   %ebx,%ebx
405d35:	74 1f                	je     0x405d56
405d37:	8b 46 0c             	mov    0xc(%esi),%eax
405d3a:	3b 46 08             	cmp    0x8(%esi),%eax
405d3d:	74 27                	je     0x405d66
405d3f:	8b 4e 04             	mov    0x4(%esi),%ecx
405d42:	8b 46 0c             	mov    0xc(%esi),%eax
405d45:	8a 04 01             	mov    (%ecx,%eax,1),%al
405d48:	8b 4d 08             	mov    0x8(%ebp),%ecx
405d4b:	88 04 0f             	mov    %al,(%edi,%ecx,1)
405d4e:	47                   	inc    %edi
405d4f:	ff 46 0c             	incl   0xc(%esi)
405d52:	3b fb                	cmp    %ebx,%edi
405d54:	72 e1                	jb     0x405d37
405d56:	01 7e 10             	add    %edi,0x10(%esi)
405d59:	8b c7                	mov    %edi,%eax
405d5b:	5f                   	pop    %edi
405d5c:	83 56 14 00          	adcl   $0x0,0x14(%esi)
405d60:	5e                   	pop    %esi
405d61:	5b                   	pop    %ebx
405d62:	5d                   	pop    %ebp
405d63:	c2 08 00             	ret    $0x8
405d66:	6a 00                	push   $0x0
405d68:	8d 45 0c             	lea    0xc(%ebp),%eax
405d6b:	50                   	push   %eax
405d6c:	68 00 00 01 00       	push   $0x10000
405d71:	ff 76 04             	push   0x4(%esi)
405d74:	ff 36                	push   (%esi)
405d76:	ff 15 e0 f1 48 00    	call   *0x48f1e0
405d7c:	85 c0                	test   %eax,%eax
405d7e:	74 d6                	je     0x405d56
405d80:	8b 45 0c             	mov    0xc(%ebp),%eax
405d83:	85 c0                	test   %eax,%eax
405d85:	74 cf                	je     0x405d56
405d87:	89 46 08             	mov    %eax,0x8(%esi)
405d8a:	c7 46 0c 00 00 00 00 	movl   $0x0,0xc(%esi)
405d91:	eb ac                	jmp    0x405d3f
405d93:	c7 46 08 00 00 00 00 	movl   $0x0,0x8(%esi)
405d9a:	c7 46 0c 00 00 00 00 	movl   $0x0,0xc(%esi)
405da1:	e8 08 00 00 00       	call   0x405dae
405da6:	89 46 10             	mov    %eax,0x10(%esi)
405da9:	89 56 14             	mov    %edx,0x14(%esi)
405dac:	eb 80                	jmp    0x405d2e
405dae:	55                   	push   %ebp
405daf:	8b ec                	mov    %esp,%ebp
405db1:	51                   	push   %ecx
405db2:	51                   	push   %ecx
405db3:	6a 01                	push   $0x1
405db5:	8d 45 f8             	lea    -0x8(%ebp),%eax
405db8:	50                   	push   %eax
405db9:	6a 00                	push   $0x0
405dbb:	6a 00                	push   $0x0
405dbd:	ff 31                	push   (%ecx)
405dbf:	ff 15 d8 f1 48 00    	call   *0x48f1d8
405dc5:	8b 45 f8             	mov    -0x8(%ebp),%eax
405dc8:	8b 55 fc             	mov    -0x4(%ebp),%edx
405dcb:	8b e5                	mov    %ebp,%esp
405dcd:	5d                   	pop    %ebp
405dce:	c3                   	ret
405dcf:	56                   	push   %esi
405dd0:	8b f1                	mov    %ecx,%esi
405dd2:	57                   	push   %edi
405dd3:	33 ff                	xor    %edi,%edi
405dd5:	39 3e                	cmp    %edi,(%esi)
405dd7:	75 0f                	jne    0x405de8
405dd9:	89 7e 08             	mov    %edi,0x8(%esi)
405ddc:	89 7e 0c             	mov    %edi,0xc(%esi)
405ddf:	89 7e 10             	mov    %edi,0x10(%esi)
405de2:	89 7e 14             	mov    %edi,0x14(%esi)
405de5:	5f                   	pop    %edi
405de6:	5e                   	pop    %esi
405de7:	c3                   	ret
405de8:	83 3e ff             	cmpl   $0xffffffff,(%esi)
405deb:	74 ec                	je     0x405dd9
405ded:	ff 36                	push   (%esi)
405def:	ff 15 5c f3 48 00    	call   *0x48f35c
405df5:	89 3e                	mov    %edi,(%esi)
405df7:	eb e0                	jmp    0x405dd9
405df9:	55                   	push   %ebp
405dfa:	8b ec                	mov    %esp,%ebp
405dfc:	53                   	push   %ebx
405dfd:	56                   	push   %esi
405dfe:	8b f1                	mov    %ecx,%esi
405e00:	33 db                	xor    %ebx,%ebx
405e02:	83 0e ff             	orl    $0xffffffff,(%esi)
405e05:	f7 45 0c 00 80 00 00 	testl  $0x8000,0xc(%ebp)
405e0c:	0f 84 6f 83 03 00    	je     0x43e181
405e12:	53                   	push   %ebx
405e13:	68 80 00 00 00       	push   $0x80
405e18:	6a 03                	push   $0x3
405e1a:	53                   	push   %ebx
405e1b:	6a 07                	push   $0x7
405e1d:	68 00 00 00 80       	push   $0x80000000
405e22:	8b 45 08             	mov    0x8(%ebp),%eax
405e25:	ff 30                	push   (%eax)
405e27:	ff 15 d4 f1 48 00    	call   *0x48f1d4
405e2d:	89 06                	mov    %eax,(%esi)
405e2f:	83 3e ff             	cmpl   $0xffffffff,(%esi)
405e32:	74 03                	je     0x405e37
405e34:	33 db                	xor    %ebx,%ebx
405e36:	43                   	inc    %ebx
405e37:	5e                   	pop    %esi
405e38:	8a c3                	mov    %bl,%al
405e3a:	5b                   	pop    %ebx
405e3b:	5d                   	pop    %ebp
405e3c:	c2 08 00             	ret    $0x8
405e3f:	55                   	push   %ebp
405e40:	8b ec                	mov    %esp,%ebp
405e42:	51                   	push   %ecx
405e43:	51                   	push   %ecx
405e44:	53                   	push   %ebx
405e45:	56                   	push   %esi
405e46:	57                   	push   %edi
405e47:	8b f1                	mov    %ecx,%esi
405e49:	6a 02                	push   $0x2
405e4b:	6a 00                	push   $0x0
405e4d:	6a 00                	push   $0x0
405e4f:	8b 46 10             	mov    0x10(%esi),%eax
405e52:	8b 5e 14             	mov    0x14(%esi),%ebx
405e55:	89 75 f8             	mov    %esi,-0x8(%ebp)
405e58:	89 45 fc             	mov    %eax,-0x4(%ebp)
405e5b:	e8 ee fd ff ff       	call   0x405c4e
405e60:	8b 7e 10             	mov    0x10(%esi),%edi
405e63:	8b 4d f8             	mov    -0x8(%ebp),%ecx
405e66:	8b 76 14             	mov    0x14(%esi),%esi
405e69:	6a 00                	push   $0x0
405e6b:	53                   	push   %ebx
405e6c:	ff 75 fc             	push   -0x4(%ebp)
405e6f:	e8 da fd ff ff       	call   0x405c4e
405e74:	8b c7                	mov    %edi,%eax
405e76:	8b d6                	mov    %esi,%edx
405e78:	5f                   	pop    %edi
405e79:	5e                   	pop    %esi
405e7a:	5b                   	pop    %ebx
405e7b:	8b e5                	mov    %ebp,%esp
405e7d:	5d                   	pop    %ebp
405e7e:	c3                   	ret
405e7f:	0f b7 41 08          	movzwl 0x8(%ecx),%eax
405e83:	66 83 f8 40          	cmp    $0x40,%ax
405e87:	7c 0a                	jl     0x405e93
405e89:	66 83 f8 5f          	cmp    $0x5f,%ax
405e8d:	7f 04                	jg     0x405e93
405e8f:	33 c0                	xor    %eax,%eax
405e91:	40                   	inc    %eax
405e92:	c3                   	ret
405e93:	66 85 c0             	test   %ax,%ax
405e96:	74 f7                	je     0x405e8f
405e98:	66 83 f8 30          	cmp    $0x30,%ax
405e9c:	74 f1                	je     0x405e8f
405e9e:	33 c0                	xor    %eax,%eax
405ea0:	c3                   	ret
405ea1:	55                   	push   %ebp
405ea2:	8b ec                	mov    %esp,%ebp
405ea4:	56                   	push   %esi
405ea5:	8b f1                	mov    %ecx,%esi
405ea7:	0f b7 46 08          	movzwl 0x8(%esi),%eax
405eab:	66 83 f8 30          	cmp    $0x30,%ax
405eaf:	7c 0c                	jl     0x405ebd
405eb1:	66 83 f8 3f          	cmp    $0x3f,%ax
405eb5:	7f 06                	jg     0x405ebd
405eb7:	8b 0e                	mov    (%esi),%ecx
405eb9:	85 c9                	test   %ecx,%ecx
405ebb:	75 32                	jne    0x405eef
405ebd:	6a 10                	push   $0x10
405ebf:	e8 32 b1 01 00       	call   0x420ff6
405ec4:	8b d0                	mov    %eax,%edx
405ec6:	59                   	pop    %ecx
405ec7:	85 d2                	test   %edx,%edx
405ec9:	74 2c                	je     0x405ef7
405ecb:	8b 45 08             	mov    0x8(%ebp),%eax
405ece:	8b 08                	mov    (%eax),%ecx
405ed0:	89 0a                	mov    %ecx,(%edx)
405ed2:	8b 48 04             	mov    0x4(%eax),%ecx
405ed5:	89 4a 04             	mov    %ecx,0x4(%edx)
405ed8:	8b 48 08             	mov    0x8(%eax),%ecx
405edb:	89 4a 08             	mov    %ecx,0x8(%edx)
405ede:	8b 40 0c             	mov    0xc(%eax),%eax
405ee1:	89 42 0c             	mov    %eax,0xc(%edx)
405ee4:	ff 00                	incl   (%eax)
405ee6:	89 16                	mov    %edx,(%esi)
405ee8:	8b c6                	mov    %esi,%eax
405eea:	5e                   	pop    %esi
405eeb:	5d                   	pop    %ebp
405eec:	c2 04 00             	ret    $0x4
405eef:	51                   	push   %ecx
405ef0:	e8 48 1c 00 00       	call   0x407b3d
405ef5:	eb c6                	jmp    0x405ebd
405ef7:	33 d2                	xor    %edx,%edx
405ef9:	eb eb                	jmp    0x405ee6
405efb:	e8 8a 00 00 00       	call   0x405f8a
405f00:	84 c0                	test   %al,%al
405f02:	75 01                	jne    0x405f05
405f04:	c3                   	ret
405f05:	8b 09                	mov    (%ecx),%ecx
405f07:	85 c9                	test   %ecx,%ecx
405f09:	74 f9                	je     0x405f04
405f0b:	51                   	push   %ecx
405f0c:	e8 2c 1c 00 00       	call   0x407b3d
405f11:	c3                   	ret
405f12:	55                   	push   %ebp
405f13:	8b ec                	mov    %esp,%ebp
405f15:	53                   	push   %ebx
405f16:	56                   	push   %esi
405f17:	8b f1                	mov    %ecx,%esi
405f19:	33 db                	xor    %ebx,%ebx
405f1b:	6a 3f                	push   $0x3f
405f1d:	59                   	pop    %ecx
405f1e:	6a 30                	push   $0x30
405f20:	0f b7 46 08          	movzwl 0x8(%esi),%eax
405f24:	5a                   	pop    %edx
405f25:	66 3b c1             	cmp    %cx,%ax
405f28:	7f 05                	jg     0x405f2f
405f2a:	66 3b c2             	cmp    %dx,%ax
405f2d:	7d 27                	jge    0x405f56
405f2f:	8b 45 08             	mov    0x8(%ebp),%eax
405f32:	66 89 46 08          	mov    %ax,0x8(%esi)
405f36:	66 3b c1             	cmp    %cx,%ax
405f39:	7e 14                	jle    0x405f4f
405f3b:	66 83 f8 10          	cmp    $0x10,%ax
405f3f:	74 44                	je     0x405f85
405f41:	66 83 f8 20          	cmp    $0x20,%ax
405f45:	74 38                	je     0x405f7f
405f47:	89 1e                	mov    %ebx,(%esi)
405f49:	5e                   	pop    %esi