44fb0f:	89 45 e0             	mov    %eax,-0x20(%ebp)
44fb12:	33 c0                	xor    %eax,%eax
44fb14:	89 55 dc             	mov    %edx,-0x24(%ebp)
44fb17:	40                   	inc    %eax
44fb18:	33 d2                	xor    %edx,%edx
44fb1a:	e8 e1 01 ff ff       	call   0x43fd00
44fb1f:	23 c7                	and    %edi,%eax
44fb21:	c6 45 fd 01          	movb   $0x1,-0x3(%ebp)
44fb25:	23 d6                	and    %esi,%edx
44fb27:	0b c2                	or     %edx,%eax
44fb29:	75 03                	jne    0x44fb2e
44fb2b:	88 5d fd             	mov    %bl,-0x3(%ebp)
44fb2e:	8b 45 e8             	mov    -0x18(%ebp),%eax
44fb31:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
44fb34:	23 c7                	and    %edi,%eax
44fb36:	23 ce                	and    %esi,%ecx
44fb38:	0b c1                	or     %ecx,%eax
44fb3a:	b1 01                	mov    $0x1,%cl
44fb3c:	75 02                	jne    0x44fb40
44fb3e:	8a cb                	mov    %bl,%cl
44fb40:	88 4d ff             	mov    %cl,-0x1(%ebp)
44fb43:	38 5d 18             	cmp    %bl,0x18(%ebp)
44fb46:	74 10                	je     0x44fb58
44fb48:	8b 45 e0             	mov    -0x20(%ebp),%eax
44fb4b:	8b 55 dc             	mov    -0x24(%ebp),%edx
44fb4e:	23 c7                	and    %edi,%eax
44fb50:	23 d6                	and    %esi,%edx
44fb52:	0b c2                	or     %edx,%eax
44fb54:	8a c3                	mov    %bl,%al
44fb56:	74 02                	je     0x44fb5a
44fb58:	b0 01                	mov    $0x1,%al
44fb5a:	88 45 fe             	mov    %al,-0x2(%ebp)
44fb5d:	84 c9                	test   %cl,%cl
44fb5f:	75 04                	jne    0x44fb65
44fb61:	84 c0                	test   %al,%al
44fb63:	74 35                	je     0x44fb9a
44fb65:	e8 79 2a 02 00       	call   0x4725e3
44fb6a:	85 c0                	test   %eax,%eax
44fb6c:	74 1b                	je     0x44fb89
44fb6e:	3d 00 01 00 00       	cmp    $0x100,%eax
44fb73:	74 0f                	je     0x44fb84
44fb75:	3d 00 02 00 00       	cmp    $0x200,%eax
44fb7a:	75 1e                	jne    0x44fb9a
44fb7c:	38 5d 14             	cmp    %bl,0x14(%ebp)
44fb7f:	0f 94 c3             	sete   %bl
44fb82:	eb 16                	jmp    0x44fb9a
44fb84:	8a 5d 14             	mov    0x14(%ebp),%bl
44fb87:	eb 11                	jmp    0x44fb9a
44fb89:	38 5d ff             	cmp    %bl,-0x1(%ebp)
44fb8c:	74 0c                	je     0x44fb9a
44fb8e:	38 5d fe             	cmp    %bl,-0x2(%ebp)
44fb91:	75 05                	jne    0x44fb98
44fb93:	38 5d fd             	cmp    %bl,-0x3(%ebp)
44fb96:	74 02                	je     0x44fb9a
44fb98:	b3 01                	mov    $0x1,%bl
44fb9a:	8b 4d f0             	mov    -0x10(%ebp),%ecx
44fb9d:	8b c7                	mov    %edi,%eax
44fb9f:	8b d6                	mov    %esi,%edx
44fba1:	e8 1a 02 ff ff       	call   0x43fdc0
44fba6:	8b f8                	mov    %eax,%edi
44fba8:	8b f2                	mov    %edx,%esi
44fbaa:	0f b6 c3             	movzbl %bl,%eax
44fbad:	99                   	cltd
44fbae:	03 f8                	add    %eax,%edi
44fbb0:	8b c7                	mov    %edi,%eax
44fbb2:	13 f2                	adc    %edx,%esi
44fbb4:	0b c6                	or     %esi,%eax
44fbb6:	74 29                	je     0x44fbe1
44fbb8:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
44fbbb:	e8 bb 22 00 00       	call   0x451e7b
44fbc0:	3b f2                	cmp    %edx,%esi
44fbc2:	0f 82 5b 01 00 00    	jb     0x44fd23
44fbc8:	77 08                	ja     0x44fbd2
44fbca:	3b f8                	cmp    %eax,%edi
44fbcc:	0f 86 51 01 00 00    	jbe    0x44fd23
44fbd2:	8b 5d 10             	mov    0x10(%ebp),%ebx
44fbd5:	2b 5d ec             	sub    -0x14(%ebp),%ebx
44fbd8:	2b 5d f4             	sub    -0xc(%ebp),%ebx
44fbdb:	4b                   	dec    %ebx
44fbdc:	e9 45 01 00 00       	jmp    0x44fd26
44fbe1:	ff 75 1c             	push   0x1c(%ebp)
44fbe4:	ff 75 14             	push   0x14(%ebp)
44fbe7:	e8 0d 03 00 00       	call   0x44fef9
44fbec:	59                   	pop    %ecx
44fbed:	59                   	pop    %ecx
44fbee:	6a 02                	push   $0x2
44fbf0:	e9 b6 fe ff ff       	jmp    0x44faab
44fbf5:	8b 4d ec             	mov    -0x14(%ebp),%ecx
44fbf8:	e9 19 01 00 00       	jmp    0x44fd16
44fbfd:	85 d2                	test   %edx,%edx
44fbff:	0f 89 0c 01 00 00    	jns    0x44fd11
44fc05:	f7 da                	neg    %edx
44fc07:	89 55 f4             	mov    %edx,-0xc(%ebp)
44fc0a:	83 fa 40             	cmp    $0x40,%edx
44fc0d:	72 09                	jb     0x44fc18
44fc0f:	8b fb                	mov    %ebx,%edi
44fc11:	8b f3                	mov    %ebx,%esi
44fc13:	e9 bf 00 00 00       	jmp    0x44fcd7
44fc18:	33 c0                	xor    %eax,%eax
44fc1a:	8d 4a ff             	lea    -0x1(%edx),%ecx
44fc1d:	40                   	inc    %eax
44fc1e:	33 d2                	xor    %edx,%edx
44fc20:	e8 db 00 ff ff       	call   0x43fd00
44fc25:	8b 4d f4             	mov    -0xc(%ebp),%ecx
44fc28:	89 45 dc             	mov    %eax,-0x24(%ebp)
44fc2b:	83 c0 ff             	add    $0xffffffff,%eax
44fc2e:	89 55 e0             	mov    %edx,-0x20(%ebp)
44fc31:	83 d2 ff             	adc    $0xffffffff,%edx
44fc34:	89 45 e4             	mov    %eax,-0x1c(%ebp)
44fc37:	33 c0                	xor    %eax,%eax
44fc39:	89 55 e8             	mov    %edx,-0x18(%ebp)
44fc3c:	40                   	inc    %eax
44fc3d:	33 d2                	xor    %edx,%edx
44fc3f:	e8 bc 00 ff ff       	call   0x43fd00
44fc44:	23 c7                	and    %edi,%eax
44fc46:	c6 45 ff 01          	movb   $0x1,-0x1(%ebp)
44fc4a:	23 d6                	and    %esi,%edx
44fc4c:	0b c2                	or     %edx,%eax
44fc4e:	75 03                	jne    0x44fc53
44fc50:	88 5d ff             	mov    %bl,-0x1(%ebp)
44fc53:	8b 45 dc             	mov    -0x24(%ebp),%eax
44fc56:	8b 4d e0             	mov    -0x20(%ebp),%ecx
44fc59:	23 c7                	and    %edi,%eax
44fc5b:	23 ce                	and    %esi,%ecx
44fc5d:	0b c1                	or     %ecx,%eax
44fc5f:	b1 01                	mov    $0x1,%cl
44fc61:	75 02                	jne    0x44fc65
44fc63:	8a cb                	mov    %bl,%cl
44fc65:	88 4d fd             	mov    %cl,-0x3(%ebp)
44fc68:	38 5d 18             	cmp    %bl,0x18(%ebp)
44fc6b:	74 10                	je     0x44fc7d
44fc6d:	8b 45 e4             	mov    -0x1c(%ebp),%eax
44fc70:	8b 55 e8             	mov    -0x18(%ebp),%edx
44fc73:	23 c7                	and    %edi,%eax
44fc75:	23 d6                	and    %esi,%edx
44fc77:	0b c2                	or     %edx,%eax
44fc79:	8a c3                	mov    %bl,%al
44fc7b:	74 02                	je     0x44fc7f
44fc7d:	b0 01                	mov    $0x1,%al
44fc7f:	88 45 fe             	mov    %al,-0x2(%ebp)
44fc82:	84 c9                	test   %cl,%cl
44fc84:	75 04                	jne    0x44fc8a
44fc86:	84 c0                	test   %al,%al
44fc88:	74 35                	je     0x44fcbf
44fc8a:	e8 54 29 02 00       	call   0x4725e3
44fc8f:	85 c0                	test   %eax,%eax
44fc91:	74 1b                	je     0x44fcae
44fc93:	3d 00 01 00 00       	cmp    $0x100,%eax
44fc98:	74 0f                	je     0x44fca9
44fc9a:	3d 00 02 00 00       	cmp    $0x200,%eax
44fc9f:	75 1e                	jne    0x44fcbf
44fca1:	38 5d 14             	cmp    %bl,0x14(%ebp)
44fca4:	0f 94 c3             	sete   %bl
44fca7:	eb 16                	jmp    0x44fcbf
44fca9:	8a 5d 14             	mov    0x14(%ebp),%bl
44fcac:	eb 11                	jmp    0x44fcbf
44fcae:	38 5d fd             	cmp    %bl,-0x3(%ebp)
44fcb1:	74 0c                	je     0x44fcbf
44fcb3:	38 5d fe             	cmp    %bl,-0x2(%ebp)
44fcb6:	75 05                	jne    0x44fcbd
44fcb8:	38 5d ff             	cmp    %bl,-0x1(%ebp)
44fcbb:	74 02                	je     0x44fcbf
44fcbd:	b3 01                	mov    $0x1,%bl
44fcbf:	8b 4d f4             	mov    -0xc(%ebp),%ecx
44fcc2:	8b c7                	mov    %edi,%eax
44fcc4:	8b d6                	mov    %esi,%edx
44fcc6:	e8 f5 00 ff ff       	call   0x43fdc0
44fccb:	8b f8                	mov    %eax,%edi
44fccd:	8b f2                	mov    %edx,%esi
44fccf:	0f b6 c3             	movzbl %bl,%eax
44fcd2:	99                   	cltd
44fcd3:	03 f8                	add    %eax,%edi
44fcd5:	13 f2                	adc    %edx,%esi
44fcd7:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
44fcda:	e8 ef 31 00 00       	call   0x452ece
44fcdf:	3b f2                	cmp    %edx,%esi
44fce1:	72 40                	jb     0x44fd23
44fce3:	77 04                	ja     0x44fce9
44fce5:	3b f8                	cmp    %eax,%edi
44fce7:	76 3a                	jbe    0x44fd23
44fce9:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
44fcec:	33 c0                	xor    %eax,%eax
44fcee:	8b 5d f8             	mov    -0x8(%ebp),%ebx
44fcf1:	0f ac f7 01          	shrd   $0x1,%esi,%edi
44fcf5:	d1 ee                	shr    $1,%esi
44fcf7:	43                   	inc    %ebx
44fcf8:	38 41 04             	cmp    %al,0x4(%ecx)
44fcfb:	0f 94 c0             	sete   %al
44fcfe:	48                   	dec    %eax
44fcff:	25 80 03 00 00       	and    $0x380,%eax
44fd04:	83 c0 7f             	add    $0x7f,%eax
44fd07:	3b d8                	cmp    %eax,%ebx
44fd09:	7e 1b                	jle    0x44fd26
44fd0b:	51                   	push   %ecx
44fd0c:	e9 8e fd ff ff       	jmp    0x44fa9f
44fd11:	7e 10                	jle    0x44fd23
44fd13:	8b 4d f4             	mov    -0xc(%ebp),%ecx
44fd16:	8b d6                	mov    %esi,%edx
44fd18:	8b c7                	mov    %edi,%eax
44fd1a:	e8 e1 ff fe ff       	call   0x43fd00
44fd1f:	8b f2                	mov    %edx,%esi
44fd21:	8b f8                	mov    %eax,%edi
44fd23:	8b 5d f8             	mov    -0x8(%ebp),%ebx
44fd26:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
44fd29:	e8 4d 21 00 00       	call   0x451e7b
44fd2e:	23 f8                	and    %eax,%edi
44fd30:	23 f2                	and    %edx,%esi
44fd32:	8b 45 1c             	mov    0x1c(%ebp),%eax
44fd35:	8b c8                	mov    %eax,%ecx
44fd37:	80 78 04 00          	cmpb   $0x0,0x4(%eax)
44fd3b:	74 13                	je     0x44fd50
44fd3d:	e8 5d fc ff ff       	call   0x44f99f
44fd42:	50                   	push   %eax
44fd43:	56                   	push   %esi
44fd44:	57                   	push   %edi
44fd45:	53                   	push   %ebx
44fd46:	ff 75 14             	push   0x14(%ebp)
44fd49:	e8 08 d3 ff ff       	call   0x44d056
44fd4e:	eb 11                	jmp    0x44fd61
44fd50:	e8 6f fc ff ff       	call   0x44f9c4
44fd55:	50                   	push   %eax
44fd56:	56                   	push   %esi
44fd57:	57                   	push   %edi
44fd58:	53                   	push   %ebx
44fd59:	ff 75 14             	push   0x14(%ebp)
44fd5c:	e8 c5 d2 ff ff       	call   0x44d026
44fd61:	83 c4 14             	add    $0x14,%esp
44fd64:	5f                   	pop    %edi
44fd65:	5e                   	pop    %esi
44fd66:	5b                   	pop    %ebx
44fd67:	8b e5                	mov    %ebp,%esp
44fd69:	5d                   	pop    %ebp
44fd6a:	c3                   	ret
44fd6b:	8b ff                	mov    %edi,%edi
44fd6d:	55                   	push   %ebp
44fd6e:	8b ec                	mov    %esp,%ebp
44fd70:	83 ec 1c             	sub    $0x1c,%esp
44fd73:	33 d2                	xor    %edx,%edx
44fd75:	53                   	push   %ebx
44fd76:	8b 5d 18             	mov    0x18(%ebp),%ebx
44fd79:	56                   	push   %esi
44fd7a:	57                   	push   %edi
44fd7b:	8b 7d 0c             	mov    0xc(%ebp),%edi
44fd7e:	38 53 04             	cmp    %dl,0x4(%ebx)
44fd81:	0f 94 c2             	sete   %dl
44fd84:	4a                   	dec    %edx
44fd85:	83 e2 1d             	and    $0x1d,%edx
44fd88:	83 c2 17             	add    $0x17,%edx
44fd8b:	83 ff 40             	cmp    $0x40,%edi
44fd8e:	77 39                	ja     0x44fdc9
44fd90:	8b 4d 08             	mov    0x8(%ebp),%ecx
44fd93:	83 39 00             	cmpl   $0x0,(%ecx)
44fd96:	76 05                	jbe    0x44fd9d
44fd98:	8b 71 04             	mov    0x4(%ecx),%esi
44fd9b:	eb 02                	jmp    0x44fd9f
44fd9d:	33 f6                	xor    %esi,%esi
44fd9f:	83 39 01             	cmpl   $0x1,(%ecx)
44fda2:	76 05                	jbe    0x44fda9
44fda4:	8b 49 08             	mov    0x8(%ecx),%ecx
44fda7:	eb 02                	jmp    0x44fdab
44fda9:	33 c9                	xor    %ecx,%ecx
44fdab:	80 7d 14 00          	cmpb   $0x0,0x14(%ebp)
44fdaf:	53                   	push   %ebx
44fdb0:	0f 94 c0             	sete   %al
44fdb3:	0f b6 c0             	movzbl %al,%eax
44fdb6:	50                   	push   %eax
44fdb7:	ff 75 10             	push   0x10(%ebp)
44fdba:	33 c0                	xor    %eax,%eax
44fdbc:	03 c6                	add    %esi,%eax
44fdbe:	52                   	push   %edx
44fdbf:	83 d1 00             	adc    $0x0,%ecx
44fdc2:	51                   	push   %ecx
44fdc3:	50                   	push   %eax
44fdc4:	e9 21 01 00 00       	jmp    0x44feea
44fdc9:	8b c7                	mov    %edi,%eax
44fdcb:	c1 ef 05             	shr    $0x5,%edi
44fdce:	83 e0 1f             	and    $0x1f,%eax
44fdd1:	89 45 e4             	mov    %eax,-0x1c(%ebp)
44fdd4:	8d 77 fe             	lea    -0x2(%edi),%esi
44fdd7:	85 c0                	test   %eax,%eax
44fdd9:	75 51                	jne    0x44fe2c
44fddb:	8b ce                	mov    %esi,%ecx
44fddd:	c1 e1 05             	shl    $0x5,%ecx
44fde0:	03 ca                	add    %edx,%ecx
44fde2:	8b 55 08             	mov    0x8(%ebp),%edx
44fde5:	8b 14 ba             	mov    (%edx,%edi,4),%edx
44fde8:	8b 7d 08             	mov    0x8(%ebp),%edi
44fdeb:	03 44 b7 04          	add    0x4(%edi,%esi,4),%eax
44fdef:	89 45 ec             	mov    %eax,-0x14(%ebp)
44fdf2:	83 d2 00             	adc    $0x0,%edx
44fdf5:	80 7d 14 00          	cmpb   $0x0,0x14(%ebp)
44fdf9:	89 55 f4             	mov    %edx,-0xc(%ebp)
44fdfc:	0f 94 c2             	sete   %dl
44fdff:	88 55 f0             	mov    %dl,-0x10(%ebp)
44fe02:	85 f6                	test   %esi,%esi
44fe04:	74 19                	je     0x44fe1f
44fe06:	83 c7 04             	add    $0x4,%edi
44fe09:	83 3f 00             	cmpl   $0x0,(%edi)
44fe0c:	8d 7f 04             	lea    0x4(%edi),%edi
44fe0f:	0f 94 c0             	sete   %al
44fe12:	22 d0                	and    %al,%dl
44fe14:	83 ee 01             	sub    $0x1,%esi
44fe17:	75 f0                	jne    0x44fe09
44fe19:	8b 45 ec             	mov    -0x14(%ebp),%eax
44fe1c:	88 55 f0             	mov    %dl,-0x10(%ebp)
44fe1f:	53                   	push   %ebx
44fe20:	ff 75 f0             	push   -0x10(%ebp)
44fe23:	ff 75 10             	push   0x10(%ebp)
44fe26:	51                   	push   %ecx
44fe27:	ff 75 f4             	push   -0xc(%ebp)
44fe2a:	eb 97                	jmp    0x44fdc3
44fe2c:	33 db                	xor    %ebx,%ebx
44fe2e:	89 75 fc             	mov    %esi,-0x4(%ebp)
44fe31:	c1 65 fc 05          	shll   $0x5,-0x4(%ebp)
44fe35:	8b c8                	mov    %eax,%ecx
44fe37:	01 45 fc             	add    %eax,-0x4(%ebp)
44fe3a:	43                   	inc    %ebx
44fe3b:	01 55 fc             	add    %edx,-0x4(%ebp)
44fe3e:	89 5d f8             	mov    %ebx,-0x8(%ebp)
44fe41:	d3 65 f8             	shll   %cl,-0x8(%ebp)
44fe44:	ff 4d f8             	decl   -0x8(%ebp)
44fe47:	6a 40                	push   $0x40
44fe49:	59                   	pop    %ecx
44fe4a:	2b c8                	sub    %eax,%ecx
44fe4c:	8b 45 08             	mov    0x8(%ebp),%eax
44fe4f:	89 4d e8             	mov    %ecx,-0x18(%ebp)
44fe52:	83 c1 e0             	add    $0xffffffe0,%ecx
44fe55:	8b 54 b0 04          	mov    0x4(%eax,%esi,4),%edx
44fe59:	8b 04 b8             	mov    (%eax,%edi,4),%eax
44fe5c:	89 55 ec             	mov    %edx,-0x14(%ebp)
44fe5f:	33 d2                	xor    %edx,%edx
44fe61:	e8 9a fe fe ff       	call   0x43fd00
44fe66:	8b 4d e8             	mov    -0x18(%ebp),%ecx
44fe69:	89 45 f4             	mov    %eax,-0xc(%ebp)
44fe6c:	8b 45 08             	mov    0x8(%ebp),%eax
44fe6f:	89 55 f0             	mov    %edx,-0x10(%ebp)
44fe72:	33 d2                	xor    %edx,%edx
44fe74:	8b 44 b8 04          	mov    0x4(%eax,%edi,4),%eax
44fe78:	8b 7d f8             	mov    -0x8(%ebp),%edi
44fe7b:	23 c7                	and    %edi,%eax
44fe7d:	e8 7e fe fe ff       	call   0x43fd00
44fe82:	01 45 f4             	add    %eax,-0xc(%ebp)
44fe85:	8b c7                	mov    %edi,%eax
44fe87:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
44fe8a:	f7 d0                	not    %eax
44fe8c:	11 55 f0             	adc    %edx,-0x10(%ebp)
44fe8f:	33 d2                	xor    %edx,%edx
44fe91:	23 45 ec             	and    -0x14(%ebp),%eax
44fe94:	e8 27 ff fe ff       	call   0x43fdc0
44fe99:	8b 4d f4             	mov    -0xc(%ebp),%ecx