443dc4:	8b f0                	mov    %eax,%esi
443dc6:	8b ce                	mov    %esi,%ecx
443dc8:	b2 01                	mov    $0x1,%dl
443dca:	a1 e8 77 43 00       	mov    0x4377e8,%eax
443dcf:	e8 38 f4 ff ff       	call   0x44320c
443dd4:	8b d8                	mov    %eax,%ebx
443dd6:	8a 45 0c             	mov    0xc(%ebp),%al
443dd9:	88 43 10             	mov    %al,0x10(%ebx)
443ddc:	85 ff                	test   %edi,%edi
443dde:	0f 85 dd 00 00 00    	jne    0x443ec1
443de4:	8b 56 68             	mov    0x68(%esi),%edx
443de7:	8b c3                	mov    %ebx,%eax
443de9:	e8 92 f9 ff ff       	call   0x443780
443dee:	8b 46 64             	mov    0x64(%esi),%eax
443df1:	e8 62 f9 ff ff       	call   0x443758
443df6:	89 46 68             	mov    %eax,0x68(%esi)
443df9:	8a 45 0c             	mov    0xc(%ebp),%al
443dfc:	88 46 48             	mov    %al,0x48(%esi)
443dff:	33 c0                	xor    %eax,%eax
443e01:	89 46 40             	mov    %eax,0x40(%esi)
443e04:	c7 46 44 00 00 e0 3f 	movl   $0x3fe00000,0x44(%esi)
443e0b:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
443e0f:	74 33                	je     0x443e44
443e11:	8b 46 64             	mov    0x64(%esi),%eax
443e14:	89 43 08             	mov    %eax,0x8(%ebx)
443e17:	8b 46 64             	mov    0x64(%esi),%eax
443e1a:	89 58 14             	mov    %ebx,0x14(%eax)
443e1d:	8b 55 fc             	mov    -0x4(%ebp),%edx
443e20:	89 50 0c             	mov    %edx,0xc(%eax)
443e23:	8b 55 fc             	mov    -0x4(%ebp),%edx
443e26:	89 42 18             	mov    %eax,0x18(%edx)
443e29:	8b 45 fc             	mov    -0x4(%ebp),%eax
443e2c:	89 58 14             	mov    %ebx,0x14(%eax)
443e2f:	89 5e 64             	mov    %ebx,0x64(%esi)
443e32:	56                   	push   %esi
443e33:	68 28 4e 44 00       	push   $0x444e28
443e38:	8b 53 08             	mov    0x8(%ebx),%edx
443e3b:	8b c6                	mov    %esi,%eax
443e3d:	e8 ca fc ff ff       	call   0x443b0c
443e42:	eb 6c                	jmp    0x443eb0
443e44:	8b 45 fc             	mov    -0x4(%ebp),%eax
443e47:	89 43 08             	mov    %eax,0x8(%ebx)
443e4a:	8b 46 64             	mov    0x64(%esi),%eax
443e4d:	89 58 14             	mov    %ebx,0x14(%eax)
443e50:	8b 55 fc             	mov    -0x4(%ebp),%edx
443e53:	89 50 18             	mov    %edx,0x18(%eax)
443e56:	8b 55 fc             	mov    -0x4(%ebp),%edx
443e59:	89 42 0c             	mov    %eax,0xc(%edx)
443e5c:	8b 45 fc             	mov    -0x4(%ebp),%eax
443e5f:	89 58 14             	mov    %ebx,0x14(%eax)
443e62:	89 5e 64             	mov    %ebx,0x64(%esi)
443e65:	56                   	push   %esi
443e66:	68 28 4e 44 00       	push   $0x444e28
443e6b:	8b 53 08             	mov    0x8(%ebx),%edx
443e6e:	8b c6                	mov    %esi,%eax
443e70:	e8 97 fc ff ff       	call   0x443b0c
443e75:	8b 46 64             	mov    0x64(%esi),%eax
443e78:	e8 db f8 ff ff       	call   0x443758
443e7d:	d1 f8                	sar    $1,%eax
443e7f:	79 03                	jns    0x443e84
443e81:	83 d0 00             	adc    $0x0,%eax
443e84:	89 46 4c             	mov    %eax,0x4c(%esi)
443e87:	56                   	push   %esi
443e88:	68 ac 51 44 00       	push   $0x4451ac
443e8d:	8b 53 08             	mov    0x8(%ebx),%edx
443e90:	8b c6                	mov    %esi,%eax
443e92:	e8 75 fc ff ff       	call   0x443b0c
443e97:	8b 46 64             	mov    0x64(%esi),%eax
443e9a:	e8 b9 f8 ff ff       	call   0x443758
443e9f:	8b d0                	mov    %eax,%edx
443ea1:	d1 fa                	sar    $1,%edx
443ea3:	79 03                	jns    0x443ea8
443ea5:	83 d2 00             	adc    $0x0,%edx
443ea8:	8b 45 fc             	mov    -0x4(%ebp),%eax
443eab:	e8 d0 f8 ff ff       	call   0x443780
443eb0:	56                   	push   %esi
443eb1:	68 e0 52 44 00       	push   $0x4452e0
443eb6:	33 d2                	xor    %edx,%edx
443eb8:	8b c6                	mov    %esi,%eax
443eba:	e8 4d fc ff ff       	call   0x443b0c
443ebf:	eb 77                	jmp    0x443f38
443ec1:	8b c7                	mov    %edi,%eax
443ec3:	e8 90 f8 ff ff       	call   0x443758
443ec8:	8b d0                	mov    %eax,%edx
443eca:	8b c3                	mov    %ebx,%eax
443ecc:	e8 af f8 ff ff       	call   0x443780
443ed1:	8b 47 14             	mov    0x14(%edi),%eax
443ed4:	89 43 14             	mov    %eax,0x14(%ebx)
443ed7:	8b 47 18             	mov    0x18(%edi),%eax
443eda:	89 43 18             	mov    %eax,0x18(%ebx)
443edd:	85 c0                	test   %eax,%eax
443edf:	74 03                	je     0x443ee4
443ee1:	89 58 0c             	mov    %ebx,0xc(%eax)
443ee4:	8b 47 0c             	mov    0xc(%edi),%eax
443ee7:	89 43 0c             	mov    %eax,0xc(%ebx)
443eea:	85 c0                	test   %eax,%eax
443eec:	74 03                	je     0x443ef1
443eee:	89 58 18             	mov    %ebx,0x18(%eax)
443ef1:	8b 43 14             	mov    0x14(%ebx),%eax
443ef4:	3b 78 08             	cmp    0x8(%eax),%edi
443ef7:	75 03                	jne    0x443efc
443ef9:	89 58 08             	mov    %ebx,0x8(%eax)
443efc:	8b 45 fc             	mov    -0x4(%ebp),%eax
443eff:	89 58 14             	mov    %ebx,0x14(%eax)
443f02:	89 5f 14             	mov    %ebx,0x14(%edi)
443f05:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
443f09:	74 16                	je     0x443f21
443f0b:	89 7b 08             	mov    %edi,0x8(%ebx)
443f0e:	33 c0                	xor    %eax,%eax
443f10:	89 47 18             	mov    %eax,0x18(%edi)
443f13:	8b 45 fc             	mov    -0x4(%ebp),%eax
443f16:	89 47 0c             	mov    %eax,0xc(%edi)
443f19:	8b 45 fc             	mov    -0x4(%ebp),%eax
443f1c:	89 78 18             	mov    %edi,0x18(%eax)
443f1f:	eb 17                	jmp    0x443f38
443f21:	8b 45 fc             	mov    -0x4(%ebp),%eax
443f24:	89 43 08             	mov    %eax,0x8(%ebx)
443f27:	8b 45 fc             	mov    -0x4(%ebp),%eax
443f2a:	89 47 18             	mov    %eax,0x18(%edi)
443f2d:	33 c0                	xor    %eax,%eax
443f2f:	89 47 0c             	mov    %eax,0xc(%edi)
443f32:	8b 45 fc             	mov    -0x4(%ebp),%eax
443f35:	89 78 0c             	mov    %edi,0xc(%eax)
443f38:	8b c3                	mov    %ebx,%eax
443f3a:	e8 01 f5 ff ff       	call   0x443440
443f3f:	8b c3                	mov    %ebx,%eax
443f41:	e8 8a f8 ff ff       	call   0x4437d0
443f46:	56                   	push   %esi
443f47:	68 e0 52 44 00       	push   $0x4452e0
443f4c:	33 d2                	xor    %edx,%edx
443f4e:	8b c6                	mov    %esi,%eax
443f50:	e8 b7 fb ff ff       	call   0x443b0c
443f55:	5f                   	pop    %edi
443f56:	5e                   	pop    %esi
443f57:	5b                   	pop    %ebx
443f58:	59                   	pop    %ecx
443f59:	5d                   	pop    %ebp
443f5a:	c2 08 00             	ret    $0x8
443f5d:	8d 40 00             	lea    0x0(%eax),%eax
443f60:	55                   	push   %ebp
443f61:	8b ec                	mov    %esp,%ebp
443f63:	53                   	push   %ebx
443f64:	8b d9                	mov    %ecx,%ebx
443f66:	8b 4d 08             	mov    0x8(%ebp),%ecx
443f69:	85 db                	test   %ebx,%ebx
443f6b:	75 15                	jne    0x443f82
443f6d:	8b 40 64             	mov    0x64(%eax),%eax
443f70:	8b 58 08             	mov    0x8(%eax),%ebx
443f73:	84 c9                	test   %cl,%cl
443f75:	74 0b                	je     0x443f82
443f77:	eb 02                	jmp    0x443f7b
443f79:	8b d8                	mov    %eax,%ebx
443f7b:	8b 43 0c             	mov    0xc(%ebx),%eax
443f7e:	85 c0                	test   %eax,%eax
443f80:	75 f7                	jne    0x443f79
443f82:	84 c9                	test   %cl,%cl
443f84:	74 1b                	je     0x443fa1
443f86:	8b 43 14             	mov    0x14(%ebx),%eax
443f89:	89 42 14             	mov    %eax,0x14(%edx)
443f8c:	89 5a 18             	mov    %ebx,0x18(%edx)
443f8f:	8b 43 0c             	mov    0xc(%ebx),%eax
443f92:	89 42 0c             	mov    %eax,0xc(%edx)
443f95:	85 c0                	test   %eax,%eax
443f97:	74 03                	je     0x443f9c
443f99:	89 50 18             	mov    %edx,0x18(%eax)
443f9c:	89 53 0c             	mov    %edx,0xc(%ebx)
443f9f:	eb 21                	jmp    0x443fc2
443fa1:	89 5a 0c             	mov    %ebx,0xc(%edx)
443fa4:	8b 43 18             	mov    0x18(%ebx),%eax
443fa7:	89 42 18             	mov    %eax,0x18(%edx)
443faa:	85 c0                	test   %eax,%eax
443fac:	74 03                	je     0x443fb1
443fae:	89 50 0c             	mov    %edx,0xc(%eax)
443fb1:	89 53 18             	mov    %edx,0x18(%ebx)
443fb4:	8b 43 14             	mov    0x14(%ebx),%eax
443fb7:	89 42 14             	mov    %eax,0x14(%edx)
443fba:	3b 58 08             	cmp    0x8(%eax),%ebx
443fbd:	75 03                	jne    0x443fc2
443fbf:	89 50 08             	mov    %edx,0x8(%eax)
443fc2:	8b 43 14             	mov    0x14(%ebx),%eax
443fc5:	e8 76 f4 ff ff       	call   0x443440
443fca:	8b 43 14             	mov    0x14(%ebx),%eax
443fcd:	e8 fe f7 ff ff       	call   0x4437d0
443fd2:	5b                   	pop    %ebx
443fd3:	5d                   	pop    %ebp
443fd4:	c2 04 00             	ret    $0x4
443fd7:	90                   	nop
443fd8:	55                   	push   %ebp
443fd9:	8b ec                	mov    %esp,%ebp
443fdb:	53                   	push   %ebx
443fdc:	56                   	push   %esi
443fdd:	57                   	push   %edi
443fde:	8b d8                	mov    %eax,%ebx
443fe0:	8b 43 14             	mov    0x14(%ebx),%eax
443fe3:	80 78 10 01          	cmpb   $0x1,0x10(%eax)
443fe7:	75 44                	jne    0x44402d
443fe9:	8b c3                	mov    %ebx,%eax
443feb:	e8 68 f7 ff ff       	call   0x443758
443ff0:	8b 55 08             	mov    0x8(%ebp),%edx
443ff3:	8b 52 fc             	mov    -0x4(%edx),%edx
443ff6:	3b 42 04             	cmp    0x4(%edx),%eax
443ff9:	7c 32                	jl     0x44402d
443ffb:	8b c3                	mov    %ebx,%eax
443ffd:	e8 56 f7 ff ff       	call   0x443758
444002:	8b 55 08             	mov    0x8(%ebp),%edx
444005:	8b 52 f8             	mov    -0x8(%edx),%edx
444008:	2b 42 0c             	sub    0xc(%edx),%eax
44400b:	8b 55 08             	mov    0x8(%ebp),%edx
44400e:	8b 52 fc             	mov    -0x4(%edx),%edx
444011:	3b 42 04             	cmp    0x4(%edx),%eax
444014:	7f 17                	jg     0x44402d
444016:	8b 45 08             	mov    0x8(%ebp),%eax
444019:	8b 40 f4             	mov    -0xc(%eax),%eax
44401c:	c7 00 12 00 00 00    	movl   $0x12,(%eax)
444022:	8b 45 08             	mov    0x8(%ebp),%eax
444025:	89 58 f0             	mov    %ebx,-0x10(%eax)
444028:	e9 88 01 00 00       	jmp    0x4441b5
44402d:	8b 43 14             	mov    0x14(%ebx),%eax
444030:	80 78 10 02          	cmpb   $0x2,0x10(%eax)
444034:	75 42                	jne    0x444078
444036:	8b c3                	mov    %ebx,%eax
444038:	e8 1b f7 ff ff       	call   0x443758
44403d:	8b 55 08             	mov    0x8(%ebp),%edx
444040:	8b 52 fc             	mov    -0x4(%edx),%edx
444043:	3b 02                	cmp    (%edx),%eax
444045:	7c 31                	jl     0x444078
444047:	8b c3                	mov    %ebx,%eax
444049:	e8 0a f7 ff ff       	call   0x443758
44404e:	8b 55 08             	mov    0x8(%ebp),%edx
444051:	8b 52 f8             	mov    -0x8(%edx),%edx
444054:	2b 42 0c             	sub    0xc(%edx),%eax
444057:	8b 55 08             	mov    0x8(%ebp),%edx
44405a:	8b 52 fc             	mov    -0x4(%edx),%edx
44405d:	3b 02                	cmp    (%edx),%eax
44405f:	7f 17                	jg     0x444078
444061:	8b 45 08             	mov    0x8(%ebp),%eax
444064:	8b 40 f4             	mov    -0xc(%eax),%eax
444067:	c7 00 12 00 00 00    	movl   $0x12,(%eax)
44406d:	8b 45 08             	mov    0x8(%ebp),%eax
444070:	89 58 f0             	mov    %ebx,-0x10(%eax)
444073:	e9 3d 01 00 00       	jmp    0x4441b5
444078:	83 7b 04 00          	cmpl   $0x0,0x4(%ebx)
44407c:	0f 84 33 01 00 00    	je     0x4441b5
444082:	ba 01 00 00 00       	mov    $0x1,%edx
444087:	8b c3                	mov    %ebx,%eax
444089:	e8 96 f2 ff ff       	call   0x443324
44408e:	8b f0                	mov    %eax,%esi
444090:	ba 02 00 00 00       	mov    $0x2,%edx
444095:	8b c3                	mov    %ebx,%eax
444097:	e8 88 f2 ff ff       	call   0x443324
44409c:	8b f8                	mov    %eax,%edi
44409e:	8b 45 08             	mov    0x8(%ebp),%eax
4440a1:	8b 40 f8             	mov    -0x8(%eax),%eax
4440a4:	80 78 1c 00          	cmpb   $0x0,0x1c(%eax)
4440a8:	0f 84 8e 00 00 00    	je     0x44413c
4440ae:	8b 45 08             	mov    0x8(%ebp),%eax
4440b1:	8b 40 fc             	mov    -0x4(%eax),%eax
4440b4:	3b 70 04             	cmp    0x4(%eax),%esi
4440b7:	0f 8f f8 00 00 00    	jg     0x4441b5
4440bd:	8b 45 08             	mov    0x8(%ebp),%eax
4440c0:	8b 40 fc             	mov    -0x4(%eax),%eax
4440c3:	8b 40 04             	mov    0x4(%eax),%eax
4440c6:	8b 55 08             	mov    0x8(%ebp),%edx
4440c9:	8b 52 f8             	mov    -0x8(%edx),%edx
4440cc:	03 72 18             	add    0x18(%edx),%esi
4440cf:	3b c6                	cmp    %esi,%eax
4440d1:	0f 8f de 00 00 00    	jg     0x4441b5
4440d7:	8b 45 08             	mov    0x8(%ebp),%eax
4440da:	8b 40 fc             	mov    -0x4(%eax),%eax
4440dd:	3b 38                	cmp    (%eax),%edi
4440df:	0f 8f d0 00 00 00    	jg     0x4441b5
4440e5:	ba 02 00 00 00       	mov    $0x2,%edx
4440ea:	8b c3                	mov    %ebx,%eax
4440ec:	e8 9f f2 ff ff       	call   0x443390
4440f1:	03 f8                	add    %eax,%edi
4440f3:	8b 45 08             	mov    0x8(%ebp),%eax
4440f6:	8b 40 fc             	mov    -0x4(%eax),%eax
4440f9:	3b 38                	cmp    (%eax),%edi
4440fb:	0f 8c b4 00 00 00    	jl     0x4441b5
444101:	8b 45 08             	mov    0x8(%ebp),%eax
444104:	89 58 f0             	mov    %ebx,-0x10(%eax)
444107:	8b 43 04             	mov    0x4(%ebx),%eax
44410a:	8b 50 40             	mov    0x40(%eax),%edx
44410d:	03 50 48             	add    0x48(%eax),%edx
444110:	83 ea 0f             	sub    $0xf,%edx
444113:	8b 45 08             	mov    0x8(%ebp),%eax
444116:	8b 40 fc             	mov    -0x4(%eax),%eax
444119:	3b 10                	cmp    (%eax),%edx
44411b:	7d 11                	jge    0x44412e
44411d:	8b 45 08             	mov    0x8(%ebp),%eax
444120:	8b 40 f4             	mov    -0xc(%eax),%eax
444123:	c7 00 14 00 00 00    	movl   $0x14,(%eax)
444129:	e9 87 00 00 00       	jmp    0x4441b5
44412e:	8b 45 08             	mov    0x8(%ebp),%eax
444131:	8b 40 f4             	mov    -0xc(%eax),%eax
444134:	c7 00 02 00 00 00    	movl   $0x2,(%eax)
44413a:	eb 79                	jmp    0x4441b5
44413c:	8b 45 08             	mov    0x8(%ebp),%eax
44413f:	8b 40 fc             	mov    -0x4(%eax),%eax
444142:	3b 38                	cmp    (%eax),%edi
444144:	7f 6f                	jg     0x4441b5
444146:	8b 45 08             	mov    0x8(%ebp),%eax
444149:	8b 40 fc             	mov    -0x4(%eax),%eax
44414c:	8b 00                	mov    (%eax),%eax
44414e:	8b 55 08             	mov    0x8(%ebp),%edx
444151:	8b 52 f8             	mov    -0x8(%edx),%edx
444154:	03 7a 18             	add    0x18(%edx),%edi
444157:	3b c7                	cmp    %edi,%eax
444159:	7f 5a                	jg     0x4441b5
44415b:	8b 45 08             	mov    0x8(%ebp),%eax
44415e:	8b 40 fc             	mov    -0x4(%eax),%eax
444161:	3b 70 04             	cmp    0x4(%eax),%esi
444164:	7f 4f                	jg     0x4441b5
444166:	ba 01 00 00 00       	mov    $0x1,%edx
44416b:	8b c3                	mov    %ebx,%eax
44416d:	e8 1e f2 ff ff       	call   0x443390
444172:	03 f0                	add    %eax,%esi
444174:	8b 45 08             	mov    0x8(%ebp),%eax
444177:	8b 40 fc             	mov    -0x4(%eax),%eax
44417a:	3b 70 04             	cmp    0x4(%eax),%esi
44417d:	7c 36                	jl     0x4441b5
44417f:	8b 45 08             	mov    0x8(%ebp),%eax
444182:	89 58 f0             	mov    %ebx,-0x10(%eax)
444185:	8b 45 08             	mov    0x8(%ebp),%eax
444188:	8b 40 fc             	mov    -0x4(%eax),%eax
44418b:	8b 40 04             	mov    0x4(%eax),%eax
44418e:	8b 53 04             	mov    0x4(%ebx),%edx
444191:	8b 52 44             	mov    0x44(%edx),%edx
444194:	83 c2 0f             	add    $0xf,%edx
444197:	3b c2                	cmp    %edx,%eax
444199:	7d 0e                	jge    0x4441a9
44419b:	8b 45 08             	mov    0x8(%ebp),%eax
44419e:	8b 40 f4             	mov    -0xc(%eax),%eax
4441a1:	c7 00 14 00 00 00    	movl   $0x14,(%eax)
4441a7:	eb 0c                	jmp    0x4441b5
4441a9:	8b 45 08             	mov    0x8(%ebp),%eax
4441ac:	8b 40 f4             	mov    -0xc(%eax),%eax
4441af:	c7 00 02 00 00 00    	movl   $0x2,(%eax)
4441b5:	8b 45 08             	mov    0x8(%ebp),%eax
4441b8:	83 78 f0 00          	cmpl   $0x0,-0x10(%eax)
4441bc:	75 1c                	jne    0x4441da
4441be:	8b c3                	mov    %ebx,%eax
4441c0:	e8 6b f6 ff ff       	call   0x443830
4441c5:	85 c0                	test   %eax,%eax
4441c7:	74 11                	je     0x4441da
4441c9:	8b 45 08             	mov    0x8(%ebp),%eax
4441cc:	50                   	push   %eax
4441cd:	8b c3                	mov    %ebx,%eax
4441cf:	e8 5c f6 ff ff       	call   0x443830
4441d4:	e8 ff fd ff ff       	call   0x443fd8